diff --git common/src/java/org/apache/hadoop/hive/conf/HiveConf.java common/src/java/org/apache/hadoop/hive/conf/HiveConf.java index 05f6cc9..79724cd 100644 --- common/src/java/org/apache/hadoop/hive/conf/HiveConf.java +++ common/src/java/org/apache/hadoop/hive/conf/HiveConf.java @@ -2834,9 +2834,15 @@ private static void populateLlapDaemonVarsSet(Set llapDaemonVarsSetLocal "Exceeding this will trigger a flush irrelevant of memory pressure condition."), HIVE_VECTORIZATION_GROUPBY_FLUSH_PERCENT("hive.vectorized.groupby.flush.percent", (float) 0.1, "Percent of entries in the group by aggregation hash flushed when the memory threshold is exceeded."), + + HIVE_VECTORIZATION_GROUPBY_NATIVE_ENABLED("hive.vectorized.execution.groupby.native.enabled", true, + "This flag should be set to true to enable the native vectorization\n" + + "of queries using GroupBy.\n" + + "The default value is true."), + HIVE_VECTORIZATION_REDUCESINK_NEW_ENABLED("hive.vectorized.execution.reducesink.new.enabled", true, "This flag should be set to true to enable the new vectorization\n" + - "of queries using ReduceSink.\ni" + + "of queries using ReduceSink.\n" + "The default value is true."), HIVE_VECTORIZATION_USE_VECTORIZED_INPUT_FILE_FORMAT("hive.vectorized.use.vectorized.input.format", true, "This flag should be set to true to enable vectorizing with vectorized input file format capable SerDe.\n" + diff --git common/src/java/org/apache/hive/common/util/HashCodeUtil.java common/src/java/org/apache/hive/common/util/HashCodeUtil.java index b47479b..541415a 100644 --- common/src/java/org/apache/hive/common/util/HashCodeUtil.java +++ common/src/java/org/apache/hive/common/util/HashCodeUtil.java @@ -64,6 +64,14 @@ public static void calculateBytesArrayHashCodes(byte[][] bytesArrays, } } + public static void calculateBytesArrayHashCodes(byte[][] bytesArrays, + int[] starts, int[] lengths, int[] hashCodes, final int count) { + + for (int i = 0; i < count; i++) { + hashCodes[i] = murmurHash(bytesArrays[i], starts[i], lengths[i]); + } + } + // Lifted from org.apache.hadoop.util.hash.MurmurHash... but supports offset. // Must produce the same result as MurmurHash.hash with seed = 0. public static int murmurHash(byte[] data, int offset, int length) { diff --git ql/pom.xml ql/pom.xml index 5732965..e007178 100644 --- ql/pom.xml +++ ql/pom.xml @@ -809,6 +809,8 @@ classpath="${compile.classpath}"/> + + diff --git ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColHashLong.txt ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColHashLong.txt new file mode 100644 index 0000000..90ee28f --- /dev/null +++ ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColHashLong.txt @@ -0,0 +1,62 @@ +/** + * 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.exec.vector.groupby.aggregation.gen; + +import java.lang.reflect.Constructor; +import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationColumnInfo; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColHashBase; +import org.apache.hadoop.hive.ql.exec.vector.groupby.hash.VectorGroupByHashTable; +import org.apache.hive.common.util.HashCodeUtil; + +import com.google.common.base.Preconditions; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil; + +/** + * This abstract class is the base for non-global variation of aggregations in a column + * + */ +public abstract class VectorGroupByAggrColHash extends VectorGroupByAggrColHashBase { + + public VectorGroupByAggrColHash( + int inputColumnNum, + int hasValueOffset, long hasValueMask, + long groupingSetsIdMask, + int keyOffset, int firstAggregationOffset, + int countStarOffset, + long fixedLenAllNonNullFlagsMask, int fixedKeyLength, + VectorGroupByHashTable vectorGroupByHashTable) { + super( + inputColumnNum, + hasValueOffset, hasValueMask, + groupingSetsIdMask, + keyOffset, firstAggregationOffset, + countStarOffset, + fixedLenAllNonNullFlagsMask, fixedKeyLength, + vectorGroupByHashTable); + } + + static int fake = 0; + + + + +} \ No newline at end of file diff --git ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColHashLongClasses.txt ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColHashLongClasses.txt new file mode 100644 index 0000000..10b22df --- /dev/null +++ ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColHashLongClasses.txt @@ -0,0 +1,1209 @@ +/** + * 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.exec.vector.groupby.aggregation.gen; + +import java.io.Serializable; + +import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen.VectorGroupByAggrColHash; +import org.apache.hadoop.hive.ql.exec.vector.groupby.hash.VectorGroupByHashTable; + +import com.google.common.base.Preconditions; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil; + +public final class extends VectorGroupByAggrColHash implements Serializable { + + private static final long serialVersionUID = 1L; + + public ( + int inputColumnNum, + int hasValueOffset, long hasValueMask, + long groupingSetsIdMask, + int keyOffset, int firstAggregationOffset, + int countStarOffset, + long fixedLenAllNonNullFlagsMask, int fixedKeyLength, + VectorGroupByHashTable vectorGroupByHashTable) { + super( + inputColumnNum, + hasValueOffset, hasValueMask, + groupingSetsIdMask, + keyOffset, firstAggregationOffset, + countStarOffset, + fixedLenAllNonNullFlagsMask, fixedKeyLength, + vectorGroupByHashTable); + } + + // NEW + + // REPEATED + + //------------------------------------------------------------------------------------------------ + + @Override + public void aggrLongNewRepeatedValueForSingleKey( + long repeatedValue, + final int firstAggregationIndex) { + + // Initial values(s) for repeated value. +#IF COUNT + longs[firstAggregationIndex] = 1; +#ENDIF COUNT +#IF LONG_MIN + longs[firstAggregationIndex] = repeatedValue; +#ENDIF LONG_MIN +#IF LONG_MAX + longs[firstAggregationIndex] = repeatedValue; +#ENDIF LONG_MAX +#IF LONG_SUM + longs[firstAggregationIndex] = repeatedValue; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + longs[firstAggregationIndex] = repeatedValue; +#ENDIF DOUBLE_SUM +#IF DOUBLE_VARIANCE + longs[firstAggregationIndex] = DOUBLE_ZERO_AS_LONG_BITS; +#ENDIF DOUBLE_VARIANCE + } + + static int fake = 0; + + @Override + public void aggrLongNewRepeatedValueForDuplicateKey( + long repeatedValue, + final int firstAggregationIndex, + final int keyDuplicateCount) { + + if (keyDuplicateCount <= 1) { + fake++; + } + VectorizedBatchUtil.debugCheckState(keyDuplicateCount > 1); + + // Initial values(s) for repeated value. +#IF COUNT + longs[firstAggregationIndex] = keyDuplicateCount; +#ENDIF COUNT +#IF LONG_MIN + longs[firstAggregationIndex] = repeatedValue; +#ENDIF LONG_MIN +#IF LONG_MAX + longs[firstAggregationIndex] = repeatedValue; +#ENDIF LONG_MAX +#IF LONG_SUM + longs[firstAggregationIndex] = repeatedValue; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + double doubleSum = repeatedValue; + long previousCount = 1; + double doubleVariance = 0.0; + + // Skip first compute; calculate variance with repeated value. + for (int v = 1; v < keyDuplicateCount; v++) { + doubleSum += repeatedValue; + final long count = previousCount + 1; + final double doubleCount = count; + final double t = doubleCount * repeatedValue - doubleSum; + doubleVariance += (t * t) / (doubleCount * previousCount); + previousCount = count; + } + + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleSum); + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleVariance); +#ELSE +#IF DOUBLE_SUM + longs[firstAggregationIndex] = + Double.doubleToLongBits(repeatedValue * keyDuplicateCount); +#ENDIF DOUBLE_SUM +#ENDIF DOUBLE_VARIANCE + } + + // SINGLE KEY Aggregation + + //------------------------------------------------------------------------------------------------ + + @Override + public void aggrLongNewValueForSingleKey( + long[] vector, + final int batchIndex, + final int firstAggregationIndex) { + + final long value = vector[batchIndex]; + + // Initial aggregation value(s). +#IF COUNT + longs[firstAggregationIndex] = 1; +#ENDIF COUNT +#IF LONG_MIN + longs[firstAggregationIndex] = value; +#ENDIF LONG_MIN +#IF LONG_MAX + longs[firstAggregationIndex] = value; +#ENDIF LONG_MAX +#IF LONG_SUM + longs[firstAggregationIndex] = value; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + longs[firstAggregationIndex] = Double.doubleToLongBits(value); +#ENDIF DOUBLE_SUM +#IF DOUBLE_VARIANCE + longs[firstAggregationIndex] = DOUBLE_ZERO_AS_LONG_BITS; +#ENDIF DOUBLE_VARIANCE + } + + // IS SELECTED (Logical) + + @Override + public void aggrLongNewSelectedNoNullValueForDuplicateKey( + int[] selected, + long[] vector, + int logicalIndex, + final int firstAggregationIndex, + final int keyDuplicateCount) { + + if (keyDuplicateCount <= 1) { + fake++; + } + VectorizedBatchUtil.debugCheckState(keyDuplicateCount > 1); + + final long firstValue = vector[selected[logicalIndex]]; + + // Aggregation local variables. +#IF LONG_MIN + long min = firstValue; +#ENDIF LONG_MIN +#IF LONG_MAX + long max = firstValue; +#ENDIF LONG_MAX +#IF LONG_SUM + long sum = firstValue; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + double doubleSum = 0; + long previousCount = 1; + double doubleVariance = 0.0; +#ELSE +#IF DOUBLE_SUM + double doubleSum = firstValue; +#ENDIF DOUBLE_SUM +#ENDIF DOUBLE_VARIANCE + + final int end = logicalIndex++ + keyDuplicateCount; + do { + final long value = vector[selected[logicalIndex]]; + + // Aggregation evaluation. +#IF LONG_MIN + if (value < min) { + min = value; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (value > max) { + max = value; + } +#ENDIF LONG_MAX +#IF LONG_SUM + sum += value; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + doubleSum += value; +#ENDIF DOUBLE_SUM +#IF DOUBLE_VARIANCE + final long count = previousCount + 1; + final double doubleCount = count; + final double t = doubleCount * value - doubleSum; + doubleVariance += (t * t) / (doubleCount * previousCount); + previousCount = count; +#ENDIF DOUBLE_VARIANCE + + } while (++logicalIndex < end); + + // Initial aggregation value(s). +#IF COUNT + longs[firstAggregationIndex] = keyDuplicateCount; +#ENDIF COUNT +#IF LONG_MIN + longs[firstAggregationIndex] = min; +#ENDIF LONG_MIN +#IF LONG_MAX + longs[firstAggregationIndex] = max; +#ENDIF LONG_MAX +#IF LONG_SUM + longs[firstAggregationIndex] = sum; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleSum); +#ENDIF DOUBLE_SUM +#IF DOUBLE_VARIANCE + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleVariance); +#ENDIF DOUBLE_VARIANCE + } + + @Override + public boolean aggrLongNewSelectedNullsValueForDuplicateKey( + int[] selected, + boolean[] isNull, + long[] vector, + int logicalIndex, + final int firstAggregationIndex, + final int keyDuplicateCount) { + + if (keyDuplicateCount <= 1) { + fake++; + } + VectorizedBatchUtil.debugCheckState(keyDuplicateCount > 1); + + // Find first non-null. + final int end = logicalIndex + keyDuplicateCount; + int batchIndex; + while (true) { + batchIndex = selected[logicalIndex]; + if (!isNull[batchIndex]) { + break; + } + if (++logicalIndex < end) { + return false; + } + } + + // At least one non-null. + + final long firstValue = vector[batchIndex]; + logicalIndex++; + + // Aggregation local variable(s). +#IF COUNT + long count = 1; +#ENDIF COUNT +#IF LONG_MIN + long min = firstValue; +#ENDIF LONG_MIN +#IF LONG_MAX + long max = firstValue; +#ENDIF LONG_MAX +#IF LONG_SUM + long sum = firstValue; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + double doubleSum = firstValue; +#ENDIF DOUBLE_SUM +#IF DOUBLE_VARIANCE + long previousCount = 0; + double doubleVariance = 0.0; +#ENDIF DOUBLE_VARIANCE + + while (logicalIndex < end) { + batchIndex = selected[logicalIndex]; + logicalIndex++; + if (isNull[batchIndex]) { + continue; + } + + final long value = vector[batchIndex]; + + // Aggregation evaluation. +#IF LONG_MIN + if (value < min) { + min = value; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (value > max) { + max = value; + } +#ENDIF LONG_MAX +#IF LONG_SUM + sum += value; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + doubleSum += value; +#ENDIF DOUBLE_SUM +#IF DOUBLE_VARIANCE + // UNDONE + final double doubleCount = count; + final double t = doubleCount * value - doubleSum; + doubleVariance += (t * t) / (doubleCount * previousCount); + previousCount = count; +#ENDIF DOUBLE_VARIANCE +#IF COUNT + count++; +#ENDIF COUNT + } + + // Save aggregation initial value(s). +#IF COUNT + longs[firstAggregationIndex] = count; +#ENDIF COUNT +#IF LONG_MIN + longs[firstAggregationIndex] = min; +#ENDIF LONG_MIN +#IF LONG_MAX + longs[firstAggregationIndex] = max; +#ENDIF LONG_MAX +#IF LONG_SUM + longs[firstAggregationIndex] = sum; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleSum); +#ENDIF DOUBLE_SUM +#IF DOUBLE_VARIANCE + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleVariance); +#ENDIF DOUBLE_VARIANCE + return true; + } + + // NOT SELECTED (Physical) + + @Override + public void aggrLongNewNotSelectedNoNullValueForDuplicateKey( + long[] vector, + int batchIndex, + final int firstAggregationIndex, + final int keyDuplicateCount) { + + if (keyDuplicateCount <= 1) { + fake++; + } + VectorizedBatchUtil.debugCheckState(keyDuplicateCount > 1); + + final long firstValue = vector[batchIndex]; + + // Aggregation local variables. +#IF LONG_MIN + long min = firstValue; +#ENDIF LONG_MIN +#IF LONG_MAX + long max = firstValue; +#ENDIF LONG_MAX +#IF LONG_SUM + long sum = firstValue; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + double doubleSum = 0; + long previousCount = 1; + double doubleVariance = 0.0; +#ELSE +#IF DOUBLE_SUM + double doubleSum = firstValue; +#ENDIF DOUBLE_SUM +#ENDIF DOUBLE_VARIANCE + + final int end = batchIndex++ + keyDuplicateCount; + do { + final long value = vector[batchIndex]; + + // Aggregation evaluation. +#IF LONG_MIN + if (value < min) { + min = value; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (value > max) { + max = value; + } +#ENDIF LONG_MAX +#IF LONG_SUM + sum += value; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + doubleSum += value; +#ENDIF DOUBLE_SUM +#IF DOUBLE_VARIANCE + final long count = previousCount + 1; + final double doubleCount = count; + final double t = doubleCount * value - doubleSum; + doubleVariance += (t * t) / (doubleCount * previousCount); + previousCount = count; +#ENDIF DOUBLE_VARIANCE + + } while (++batchIndex < end); + + // Initial aggregation value(s). +#IF COUNT + longs[firstAggregationIndex] = keyDuplicateCount; +#ENDIF COUNT +#IF LONG_MIN + longs[firstAggregationIndex] = min; +#ENDIF LONG_MIN +#IF LONG_MAX + longs[firstAggregationIndex] = max; +#ENDIF LONG_MAX +#IF LONG_SUM + longs[firstAggregationIndex] = sum; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleSum); +#ENDIF DOUBLE_SUM +#IF DOUBLE_VARIANCE + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleVariance); +#ENDIF DOUBLE_VARIANCE + } + + @Override + public boolean aggrLongNewNotSelectedNullsValueForDuplicateKey( + boolean[] isNull, + long[] vector, + int batchIndex, + final int firstAggregationIndex, + final int keyDuplicateCount) { + + if (keyDuplicateCount <= 1) { + fake++; + } + VectorizedBatchUtil.debugCheckState(keyDuplicateCount > 1); + + // Find first non-null. + final int end = batchIndex + keyDuplicateCount; + while (true) { + if (!isNull[batchIndex]) { + break; + } + if (++batchIndex < end) { + return false; + } + } + + // At least one non-null. + + final long firstValue = vector[batchIndex++]; + + // Aggregation local variable(s). +#IF COUNT + long count = 1; +#ENDIF COUNT +#IF LONG_MIN + long min = firstValue; +#ENDIF LONG_MIN +#IF LONG_MAX + long max = firstValue; +#ENDIF LONG_MAX +#IF LONG_SUM + long sum = firstValue; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + double doubleSum = firstValue; +#ENDIF DOUBLE_SUM +#IF DOUBLE_VARIANCE + long previousCount = 0; + double doubleVariance = 0.0; +#ENDIF DOUBLE_VARIANCE + + while (batchIndex < end) { + if (isNull[batchIndex]) { + batchIndex++; + continue; + } + + final long value = vector[batchIndex++]; + + // Aggregation evaluation. +#IF LONG_MIN + if (value < min) { + min = value; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (value > max) { + max = value; + } +#ENDIF LONG_MAX +#IF LONG_SUM + sum += value; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + doubleSum += value; +#ENDIF DOUBLE_SUM +#IF DOUBLE_VARIANCE + // UNDONE + final double doubleCount = count; + final double t = doubleCount * value - doubleSum; + doubleVariance += (t * t) / (doubleCount * previousCount); + previousCount = count; +#ENDIF DOUBLE_VARIANCE +#IF COUNT + count++; +#ENDIF COUNT + } + + // Save aggregation initial value(s). +#IF COUNT + longs[firstAggregationIndex] = count; +#ENDIF COUNT +#IF LONG_MIN + longs[firstAggregationIndex] = min; +#ENDIF LONG_MIN +#IF LONG_MAX + longs[firstAggregationIndex] = max; +#ENDIF LONG_MAX +#IF LONG_SUM + longs[firstAggregationIndex] = sum; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleSum); +#ENDIF DOUBLE_SUM +#IF DOUBLE_VARIANCE + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleVariance); +#ENDIF DOUBLE_VARIANCE + return true; + } + + //------------------------------------------------------------------------------------------------ + + // EXISTING + + // REPEATED + + @Override + public void aggrLongExistingRepeatedValueForSingleKey( + final long repeatedValue, + final int firstAggregationIndex) { + + // Aggregation evaluation(s). +#IF COUNT + longs[firstAggregationIndex]++; +#ENDIF COUNT +#IF LONG_MIN + if (repeatedValue < longs[firstAggregationIndex]) { + longs[firstAggregationIndex] = repeatedValue; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (repeatedValue > longs[firstAggregationIndex]) { + longs[firstAggregationIndex] = repeatedValue; + } +#ENDIF LONG_MAX +#IF LONG_SUM + longs[firstAggregationIndex] += repeatedValue; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + // (DOUBLE_VARIANCE always includes DOUBLE_SUM and COUNT). + // Count will be at least 1, so compute variance over one repeated value. + final double doubleSum = Double.longBitsToDouble(longs[firstAggregationIndex]) + repeatedValue; + final long previousCount = longs[firstAggregationIndex]; + final long count = previousCount + 1; + final double doubleCount = count; + final double t = doubleCount * repeatedValue - doubleSum; + double doubleVariance = Double.longBitsToDouble(longs[firstAggregationIndex]); + doubleVariance += (t * t) / (doubleCount * previousCount); + + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleSum); + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleVariance); +#ELSE +#IF DOUBLE_SUM + longs[firstAggregationIndex] = + Double.doubleToLongBits( + Double.longBitsToDouble(longs[firstAggregationIndex]) + repeatedValue); +#ENDIF DOUBLE_SUM +#ENDIF DOUBLE_VARIANCE + } + + @Override + public void aggrLongExistingRepeatedValueForDuplicateKey( + final long repeatedValue, + final int firstAggregationIndex, + final int keyDuplicateCount) { + + if (keyDuplicateCount <= 1) { + fake++; + } + VectorizedBatchUtil.debugCheckState(keyDuplicateCount > 1); + + // Aggregation evaluation(s) for repeated value. +#IF COUNT + longs[firstAggregationIndex] += keyDuplicateCount; +#ENDIF COUNT +#IF LONG_MIN + if (repeatedValue < longs[firstAggregationIndex]) { + longs[firstAggregationIndex] = repeatedValue; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (repeatedValue > longs[firstAggregationIndex]) { + longs[firstAggregationIndex] = repeatedValue; + } +#ENDIF LONG_MAX +#IF LONG_SUM + longs[firstAggregationIndex] += repeatedValue * keyDuplicateCount; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + // (DOUBLE_VARIANCE always includes DOUBLE_SUM and COUNT). + double doubleSum = Double.longBitsToDouble(longs[firstAggregationIndex]); + long previousCount = longs[firstAggregationIndex]; + double doubleVariance = Double.longBitsToDouble(longs[firstAggregationIndex]); + + // Count will be at least 1, so compute variance over one repeated value. + for (int v = 0; v < keyDuplicateCount; v++) { + doubleSum += repeatedValue; + final long count = previousCount + 1; + final double doubleCount = count; + final double t = doubleCount * repeatedValue - doubleSum; + doubleVariance += (t * t) / (doubleCount * previousCount); + previousCount = count; + } + + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleSum); + longs[firstAggregationIndex] = previousCount; + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleVariance); +#ELSE +#IF DOUBLE_SUM + longs[firstAggregationIndex] = + Double.doubleToLongBits( + Double.longBitsToDouble(longs[firstAggregationIndex]) + repeatedValue); +#ENDIF DOUBLE_SUM +#ENDIF DOUBLE_VARIANCE + } + + // SINGLE KEY Aggregation + + //------------------------------------------------------------------------------------------------ + + @Override + public void aggrLongExistingValueForSingleKey( + long[] vector, + final int batchIndex, + final int firstAggregationIndex) { + + final long value = vector[batchIndex]; + + // Aggregation evaluation. +#IF COUNT + longs[firstAggregationIndex]++; +#ENDIF COUNT +#IF LONG_MIN + if (value < longs[firstAggregationIndex]) { + longs[firstAggregationIndex] = value; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (value > longs[firstAggregationIndex]) { + longs[firstAggregationIndex] = value; + } +#ENDIF LONG_MAX +#IF LONG_SUM + longs[firstAggregationIndex] += value; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + // (DOUBLE_VARIANCE always includes DOUBLE_SUM and COUNT). + // Count will be at least 1, so compute variance over one value. + final double doubleSum = Double.longBitsToDouble(longs[firstAggregationIndex]) + value; + final long previousCount = longs[firstAggregationIndex]; + final long count = previousCount + 1; + final double doubleCount = count; + final double t = doubleCount * value - doubleSum; + double doubleVariance = Double.longBitsToDouble(longs[firstAggregationIndex]); + doubleVariance += (t * t) / (doubleCount * previousCount); + + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleSum); + longs[firstAggregationIndex] = count; + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleVariance); +#ELSE +#IF DOUBLE_SUM + longs[firstAggregationIndex] = + Double.doubleToLongBits( + Double.longBitsToDouble(longs[firstAggregationIndex]) + value); +#ENDIF DOUBLE_SUM +#ENDIF DOUBLE_VARIANCE + } + + // IS SELECTED (Logical) + + @Override + public void aggrLongExistingSelectedNoNullValueForDuplicateKey( + int[] selected, + long[] vector, + int logicalIndex, + final int firstAggregationIndex, + final int keyDuplicateCount) { + + if (keyDuplicateCount <= 1) { + fake++; + } + VectorizedBatchUtil.debugCheckState(keyDuplicateCount > 1); + + // Aggregation (current) entry values and local variables. +#IF LONG_MIN + long min = longs[firstAggregationIndex]; +#ENDIF LONG_MIN +#IF LONG_MAX + long max = longs[firstAggregationIndex]; +#ENDIF LONG_MAX +#IF LONG_SUM + long sum = longs[firstAggregationIndex]; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + double doubleSum = Double.longBitsToDouble(longs[firstAggregationIndex]); + long previousCount = longs[firstAggregationIndex]; + double doubleVariance = Double.longBitsToDouble(longs[firstAggregationIndex]); +#ELSE +#IF DOUBLE_SUM + double doubleSum = + Double.longBitsToDouble(longs[firstAggregationIndex]); +#ENDIF DOUBLE_SUM +#ENDIF DOUBLE_VARIANCE + + final int end = logicalIndex + keyDuplicateCount; + int batchIndex; + do { + batchIndex = selected[logicalIndex]; + final long value = vector[batchIndex]; + + // Aggregation evaluation. +#IF LONG_MIN + if (value < min) { + min = value; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (value > max) { + max = value; + } +#ENDIF LONG_MAX +#IF LONG_SUM + sum += value; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + doubleSum += value; + final long count = previousCount + 1; + final double doubleCount = count; + final double t = doubleCount * value - doubleSum; + doubleVariance += (t * t) / (doubleCount * previousCount); + previousCount = count; +#ELSE +#IF DOUBLE_SUM + doubleSum += value; +#ENDIF DOUBLE_SUM +#ENDIF DOUBLE_VARIANCE + } while (++logicalIndex < end); + + // Save aggregation(s). +#IF COUNT + longs[firstAggregationIndex] += keyDuplicateCount; +#ENDIF COUNT +#IF LONG_MIN + longs[firstAggregationIndex] = min; +#ENDIF LONG_MIN +#IF LONG_MAX + longs[firstAggregationIndex] = max; +#ENDIF LONG_MAX +#IF LONG_SUM + longs[firstAggregationIndex] = sum; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleSum); +#ENDIF DOUBLE_SUM +#IF DOUBLE_VARIANCE + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleVariance); +#ENDIF DOUBLE_VARIANCE + } + + @Override + public void aggrLongExistingSelectedNullsValueForDuplicateKey( + int[] selected, + boolean[] isNull, + long[] vector, + int logicalIndex, + final int firstAggregationIndex, + final int keyDuplicateCount) { + + if (keyDuplicateCount <= 1) { + fake++; + } + VectorizedBatchUtil.debugCheckState(keyDuplicateCount > 1); + + // Find first non-null. + final int end = logicalIndex + keyDuplicateCount; + int batchIndex; + while (true) { + batchIndex = selected[logicalIndex]; + if (!isNull[batchIndex]) { + break; + } + if (++logicalIndex >= end) { + return; + } + } + + // At least one non-null. + + // Entry has value(s). + + // Aggregation local variable(s). +#IF LONG_MIN + long min = longs[firstAggregationIndex]; +#ENDIF LONG_MIN +#IF LONG_MAX + long max = longs[firstAggregationIndex]; +#ENDIF LONG_MAX + + final long firstValue = vector[batchIndex]; + logicalIndex++; + + // Aggregation firstValue evaluation. +#IF LONG_MIN + if (firstValue < min) { + min = firstValue; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (firstValue > max) { + max = firstValue; + } +#ENDIF LONG_MAX +#IF LONG_SUM + long sum = firstValue; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + // (DOUBLE_VARIANCE always includes DOUBLE_SUM and COUNT). + // Count will be at least 1, so compute variance over first value. + double doubleSum = Double.longBitsToDouble(longs[firstAggregationIndex]) + firstValue; + long previousCount = longs[firstAggregationIndex]; + long count = previousCount + 1; + double doubleCount = count; + double t = doubleCount * firstValue - doubleSum; + double doubleVariance = Double.longBitsToDouble(longs[firstAggregationIndex]); + doubleVariance += (t * t) / (doubleCount * previousCount); +#ELSE +#IF DOUBLE_SUM + double doubleSum = firstValue; +#ENDIF DOUBLE_SUM +#IF COUNT + long count = 1; +#ENDIF COUNT +#ENDIF DOUBLE_VARIANCE + + while (logicalIndex < end) { + batchIndex = selected[logicalIndex]; + if (!isNull[batchIndex]) { + final long value = vector[batchIndex]; + + // Aggregation evaluation. +#IF LONG_MIN + if (value < min) { + min = value; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (value > max) { + max = value; + } +#ENDIF LONG_MAX +#IF LONG_SUM + sum += value; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + doubleSum += value; + count = previousCount + 1; + doubleCount = count; + t = doubleCount * value - doubleSum; + doubleVariance += (t * t) / (doubleCount * previousCount); + previousCount = count; +#ELSE +#IF DOUBLE_SUM + doubleSum += value; +#ENDIF DOUBLE_SUM +#IF COUNT + count++; +#ENDIF COUNT +#ENDIF DOUBLE_VARIANCE + + } + logicalIndex++; + } + + // Save value(s) in entry. +#IF LONG_MIN + longs[firstAggregationIndex] = min; +#ENDIF LONG_MIN +#IF LONG_MAX + longs[firstAggregationIndex] = max; +#ENDIF LONG_MAX +#IF LONG_SUM + longs[firstAggregationIndex] += sum; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleSum); + longs[firstAggregationIndex] = count; + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleVariance); +#ELSE +#IF DOUBLE_SUM + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleSum); +#ENDIF DOUBLE_SUM +#IF COUNT + longs[firstAggregationIndex] += count; +#ENDIF COUNT +#ENDIF DOUBLE_VARIANCE + } + + // NOT SELECTED (Physical) + + @Override + public void aggrLongExistingNotSelectedNoNullValueForDuplicateKey( + long[] vector, + int batchIndex, + final int firstAggregationIndex, + final int keyDuplicateCount) { + + if (keyDuplicateCount <= 1) { + fake++; + } + VectorizedBatchUtil.debugCheckState(keyDuplicateCount > 1); + + // Aggregation (current) entry values and local variables. +#IF LONG_MIN + long min = longs[firstAggregationIndex]; +#ENDIF LONG_MIN +#IF LONG_MAX + long max = longs[firstAggregationIndex]; +#ENDIF LONG_MAX +#IF LONG_SUM + long sum = longs[firstAggregationIndex]; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + double doubleSum = Double.longBitsToDouble(longs[firstAggregationIndex]); + long previousCount = longs[firstAggregationIndex]; + double doubleVariance = Double.longBitsToDouble(longs[firstAggregationIndex]); +#ELSE +#IF DOUBLE_SUM + double doubleSum = + Double.longBitsToDouble(longs[firstAggregationIndex]); +#ENDIF DOUBLE_SUM +#ENDIF DOUBLE_VARIANCE + + final int end = batchIndex + keyDuplicateCount; + do { + final long value = vector[batchIndex]; + + // Aggregation evaluation. +#IF LONG_MIN + if (value < min) { + min = value; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (value > max) { + max = value; + } +#ENDIF LONG_MAX +#IF LONG_SUM + sum += value; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + doubleSum += value; + final long count = previousCount + 1; + final double doubleCount = count; + final double t = doubleCount * value - doubleSum; + doubleVariance += (t * t) / (doubleCount * previousCount); + previousCount = count; +#ELSE +#IF DOUBLE_SUM + doubleSum += value; +#ENDIF DOUBLE_SUM +#ENDIF DOUBLE_VARIANCE + } while (++batchIndex < end); + + // Save aggregation(s). +#IF COUNT + longs[firstAggregationIndex] += keyDuplicateCount; +#ENDIF COUNT +#IF LONG_MIN + longs[firstAggregationIndex] = min; +#ENDIF LONG_MIN +#IF LONG_MAX + longs[firstAggregationIndex] = max; +#ENDIF LONG_MAX +#IF LONG_SUM + longs[firstAggregationIndex] = sum; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleSum); +#ENDIF DOUBLE_SUM +#IF DOUBLE_VARIANCE + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleVariance); +#ENDIF DOUBLE_VARIANCE + } + + @Override + public void aggrLongExistingNotSelectedNullsValueForDuplicateKey( + boolean[] isNull, + long[] vector, + int batchIndex, + final int firstAggregationIndex, + final int keyDuplicateCount) { + + if (keyDuplicateCount <= 1) { + fake++; + } + VectorizedBatchUtil.debugCheckState(keyDuplicateCount > 1); + + // Find first non-null. + final int end = batchIndex + keyDuplicateCount; + while (true) { + if (!isNull[batchIndex]) { + break; + } + if (++batchIndex >= end) { + return; + } + } + + // At least one non-null. + + // Entry has value(s). + + // Aggregation local variable(s). +#IF LONG_MIN + long min = longs[firstAggregationIndex]; +#ENDIF LONG_MIN +#IF LONG_MAX + long max = longs[firstAggregationIndex]; +#ENDIF LONG_MAX + + final long firstValue = vector[batchIndex++]; + + // Aggregation firstValue evaluation. +#IF LONG_MIN + if (firstValue < min) { + min = firstValue; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (firstValue > max) { + max = firstValue; + } +#ENDIF LONG_MAX +#IF LONG_SUM + long sum = firstValue; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + // (DOUBLE_VARIANCE always includes DOUBLE_SUM and COUNT). + // Count will be at least 1, so compute variance over first value. + double doubleSum = Double.longBitsToDouble(longs[firstAggregationIndex]) + firstValue; + long previousCount = longs[firstAggregationIndex]; + long count = previousCount + 1; + double doubleCount = count; + double t = doubleCount * firstValue - doubleSum; + double doubleVariance = Double.longBitsToDouble(longs[firstAggregationIndex]); + doubleVariance += (t * t) / (doubleCount * previousCount); +#ELSE +#IF DOUBLE_SUM + double doubleSum = firstValue; +#ENDIF DOUBLE_SUM +#IF COUNT + long count = 1; +#ENDIF COUNT +#ENDIF DOUBLE_VARIANCE + + while (batchIndex < end) { + if (!isNull[batchIndex]) { + final long value = vector[batchIndex]; + + // Aggregation evaluation. +#IF LONG_MIN + if (value < min) { + min = value; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (value > max) { + max = value; + } +#ENDIF LONG_MAX +#IF LONG_SUM + sum += value; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + doubleSum += value; + count = previousCount + 1; + doubleCount = count; + t = doubleCount * value - doubleSum; + doubleVariance += (t * t) / (doubleCount * previousCount); + previousCount = count; +#ELSE +#IF DOUBLE_SUM + doubleSum += value; +#ENDIF DOUBLE_SUM +#IF COUNT + count++; +#ENDIF COUNT +#ENDIF DOUBLE_VARIANCE + + } + batchIndex++; + } + + // Save value(s) in entry. +#IF LONG_MIN + longs[firstAggregationIndex] = min; +#ENDIF LONG_MIN +#IF LONG_MAX + longs[firstAggregationIndex] = max; +#ENDIF LONG_MAX +#IF LONG_SUM + longs[firstAggregationIndex] += sum; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleSum); + longs[firstAggregationIndex] = count; + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleVariance); +#ELSE +#IF DOUBLE_SUM + longs[firstAggregationIndex] = Double.doubleToLongBits(doubleSum); +#ENDIF DOUBLE_SUM +#IF COUNT + longs[firstAggregationIndex] += count; +#ENDIF COUNT +#ENDIF DOUBLE_VARIANCE + } + + //------------------------------------------------------------------------------------------------ + + @Override + public int getAggrCount() { + return ; + } + + /** + * Used by aggregation to know how many longs are used. + * + * @return the long count. + */ + public int getLongCount() { + return +#IF LONG_MIN + 1 + +#ENDIF LONG_MIN +#IF LONG_MAX + 1 + +#ENDIF LONG_MAX +#IF LONG_SUM + 1 + +#ENDIF LONG_SUM +#IF DOUBLE_SUM + 1 + +#ENDIF DOUBLE_SUM +#IF COUNT + 1 + +#ENDIF COUNT +#IF DOUBLE_VARIANCE + 1 + +#ENDIF DOUBLE_VARIANCE + 0; + } +} diff --git ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColHashLongMethods.txt ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColHashLongMethods.txt new file mode 100644 index 0000000..2102880 --- /dev/null +++ ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColHashLongMethods.txt @@ -0,0 +1,532 @@ + //------------------------------------------------------------------------------------------------ + + /** + * Aggregate a long column for key. + * Batch processing is . + */ + public void aggrLongColVector( + final int keyCount, + int[] hashEleIndices, +#IF FIRST_COLUMN +#IF HASH_ONE_LONG + long[] oneLongKeys, +#ENDIF HASH_ONE_LONG +#IF HASH_FIXED_LEN + long[] fixedLenNonNullFlagsArray, + long[] fixedLenKeyBuffer, +#ENDIF HASH_FIXED_LEN +#IF HASH_VAR_LEN + long[] varLenKeyBuffer, + int[] varKeyStarts, + int[] varLenKeyLengths, +#ENDIF HASH_VAR_LEN +#ENDIF FIRST_COLUMN + int[] keyDuplicateCounts, +#IF GROUPING_SETS + int groupingSetsId, +#ENDIF GROUPING_SETS + VectorizedRowBatch batch, // Need a parameter that is always needed at the end + // to avoid the comma syntax error. + final int inputColumnNum) { + + LongColumnVector aggrLongColVector = (LongColumnVector) batch.cols[inputColumnNum]; + long[] aggrVector = aggrLongColVector.vector; +#IF LOGICAL_BATCH_PROCESSING + int[] selected = batch.selected; +#ENDIF LOGICAL_BATCH_PROCESSING + + if (aggrLongColVector.isRepeating) { + + // Aggregation Column IS isRepeated. + +#IF FIRST_COLUMN,COUNT_STAR +#ELSE + if (!aggrLongColVector.noNulls) { + + // All NULLs -- nothing more to do... + + // The "has value" flags will remain unchanged. + + return; + } +#ENDIF FIRST_COLUMN,COUNT_STAR + final boolean keyIsNull = !aggrLongColVector.noNulls; + final long repeatedValue = aggrVector[0]; // Garbage if keyIsNull. + +#IF FIRST_COLUMN + // Assign or validate key values in each hash element. +#ENDIF FIRST_COLUMN +#IF COUNT_STAR + // Do COUNT(*) processing for repeated null. +#ENDIF COUNT_STAR +#IF LOGICAL_BATCH_PROCESSING + int logicalIndex = 0; + do { + final int batchIndex = selected[logicalIndex]; + +#ELSE + int batchIndex = 0; + do { +#ENDIF LOGICAL_BATCH_PROCESSING +#IF FIRST_COLUMN + int hashEleIndex = hashEleIndices[]; +#ELSE + final int hashEleIndex = hashEleIndices[]; +#ENDIF FIRST_COLUMN + +#IF FIRST_COLUMN + // Check key assigned flag bit. + if ((longs[hashEleIndex] & KEY_ASSIGNED_MASK) == 0) { + + // Key not assigned yet. + + VectorizedBatchUtil.debugCheckState(longs[hashEleIndex] == 0); + longs[hashEleIndex] = KEY_ASSIGNED_MASK; + +#IF HASH_ONE_LONG + // NOTE: No Grouping Sets for one long key (trivial case). + assignOneLongKey(hashEleIndex, oneLongKeys[batchIndex]); +#ENDIF HASH_ONE_LONG +#IF HASH_FIXED_LEN + assignFixedLenKey( + hashEleIndex, fixedLenNonNullFlagsArray[batchIndex], fixedLenKeyBuffer, batchIndex); +#ENDIF HASH_FIXED_LEN +#IF HASH_VAR_LEN + assignVarLenKey( + hashEleIndex, varLenKeyBuffer, varKeyStarts[batchIndex], varLenKeyLengths[batchIndex]); +#ENDIF HASH_VAR_LEN + + } else { + + // Key is assigned -- but is it the correct key? If not, chase chain and + // find right hash element or create new hash element... + + // UNDONE: For Grouping Sets, use different comparison / chase methods. + +#IF HASH_ONE_LONG + final long oneLongKey = oneLongKeys[batchIndex]; + if (!equalsOneLongKey(hashEleIndex, oneLongKey)) { + hashEleIndex = chaseOneLongKeyChain(hashEleIndex, oneLongKey); + hashEleIndices[] = hashEleIndex; + } +#ENDIF HASH_ONE_LONG +#IF HASH_FIXED_LEN + final long fixedLenNonNullFlags = fixedLenNonNullFlagsArray[batchIndex]; + if (!equalsFixedLenKey( + hashEleIndex, fixedLenNonNullFlags, fixedLenKeyBuffer, batchIndex)) { + hashEleIndex = chaseFixedLenKeyChain( + hashEleIndex, fixedLenNonNullFlags, fixedLenKeyBuffer, batchIndex); + hashEleIndices[] = hashEleIndex; + } +#ENDIF HASH_FIXED_LEN +#IF HASH_VAR_LEN + final int keyStart = varKeyStarts[batchIndex]; + final int keyLength = varLenKeyLengths[batchIndex]; + if (!equalsVarLenKey( + hashEleIndex, varLenKeyBuffer, keyStart, keyLength)) { + hashEleIndex = chaseVarLenKeyChain( + hashEleIndex, varLenKeyBuffer, keyStart, keyLength); + hashEleIndices[] = hashEleIndex; + } +#ENDIF HASH_VAR_LEN + } + + final int keyDuplicateCount = keyDuplicateCounts[]; +#IF COUNT_STAR + + // NOTE: COUNT(*) is not covered under the "has value" flag since it counts NULLs. + // We just add to pre-zeroed longs array. + longs[hashEleIndex + countStarOffset] += keyDuplicateCount; +#ENDIF COUNT_STAR +#ELSE + final int keyDuplicateCount = keyDuplicateCounts[]; +#ENDIF FIRST_COLUMN + if (keyIsNull) { + + // All NULLs -- nothing more to do... + + // The "has value" flags will remain unchanged. + + } else { + + + final int hasValueIndex = hashEleIndex + hasValueOffset; + if ((longs[hasValueIndex] & hasValueMask) != 0) { + + // Hash table element with value(s). + + if (keyDuplicateCount == 1) { + aggrLongExistingRepeatedValueForSingleKey( + repeatedValue, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } else { + aggrLongExistingRepeatedValueForDuplicateKey( + repeatedValue, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + keyDuplicateCount); + } + } else { + + // Hash table element without value(s) yet. + + longs[hasValueIndex] |= hasValueMask; + + if (keyDuplicateCount == 1) { + aggrLongNewRepeatedValueForSingleKey( + repeatedValue, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } else { + aggrLongNewRepeatedValueForDuplicateKey( + repeatedValue, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + keyDuplicateCount); + } + } + } + += keyDuplicateCounts[]; + } while ( < keyCount); + return; + } else { + + // Aggregation Column IS NOT isRepeated. + + if (aggrLongColVector.noNulls) { + + // No NULLs to worry about. +#IF LOGICAL_BATCH_PROCESSING + int logicalIndex = 0; + do { + final int batchIndex = selected[logicalIndex]; +#ELSE + int batchIndex = 0; + do { +#ENDIF LOGICAL_BATCH_PROCESSING + +#IF FIRST_COLUMN + int hashEleIndex = hashEleIndices[]; +#ELSE + final int hashEleIndex = hashEleIndices[]; +#ENDIF FIRST_COLUMN +#IF FIRST_COLUMN + + // Check key assigned flag bit. + if ((longs[hashEleIndex] & KEY_ASSIGNED_MASK) == 0) { + + // Key not assigned yet. + + VectorizedBatchUtil.debugCheckState(longs[hashEleIndex] == 0); + longs[hashEleIndex] = KEY_ASSIGNED_MASK; + +#IF HASH_ONE_LONG + // NOTE: No Grouping Sets for one long key (trivial case). + assignOneLongKey(hashEleIndex, oneLongKeys[batchIndex]); +#ENDIF HASH_ONE_LONG +#IF HASH_FIXED_LEN + assignFixedLenKey( + hashEleIndex, fixedLenNonNullFlagsArray[batchIndex], fixedLenKeyBuffer, batchIndex); +#ENDIF HASH_FIXED_LEN +#IF HASH_VAR_LEN + assignVarLenKey( + hashEleIndex, varLenKeyBuffer, varKeyStarts[batchIndex], varLenKeyLengths[batchIndex]); +#ENDIF HASH_VAR_LEN + + } else if (hashEleIndex != 0) { + + // Key is assigned -- but is it the correct key? If not, chase chain and + // find right hash element or create new hash element... + + // UNDONE: For Grouping Sets, use different comparison / chase methods. + +#IF HASH_ONE_LONG + final long oneLongKey = oneLongKeys[batchIndex]; + if (!equalsOneLongKey(hashEleIndex, oneLongKey)) { + hashEleIndex = chaseOneLongKeyChain(hashEleIndex, oneLongKey); + hashEleIndices[] = hashEleIndex; + } +#ENDIF HASH_ONE_LONG +#IF HASH_FIXED_LEN + final long fixedLenNonNullFlags = fixedLenNonNullFlagsArray[batchIndex]; + if (!equalsFixedLenKey( + hashEleIndex, fixedLenNonNullFlags, fixedLenKeyBuffer, batchIndex)) { + hashEleIndex = chaseFixedLenKeyChain( + hashEleIndex, fixedLenNonNullFlags, fixedLenKeyBuffer, batchIndex); + hashEleIndices[] = hashEleIndex; + } +#ENDIF HASH_FIXED_LEN +#IF HASH_VAR_LEN + final int keyStart = varKeyStarts[batchIndex]; + final int keyLength = varLenKeyLengths[batchIndex]; + if (!equalsVarLenKey( + hashEleIndex, varLenKeyBuffer, keyStart, keyLength)) { + hashEleIndex = chaseVarLenKeyChain( + hashEleIndex, varLenKeyBuffer, keyStart, keyLength); + hashEleIndices[] = hashEleIndex; + } +#ENDIF HASH_VAR_LEN + } + + final int keyDuplicateCount = keyDuplicateCounts[]; + +#IF COUNT_STAR + + // NOTE: COUNT(*) is not covered under the "has value" flag since it counts NULLs. + // We just add to pre-zeroed longs array. + longs[hashEleIndex + countStarOffset] += keyDuplicateCounts[batchIndex]; +#ENDIF COUNT_STAR +#ELSE + + final int keyDuplicateCount = keyDuplicateCounts[batchIndex]; +#ENDIF FIRST_COLUMN + + final int hasValueIndex = hashEleIndex + hasValueOffset; + if ((longs[hasValueIndex] & hasValueMask) != 0) { + + // Hash table element with value(s). + +#IF LOGICAL_BATCH_PROCESSING + if (keyDuplicateCount == 1) { + aggrLongExistingValueForSingleKey( + aggrVector, + /* batchIndex */ selected[logicalIndex], + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } else { + aggrLongExistingNotSelectedNoNullValueForDuplicateKey( + aggrVector, + logicalIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + keyDuplicateCount); + } +#ELSE + if (keyDuplicateCount == 1) { + aggrLongExistingValueForSingleKey( + aggrVector, + batchIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } else { + aggrLongExistingNotSelectedNoNullValueForDuplicateKey( + aggrVector, + batchIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + keyDuplicateCount); + } +#ENDIF LOGICAL_BATCH_PROCESSING + } else { + + // Hash table element without value(s) yet. + + longs[hasValueIndex] |= hasValueMask; + +#IF LOGICAL_BATCH_PROCESSING + if (keyDuplicateCount == 1) { + aggrLongNewValueForSingleKey( + aggrVector, + /* batchIndex */ selected[logicalIndex], + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } else { + aggrLongNewSelectedNoNullValueForDuplicateKey( + selected, + aggrVector, + logicalIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + keyDuplicateCount); + } +#ELSE + if (keyDuplicateCount == 1) { + aggrLongNewValueForSingleKey( + aggrVector, + batchIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } else { + aggrLongNewNotSelectedNoNullValueForDuplicateKey( + aggrVector, + batchIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + keyDuplicateCount); + } +#ENDIF LOGICAL_BATCH_PROCESSING + } + + += keyDuplicateCounts[]; + } while ( < keyCount); + } else { + + // Must handle NULLs. + + boolean[] isNull = aggrLongColVector.isNull; + +#IF LOGICAL_BATCH_PROCESSING + int logicalIndex = 0; + do { + final int batchIndex = selected[logicalIndex]; +#ELSE + int batchIndex = 0; + do { +#ENDIF LOGICAL_BATCH_PROCESSING + +#IF FIRST_COLUMN + int hashEleIndex = hashEleIndices[]; +#ELSE + final int hashEleIndex = hashEleIndices[]; +#ENDIF FIRST_COLUMN + +#IF FIRST_COLUMN + // Check key assigned flag bit. + if ((longs[hashEleIndex] & KEY_ASSIGNED_MASK) == 0) { + + // Key not assigned yet. + + VectorizedBatchUtil.debugCheckState(longs[hashEleIndex] == 0); + longs[hashEleIndex] = KEY_ASSIGNED_MASK; + +#IF HASH_ONE_LONG + // NOTE: No Grouping Sets for one long key (trivial case). + assignOneLongKey(hashEleIndex, oneLongKeys[batchIndex]); +#ENDIF HASH_ONE_LONG +#IF HASH_FIXED_LEN + assignFixedLenKey( + hashEleIndex, fixedLenNonNullFlagsArray[batchIndex], fixedLenKeyBuffer, batchIndex); +#ENDIF HASH_FIXED_LEN +#IF HASH_VAR_LEN + assignVarLenKey( + hashEleIndex, varLenKeyBuffer, varKeyStarts[batchIndex], varLenKeyLengths[batchIndex]); +#ENDIF HASH_VAR_LEN + + } else if (hashEleIndex != 0) { + + // Key is assigned -- but is it the correct key? If not, chase chain and + // find right hash element or create new hash element... + + // UNDONE: For Grouping Sets, use different comparison / chase methods. + +#IF HASH_ONE_LONG + final long oneLongKey = oneLongKeys[batchIndex]; + if (!equalsOneLongKey(hashEleIndex, oneLongKey)) { + hashEleIndex = chaseOneLongKeyChain(hashEleIndex, oneLongKey); + hashEleIndices[] = hashEleIndex; + } +#ENDIF HASH_ONE_LONG +#IF HASH_FIXED_LEN + final long fixedLenNonNullFlags = fixedLenNonNullFlagsArray[batchIndex]; + if (!equalsFixedLenKey( + hashEleIndex, fixedLenNonNullFlags, fixedLenKeyBuffer, batchIndex)) { + hashEleIndex = chaseFixedLenKeyChain( + hashEleIndex, fixedLenNonNullFlags, fixedLenKeyBuffer, batchIndex); + hashEleIndices[] = hashEleIndex; + } +#ENDIF HASH_FIXED_LEN +#IF HASH_VAR_LEN + final int keyStart = varKeyStarts[batchIndex]; + final int keyLength = varLenKeyLengths[batchIndex]; + if (!equalsVarLenKey( + hashEleIndex, varLenKeyBuffer, keyStart, keyLength)) { + hashEleIndex = chaseVarLenKeyChain( + hashEleIndex, varLenKeyBuffer, keyStart, keyLength); + hashEleIndices[] = hashEleIndex; + } +#ENDIF HASH_VAR_LEN + } + + final int keyDuplicateCount = keyDuplicateCounts[]; +#IF COUNT_STAR + + // NOTE: COUNT(*) is not covered under the "has value" flag since it counts NULLs. + // We just add to pre-zeroed longs array. + longs[hashEleIndex + countStarOffset] += keyDuplicateCounts[batchIndex]; +#ENDIF COUNT_STAR +#ELSE + + final int keyDuplicateCount = keyDuplicateCounts[]; +#ENDIF FIRST_COLUMN + + final int hasValueIndex = hashEleIndex + hasValueOffset; + if ((longs[hasValueIndex] & hasValueMask) != 0) { + + // Hash table element with value(s). + +#IF LOGICAL_BATCH_PROCESSING + if (keyDuplicateCount == 1) { + final int oneBatchIndex = selected[logicalIndex]; + if (!isNull[oneBatchIndex]) { + aggrLongExistingValueForSingleKey( + aggrVector, + oneBatchIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } + } else { + aggrLongExistingSelectedNullsValueForDuplicateKey( + selected, + aggrLongColVector.isNull, + aggrVector, + logicalIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + keyDuplicateCount); + } +#ELSE + if (keyDuplicateCount == 1) { + if (!isNull[batchIndex]) { + aggrLongExistingValueForSingleKey( + aggrVector, + batchIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } + } else { + aggrLongExistingNotSelectedNullsValueForDuplicateKey( + aggrLongColVector.isNull, + aggrVector, + batchIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + keyDuplicateCount); + } +#ENDIF LOGICAL_BATCH_PROCESSING + } else { + + // Hash table element without value(s) yet. + +#IF LOGICAL_BATCH_PROCESSING + if (keyDuplicateCount == 1) { + final int oneBatchIndex = selected[logicalIndex]; + if (!isNull[oneBatchIndex]) { + longs[hasValueIndex] |= hasValueMask; + aggrLongNewValueForSingleKey( + aggrVector, + oneBatchIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } + } else { + if (aggrLongNewSelectedNullsValueForDuplicateKey( + selected, + aggrLongColVector.isNull, + aggrVector, + logicalIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + keyDuplicateCount)) { + longs[hasValueIndex] |= hasValueMask; + } + } +#ELSE + if (keyDuplicateCount == 1) { + if (!isNull[batchIndex]) { + longs[hasValueIndex] |= hasValueMask; + aggrLongNewValueForSingleKey( + aggrVector, + batchIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } + } else { + if (aggrLongNewNotSelectedNullsValueForDuplicateKey( + aggrLongColVector.isNull, + aggrVector, + batchIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + keyDuplicateCount)) { + longs[hasValueIndex] |= hasValueMask; + } + } +#ENDIF LOGICAL_BATCH_PROCESSING + } + + += keyDuplicateCounts[]; + } while ( < keyCount); + } + } + } \ No newline at end of file diff --git ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColHashLongRepeatedKeyMethods.txt ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColHashLongRepeatedKeyMethods.txt new file mode 100644 index 0000000..d0360a7 --- /dev/null +++ ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColHashLongRepeatedKeyMethods.txt @@ -0,0 +1,343 @@ + //------------------------------------------------------------------------------------------------ + + /** + * Aggregate a long column for repeated key. + */ + public void aggrLongColVectorRepeated( + final int repeatedCount, + int hashEleIndex, +#IF FIRST_COLUMN +#IF HASH_ONE_LONG + long oneLongRepeatingKey, +#ENDIF HASH_ONE_LONG +#IF HASH_FIXED_LEN + long fixedLenNonNullFlags, + long[] fixedLenRepeatingKey, +#ENDIF HASH_FIXED_LEN +#IF HASH_VAR_LEN + long[] varLenRepeatingKey, + int varLenKeyLength, +#ENDIF HASH_VAR_LEN +#ENDIF FIRST_COLUMN + VectorizedRowBatch batch, // Need a parameter that is always needed at the end + // to avoid the comma syntax error. + final int inputColumnNum) { + + LongColumnVector aggrLongColVector = (LongColumnVector) batch.cols[inputColumnNum]; +#IF FIRST_COLUMN + + // Do key assignment or verification regardless of the contents of the Aggregation Column. + + // Check key assigned flag bit. + if ((longs[hashEleIndex] & KEY_ASSIGNED_MASK) == 0) { + + // Key not assigned yet. + + VectorizedBatchUtil.debugCheckState(longs[hashEleIndex] == 0); + longs[hashEleIndex] = KEY_ASSIGNED_MASK; + +#IF HASH_ONE_LONG + // NOTE: No Grouping Sets for one long key (trivial case). + assignOneLongKey(hashEleIndex, oneLongRepeatingKey); +#ENDIF HASH_ONE_LONG +#IF HASH_FIXED_LEN + assignFixedLenKey( + hashEleIndex, fixedLenNonNullFlags, fixedLenRepeatingKey, 0); +#ENDIF HASH_FIXED_LEN +#IF HASH_VAR_LEN + assignVarLenKey( + hashEleIndex, varLenRepeatingKey, 0, varLenKeyLength); +#ENDIF HASH_VAR_LEN + + } else { + + // Key is assigned -- but is it the correct key? If not, chase chain and + // find right hash element or create new hash element... + + // UNDONE: For Grouping Sets, use different comparison / chase methods. + +#IF HASH_ONE_LONG + if (!equalsOneLongKey(hashEleIndex, oneLongRepeatingKey)) { + hashEleIndex = chaseOneLongKeyChain(hashEleIndex, oneLongRepeatingKey); + } +#ENDIF HASH_ONE_LONG +#IF HASH_FIXED_LEN + if (!equalsFixedLenKey( + hashEleIndex, fixedLenNonNullFlags, fixedLenRepeatingKey, 0)) { + hashEleIndex = chaseFixedLenKeyChain( + hashEleIndex, fixedLenNonNullFlags, fixedLenRepeatingKey, 0); + } +#ENDIF HASH_FIXED_LEN +#IF HASH_VAR_LEN + if (!equalsVarLenKey( + hashEleIndex, varLenRepeatingKey, 0, varLenKeyLength)) { + hashEleIndex = chaseVarLenKeyChain( + hashEleIndex, varLenRepeatingKey, 0, varLenKeyLength); + } +#ENDIF HASH_VAR_LEN + } +#IF COUNT_STAR + + // NOTE: COUNT(*) is not covered under the "has value" flag since it counts NULLs. + // We just add to pre-zeroed longs array. +#IF DUPLICATE_KEYS + longs[hashEleIndex + countStarOffset] += keyDuplicateCounts[batchIndex]; +#ELSE + longs[hashEleIndex + countStarOffset]++; +#ENDIF DUPLICATE_KEYS +#ENDIF COUNT_STAR +#ENDIF FIRST_COLUMN + + if (aggrLongColVector.isRepeating) { + + // Aggregation Column IS Repeating. + + if (!aggrLongColVector.noNulls) { + + // All NULLs -- nothing more to do... + + // The "has value" flags will remain unchanged. + + return; + } + + final long repeatedValue = aggrLongColVector.vector[0]; + + final int hasValueIndex = hashEleIndex + hasValueOffset; + if ((longs[hasValueIndex] & hasValueMask) != 0) { + + // Hash table element with value(s). + + if (repeatedCount == 1) { + aggrLongExistingRepeatedValueForSingleKey( + repeatedValue, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } else { + aggrLongExistingRepeatedValueForDuplicateKey( + repeatedValue, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + repeatedCount); + } + } else { + + // Hash table element without value(s) yet. + + longs[hasValueIndex] |= hasValueMask; + + if (repeatedCount == 1) { + aggrLongNewRepeatedValueForSingleKey( + repeatedValue, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } else { + aggrLongNewRepeatedValueForDuplicateKey( + repeatedValue, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + repeatedCount); + } + } + + } else if (batch.selectedInUse) { + + // Aggregation Column IS SelectedInUse. + + long[] aggrVector = aggrLongColVector.vector; + int[] selected = batch.selected; + + if (aggrLongColVector.noNulls) { + + // No NULLs to worry about. + + final int hasValueIndex = hashEleIndex + hasValueOffset; + if ((longs[hasValueIndex] & hasValueMask) != 0) { + + // Hash table element with value(s). + + if (aggrLongColVector.noNulls) { + + // No NULLs to worry about. + +\ if (repeatedCount == 1) { + aggrLongExistingValueForSingleKey( + aggrVector, + /* batchIndex */ selected[0], + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } else { + aggrLongExistingSelectedNoNullValueForDuplicateKey( + selected, + aggrVector, + /* logicalIndex */ 0, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + repeatedCount); + } + } else { + + // Must handle NULLs. + + if (repeatedCount == 1) { + final int oneBatchIndex = selected[0]; + if (!aggrLongColVector.isNull[oneBatchIndex]) { + aggrLongExistingValueForSingleKey( + aggrVector, + oneBatchIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } + } else { + aggrLongExistingSelectedNullsValueForDuplicateKey( + selected, + aggrLongColVector.isNull, + aggrVector, + /* logicalIndex */ 0, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + repeatedCount); + } + } + } else { + + // Hash table element without value(s) yet. + + if (aggrLongColVector.noNulls) { + + // No NULLs to worry about. + + longs[hasValueIndex] |= hasValueMask; + + if (repeatedCount == 1) { + aggrLongNewValueForSingleKey( + aggrVector, + /* batchIndex */ selected[0], + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } else { + aggrLongNewSelectedNoNullValueForDuplicateKey( + selected, + aggrVector, + /* logicalIndex */ 0, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + repeatedCount); + } + } else { + + // Must handle NULLs. + + if (repeatedCount == 1) { + final int oneBatchIndex = selected[0]; + if (!aggrLongColVector.isNull[oneBatchIndex]) { + longs[hasValueIndex] |= hasValueMask; + aggrLongNewValueForSingleKey( + aggrVector, + oneBatchIndex, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } + } else { + if (aggrLongNewSelectedNullsValueForDuplicateKey( + selected, + aggrLongColVector.isNull, + aggrVector, + /* logicalIndex */ 0, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + repeatedCount)) { + longs[hasValueIndex] |= hasValueMask; + } + } + } + } + } + } else { + + // Aggregation Column NOT SelectedInUse. + + long[] aggrVector = aggrLongColVector.vector; + + if (aggrLongColVector.noNulls) { + + // No NULLs to worry about. + + final int hasValueIndex = hashEleIndex + hasValueOffset; + if ((longs[hasValueIndex] & hasValueMask) != 0) { + + // Hash table element with value(s). + + if (aggrLongColVector.noNulls) { + + // No NULLs to worry about. + + if (repeatedCount == 1) { + aggrLongExistingValueForSingleKey( + aggrVector, + /* batchIndex */ 0, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } else { + aggrLongExistingNotSelectedNoNullValueForDuplicateKey( + aggrVector, + /* batchIndex */ 0, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + repeatedCount); + } + } else { + + // Must handle NULLs. + + if (repeatedCount == 1) { + if (!aggrLongColVector.isNull[0]) { + aggrLongExistingValueForSingleKey( + aggrVector, + /* batchIndex */ 0, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } + } else { + aggrLongExistingNotSelectedNullsValueForDuplicateKey( + aggrLongColVector.isNull, + aggrVector, + /* batchIndex */ 0, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + repeatedCount); + } + } + } else { + + // Hash table element without value(s) yet. + + if (aggrLongColVector.noNulls) { + + // No NULLs to worry about. + + longs[hasValueIndex] |= hasValueMask; + + if (repeatedCount == 1) { + aggrLongNewValueForSingleKey( + aggrVector, + /* batchIndex */ 0, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } else { + aggrLongNewNotSelectedNoNullValueForDuplicateKey( + aggrVector, + /* batchIndex */ 0, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + repeatedCount); + } + } else { + + // Must handle NULLs. + + if (repeatedCount == 1) { + if (!aggrLongColVector.isNull[0]) { + longs[hasValueIndex] |= hasValueMask; + aggrLongNewValueForSingleKey( + aggrVector, + /* batchIndex */ 0, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset); + } + } else { + if (aggrLongNewNotSelectedNullsValueForDuplicateKey( + aggrLongColVector.isNull, + aggrVector, + /* batchIndex */ 0, + /* firstAggregationIndex */ hashEleIndex + firstAggregationOffset, + repeatedCount)) { + longs[hasValueIndex] |= hasValueMask; + } + } + } + } + } + } + } \ No newline at end of file diff --git ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColMap.txt ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColMap.txt new file mode 100644 index 0000000..495383a --- /dev/null +++ ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColMap.txt @@ -0,0 +1,36 @@ +/** + * 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.exec.vector.groupby.aggregation.gen; + +import java.util.Map; + +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.; + +/** + * + * This class contains a map from aggregation functions mask to aggregation class. + * + */ +public class { + + public static void fillMap(Map>> ) { + + + } +} \ No newline at end of file diff --git ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColStreamingLong.txt ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColStreamingLong.txt new file mode 100644 index 0000000..abe0fec --- /dev/null +++ ql/src/gen/vectorization/GroupByAggregationTemplates/AggrColStreamingLong.txt @@ -0,0 +1,457 @@ +/** + * 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.exec.vector.groupby.aggregation.gen; + +import java.io.Serializable; + +import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColStreamingBase; + +import com.google.common.base.Preconditions; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil; + +public final class extends VectorGroupByAggrColStreamingBase implements Serializable { + + private static final long serialVersionUID = 1L; + + private boolean hasValues; + + // Aggregation members. +#IF LONG_MIN + private long aggrMin; +#ENDIF LONG_MIN +#IF LONG_MAX + private long aggrMax; +#ENDIF LONG_MAX +#IF LONG_SUM + private long aggrSum; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + private double aggrDoubleSum; +#ENDIF DOUBLE_SUM +#IF COUNT + private long aggrCount; +#ENDIF COUNT +#IF DOUBLE_VARIANCE + private double aggrDoubleVariance; +#ENDIF DOUBLE_VARIANCE + + public (int inputColumnNum) { + super(inputColumnNum); + } + + /** + * Aggregate a whole long column which is repeated and no nulls. + */ + public void aggregateLongColumnVectorRepeatedNoNulls(final int startIndex, final int size, + LongColumnVector longColVector) { + + VectorizedBatchUtil.debugCheckState(size > 0); + + final long repeatedValue = longColVector.vector[0]; + if (!hasValues) { + hasValues = true; + + // Initial values(s) for repeated value. +#IF LONG_MIN + aggrMin = repeatedValue; +#ENDIF LONG_MIN +#IF LONG_MAX + aggrMax = repeatedValue; +#ENDIF LONG_MAX +#IF LONG_SUM + aggrSum = repeatedValue * size; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + if (size == 1) { + + aggrDoubleSum = repeatedValue; + aggrCount = 1; + aggrDoubleVariance = 0.0; + return; + } +#ENDIF DOUBLE_VARIANCE + +#IF DOUBLE_VARIANCE + // (DOUBLE_VARIANCE always includes DOUBLE_SUM and COUNT). + double doubleSum = repeatedValue; + long previousCount = 1; + double doubleVariance = 0.0; + + // Skip first compute; calculate variance with repeated value. + for (int v = 1; v < size; v++) { + doubleSum += repeatedValue; + final long count = previousCount + 1; + final double doubleCount = count; + final double t = doubleCount * repeatedValue - doubleSum; + doubleVariance += (t * t) / (doubleCount * previousCount); + previousCount = count; + } + + aggrDoubleSum = doubleSum; + aggrCount = size; + aggrDoubleVariance = doubleVariance; +#ELSE +#IF DOUBLE_SUM + aggrDoubleSum = repeatedValue * size; +#ENDIF DOUBLE_SUM +#IF COUNT + aggrCount = size; +#ENDIF COUNT +#ENDIF DOUBLE_VARIANCE + + } else { + + // Already has values. + + // Aggregation evaluation(s) for repeated value. +#IF LONG_MIN + if (repeatedValue < aggrMin) { + aggrMin = repeatedValue; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (repeatedValue > aggrMax) { + aggrMax = repeatedValue; + } +#ENDIF LONG_MAX +#IF LONG_SUM + aggrSum += repeatedValue * size; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + // (DOUBLE_VARIANCE always includes DOUBLE_SUM and COUNT). + double doubleSum = aggrDoubleSum; + long previousCount = aggrCount; + double doubleVariance = aggrDoubleVariance; + + // Count will be at least 1, so compute variance over one repeated value. + for (int v = 0; v < size; v++) { + doubleSum += repeatedValue; + final long count = previousCount + 1; + final double doubleCount = count; + final double t = doubleCount * repeatedValue - doubleSum; + doubleVariance += (t * t) / (doubleCount * previousCount); + previousCount = count; + } + + aggrDoubleSum = doubleSum; + aggrCount = previousCount; + aggrDoubleVariance = doubleVariance; +#ELSE +#IF DOUBLE_SUM + aggrDoubleSum += repeatedValue; +#ENDIF DOUBLE_SUM +#IF COUNT + aggrCount += size; +#ENDIF COUNT +#ENDIF DOUBLE_VARIANCE + } + } + + // NOTE: No method for repeated nulls since they have no effect. + + /** + * Aggregate a whole long column which is selectedInUse and no nulls. + */ + public void aggregateLongColumnVectorSelectedNoNulls(final int startIndex, final int size, + int[] selected, LongColumnVector longColVector) { + throw new RuntimeException("Not implemented"); + } + + /** + * Aggregate a whole long column which is selectedInUse and may have nulls. + */ + public void aggregateLongColumnVectorSelectedNulls(final int startIndex, final int size, + int[] selected, LongColumnVector longColVector) { + throw new RuntimeException("Not implemented"); + } + + /** + * Aggregate a whole long column which is not selectedInUse and no nulls. + */ + public void aggregateLongColumnVectorNotSelectedNoNulls(final int startIndex, final int size, + LongColumnVector longColVector) { + + VectorizedBatchUtil.debugCheckState(size > 0); + + long[] vector = longColVector.vector; + + int i = startIndex; + if (!hasValues) { + hasValues = true; + + final long firstValue = vector[i]; + + if (size == 1) { + + // Initial aggregation value(s). +#IF LONG_MIN + aggrMin = firstValue; +#ENDIF LONG_MIN +#IF LONG_MAX + aggrMax = firstValue; +#ENDIF LONG_MAX +#IF LONG_SUM + aggrSum = firstValue; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + aggrDoubleSum = firstValue; +#ENDIF DOUBLE_SUM +#IF COUNT + aggrCount = 1; +#ENDIF COUNT +#IF DOUBLE_VARIANCE + aggrDoubleVariance = firstValue; +#ENDIF DOUBLE_VARIANCE + return; + } + + // Aggregation local variables. +#IF LONG_MIN + long min = firstValue; +#ENDIF LONG_MIN +#IF LONG_MAX + long max = firstValue; +#ENDIF LONG_MAX +#IF LONG_SUM + long sum = firstValue; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + double doubleSum = 0; + long previousCount = 1; + double doubleVariance = 0.0; +#ELSE +#IF DOUBLE_SUM + double doubleSum = firstValue; +#ENDIF DOUBLE_SUM +#ENDIF DOUBLE_VARIANCE + + final int end = i++ + size; + do { + final long value = vector[i]; + + // Aggregation evaluation. +#IF LONG_MIN + if (value < min) { + min = value; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (value > max) { + max = value; + } +#ENDIF LONG_MAX +#IF LONG_SUM + sum += value; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + doubleSum += value; + final long count = previousCount + 1; + final double doubleCount = count; + final double t = doubleCount * value - doubleSum; + doubleVariance += (t * t) / (doubleCount * previousCount); + previousCount = count; +#ELSE +#IF DOUBLE_SUM + doubleSum += value; +#ENDIF DOUBLE_SUM +#ENDIF DOUBLE_VARIANCE + + } while (++i < end); + + // Initial aggregation value(s). +#IF LONG_MIN + aggrMin = min; +#ENDIF LONG_MIN +#IF LONG_MAX + aggrMax = max; +#ENDIF LONG_MAX +#IF LONG_SUM + aggrSum = sum; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + aggrDoubleSum = doubleSum; +#ENDIF DOUBLE_SUM +#IF COUNT + aggrCount = size; +#ENDIF COUNT +#IF DOUBLE_VARIANCE + aggrDoubleVariance = doubleVariance; +#ENDIF DOUBLE_VARIANCE + + } else { + + // Already has values. + + final long firstValue = vector[i]; + if (size == 1) { + + // Aggregation evaluation. +#IF LONG_MIN + if (firstValue < aggrMin) { + aggrMin = firstValue; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (firstValue > aggrMax) { + aggrMax = firstValue; + } +#ENDIF LONG_MAX +#IF LONG_SUM + aggrSum += firstValue; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + // (DOUBLE_VARIANCE always includes DOUBLE_SUM and COUNT). + // Count will be at least 1, so compute variance over one value. + final double doubleSum = aggrDoubleSum + firstValue; + final long previousCount = aggrCount; + final long count = previousCount + 1; + final double doubleCount = count; + final double t = doubleCount * firstValue - doubleSum; + double doubleVariance = aggrDoubleVariance; + doubleVariance += (t * t) / (doubleCount * previousCount); + + aggrDoubleSum = doubleSum; + aggrCount = count; + aggrDoubleVariance = doubleVariance; +#ELSE +#IF DOUBLE_SUM + aggrDoubleSum += firstValue; +#ENDIF DOUBLE_SUM +#IF COUNT + aggrCount++; +#ENDIF COUNT +#ENDIF DOUBLE_VARIANCE + + return; + } + + // Aggregation (current) entry values and local variables. +#IF LONG_MIN + long min = aggrMin; +#ENDIF LONG_MIN +#IF LONG_MAX + long max = aggrMax; +#ENDIF LONG_MAX +#IF LONG_SUM + long sum = aggrSum; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + double doubleSum = aggrDoubleSum; + long previousCount = aggrCount; + double doubleVariance = aggrDoubleVariance; +#ELSE +#IF DOUBLE_SUM + double doubleSum = aggrDoubleSum; +#ENDIF DOUBLE_SUM +#ENDIF DOUBLE_VARIANCE + + final int end = i++ + size; + do { + final long value = vector[i]; + + // Aggregation evaluation. +#IF LONG_MIN + if (value < min) { + min = value; + } +#ENDIF LONG_MIN +#IF LONG_MAX + if (value > max) { + max = value; + } +#ENDIF LONG_MAX +#IF LONG_SUM + sum += value; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + doubleSum += value; + final long count = previousCount + 1; + final double doubleCount = count; + final double t = doubleCount * value - doubleSum; + doubleVariance += (t * t) / (doubleCount * previousCount); + previousCount = count; +#ELSE +#IF DOUBLE_SUM + doubleSum += value; +#ENDIF DOUBLE_SUM +#ENDIF DOUBLE_VARIANCE + } while (++i < end); + + // Save changed aggregation(s). +#IF LONG_MIN + aggrMin = min; +#ENDIF LONG_MIN +#IF LONG_MAX + aggrMax = max; +#ENDIF LONG_MAX +#IF LONG_SUM + aggrSum = sum; +#ENDIF LONG_SUM +#IF DOUBLE_SUM + aggrDoubleSum = doubleSum; +#ENDIF DOUBLE_SUM +#IF COUNT + aggrCount += size; +#ENDIF COUNT +#IF DOUBLE_VARIANCE + aggrDoubleVariance = doubleVariance; +#ENDIF DOUBLE_VARIANCE + } + } + + /** + * Aggregate a whole long column which is not selectedInUse and may have nulls. + */ + public void aggregateLongColumnVectorNotSelectedNulls(final int startIndex, final int size, + LongColumnVector longColVector) { + throw new RuntimeException("Not implemented"); + } + + public void reset() { + hasValues = false; +#IF LONG_MIN + aggrMin = 0; +#ENDIF LONG_MIN +#IF LONG_MAX + aggrMax = 0; +#ENDIF LONG_MAX +#IF LONG_SUM + aggrSum = 0; +#ENDIF LONG_SUM +#IF DOUBLE_VARIANCE + aggrDoubleSum = 0.0; + aggrCount = 0; + aggrDoubleVariance = 0.0; +#ELSE +#IF DOUBLE_SUM + aggrDoubleSum = 0; +#ENDIF DOUBLE_SUM +#IF COUNT + aggrCount = 0; +#ENDIF COUNT +#ENDIF DOUBLE_VARIANCE + } + + @Override + public int getAggrCount() { + return ; + } +} \ No newline at end of file diff --git ql/src/gen/vectorization/GroupByOperatorTemplates/GroupByHashLongOperator.txt ql/src/gen/vectorization/GroupByOperatorTemplates/GroupByHashLongOperator.txt new file mode 100644 index 0000000..ab80def --- /dev/null +++ ql/src/gen/vectorization/GroupByOperatorTemplates/GroupByHashLongOperator.txt @@ -0,0 +1,155 @@ +/** + * 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.exec.vector.groupby.operator.gen; + +import java.io.IOException; +import java.util.ArrayList; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; +import org.apache.hadoop.hive.ql.exec.vector.groupby.hash.onelongkey.VectorGroupByHashOneLongKeyOperatorBase; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColBase; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen.VectorGroupByAggrColHash; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorAggregationFunctionInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationColumnInfo; +import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo; +import org.apache.hive.common.util.HashCodeUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.base.Preconditions; + +/* + * Specialized class for doing a vectorized group by that is lookup on a single long using a + * specialized hash map. + */ +public final class extends VectorGroupByHashOneLongKeyOperatorBase { + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = .class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + // Non-transient members initialized by the constructor. They cannot be final due to Kryo. + + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + + //--------------------------------------------------------------------------- + // Pass-thru constructors. + // + + public () { + super(); + } + + public (CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx, vContext, conf); + } + + @Override + protected void aggregateFirstOneLongRepeatedKey(VectorizedRowBatch batch, + final long oneLongRepeatingKey, final int hashEleLongIndex, final int hashCode, + final int inputLogicalSize) { + + // Handle repeated key so do not have to special case selectedInUse and + // selected[0] for the repeated key in regular aggregation methods... + + /* + * First aggregation column. + */ + + // For the first new aggregation column, we must store the one long key in the hash element. + switch (firstHashAggregationColumnVectorType) { + case LONG: + firstHashAggregateColumn.aggrLongColVectorOneLongKeyRepeatedForFirstCol( + inputLogicalSize, + hashEleLongIndex, + oneLongRepeatingKey, + batch, + firstAggregateColumnNum); + break; + default: + // UNDONE: DOUBLE, DECIMAL, etc. + } + } + + @Override + protected void aggregateFirstOneLongKeyLogical(VectorizedRowBatch batch, + long[] keyVector, final int inputLogicalSize) { + + /* + * First aggregation column. + */ + + // For the first new aggregation column, we must store the one long key in the hash element. + switch (firstHashAggregationColumnVectorType) { + case LONG: + firstHashAggregateColumn.aggrLongColVectorOneLongKeyLogicalForFirstCol( + inputLogicalSize, + hashEleIndices, + /* oneLongKeys */ keyVector, + duplicateKeyCounts, + batch, + firstAggregateColumnNum); + break; + default: + // UNDONE: DOUBLE, DECIMAL, etc. + } + } + + @Override + protected void aggregateFirstOneLongKeyPhysical(VectorizedRowBatch batch, + long[] keyVector, final int inputLogicalSize) { + + /* + * First aggregation column. + */ + + // For the first new aggregation column, we must store the one long key in the hash element. + switch (firstHashAggregationColumnVectorType) { + case LONG: + firstHashAggregateColumn.aggrLongColVectorOneLongKeyPhysicalForFirstCol( + inputLogicalSize, + hashEleIndices, + /* oneLongKeys */ keyVector, + duplicateKeyCounts, + batch, + firstAggregateColumnNum); + break; + default: + // UNDONE: DOUBLE, DECIMAL, etc. + } + } + + @Override + public String getName() { + return CLASS_NAME; + } +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java index 9795f3e..1e91af9 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java @@ -470,6 +470,7 @@ system.registerGenericUDF("when", GenericUDFWhen.class); system.registerGenericUDF("nullif", GenericUDFNullif.class); system.registerGenericUDF("hash", GenericUDFHash.class); + system.registerGenericUDF("vector_mapjoin_slot_number", GenericUDFVectorMapJoinSlotNumber.class); system.registerGenericUDF("coalesce", GenericUDFCoalesce.class); system.registerGenericUDF("index", GenericUDFIndex.class); system.registerGenericUDF("in_file", GenericUDFInFile.class); diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorGroupByOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorGroupByOperator.java index 31f2621..49ac2ea 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorGroupByOperator.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorGroupByOperator.java @@ -61,6 +61,7 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil; /** * Vectorized GROUP BY operator implementation. Consumes the vectorized input and diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedBatchUtil.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedBatchUtil.java index 03c09e7..59944d3 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedBatchUtil.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedBatchUtil.java @@ -80,6 +80,8 @@ import org.apache.hadoop.io.Writable; import org.apache.hive.common.util.DateUtils; +import com.google.common.base.Preconditions; + public class VectorizedBatchUtil { private static final Logger LOG = LoggerFactory.getLogger(VectorizedBatchUtil.class); @@ -809,4 +811,13 @@ public static void debugDisplayBatch(VectorizedRowBatch batch, String prefix) { debugDisplayOneRow(batch, index, prefix); } } + + static int fake = 0; + + public static void debugCheckState(boolean predicate) { + if (!predicate) { + fake++; + } + Preconditions.checkState(predicate); + } } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/VectorGroupByCommon.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/VectorGroupByCommon.java new file mode 100644 index 0000000..2633708 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/VectorGroupByCommon.java @@ -0,0 +1,183 @@ +/** + * 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.exec.vector.groupby; + +import java.lang.reflect.Constructor; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.conf.HiveConf; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.Operator; +import org.apache.hadoop.hive.ql.exec.Utilities; +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector.Type; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContextRegion; +import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColBase; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen.VectorGroupByAggrColHash; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.BaseWork; +import org.apache.hadoop.hive.ql.plan.GroupByDesc; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.AggregationFunction; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationOutputInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.SingleCountAggreationKind; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorAggregationFunctionInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByDesc; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorCombineColumnAggrInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.HashTableKeyType; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationColumnInfo; +import org.apache.hadoop.hive.ql.plan.api.OperatorType; +import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.base.Preconditions; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil; + +/** + * This class is common operator class of Native Vectorized GroupBy for initialization logic. + */ +public abstract class VectorGroupByCommon extends Operator implements + VectorizationContextRegion { + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = VectorGroupByCommon.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + protected VectorGroupByDesc vectorDesc; + + protected VectorGroupByInfo vectorGroupByInfo; + + protected VectorizationContext vContext; + + /** + * Group by key vector expressions. + */ + protected VectorExpression[] groupByKeyExpressions; + + protected VectorExpression[] aggregationFunctionInputExpressions; + + protected VectorAggregationFunctionInfo[] vectorAggregationFunctionInfos; + + // Create a new outgoing vectorization context because column name map will change. + protected VectorizationContext vOutContext; + + + // This is map of which vectorized row batch columns are the key columns. + protected int[] groupByKeyColumnMap; + protected TypeInfo[] groupByKeyTypeInfos; + protected Type[] groupByKeyColumnVectorTypes; + + protected boolean hasSingleCountAggregation; + protected SingleCountAggreationKind singleCountAggreationKind; + + protected boolean keysAreAllFixedLength; + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + + // For debug tracing: the name of the map or reduce task. + protected transient String taskName; + + // Debug display. + protected transient long batchCounter; + + public VectorGroupByCommon() { + super(); + } + + public static int INT_PER_LONG_COUNT = Long.SIZE / Integer.SIZE; + + public VectorGroupByCommon(CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx); + + GroupByDesc desc = (GroupByDesc) conf; + this.conf = desc; + vectorDesc = (VectorGroupByDesc) desc.getVectorDesc(); + vectorGroupByInfo = vectorDesc.getVectorGroupByInfo(); + + VectorizedBatchUtil.debugCheckState(vectorDesc.isVectorOutput()); + + this.vContext = vContext; + + // Since a key expression can be a calculation and the key will go into a scratch column, + // we need the mapping and type information. + groupByKeyColumnMap = vectorGroupByInfo.getGroupByKeyColumnMap(); + groupByKeyTypeInfos = vectorGroupByInfo.getGroupByKeyTypeInfos(); + groupByKeyColumnVectorTypes = vectorGroupByInfo.getGroupByKeyColumnVectorTypes(); + groupByKeyExpressions = vectorGroupByInfo.getGroupByKeyExpressions(); + + aggregationFunctionInputExpressions = vectorGroupByInfo.getAggregationFunctionInputExpressions(); + + vectorAggregationFunctionInfos = vectorGroupByInfo.getVectorAggregationFunctionInfos(); + + vOutContext = new VectorizationContext(getName(), desc.getOutputColumnNames()); + + keysAreAllFixedLength = vectorGroupByInfo.getKeysAreAllFixedLength(); + + hasSingleCountAggregation = vectorGroupByInfo.getHasSingleCountAggregation(); + singleCountAggreationKind = vectorGroupByInfo.getSingleCountAggreationKind(); + } + + @Override + protected void initializeOp(Configuration hconf) throws HiveException { + super.initializeOp(hconf); + + // Determine the name of our map or reduce task for debug tracing. + BaseWork work = Utilities.getMapWork(hconf); + if (work == null) { + work = Utilities.getReduceWork(hconf); + } + taskName = work.getName(); + + // UNDONE: This needs to have sanity checks, etc. + // UNDONE: And, a lot more work. + // UNDONE: How do we obtain the amount of available memory? + long availableMemory = 1L << 22; // 4 Mb. + + float groupByMemoryUsage = HiveConf.getFloatVar(hconf, HiveConf.ConfVars.HIVEMAPAGGRHASHMEMORY); + + long usableMemory = (long) (availableMemory * groupByMemoryUsage); + + batchCounter = 0; + } + + static public String getOperatorName() { + return "GBY"; + } + + @Override + public VectorizationContext getOuputVectorizationContext() { + return vOutContext; + } + + @Override + public OperatorType getType() { + return OperatorType.GROUPBY; + } +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/VectorGroupByCommonOutput.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/VectorGroupByCommonOutput.java new file mode 100644 index 0000000..158de09 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/VectorGroupByCommonOutput.java @@ -0,0 +1,174 @@ +/** + * 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.exec.vector.groupby; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector.Type; +import org.apache.hadoop.hive.ql.exec.vector.DoubleColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.StructColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatchCtx; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen.VectorGroupByAggrColHash; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.HashTableKeyType; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.AggregationFunction; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggrAverageDoubleOutputInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationOutputInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggrPrimitiveOutputInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorAggregationFunctionInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorCombineColumnAggrInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationColumnInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.InputColVecTypeAggregation; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorHashOutputAggrInfo.VectorOutputAggrKind; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils; +import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory; +import org.apache.hadoop.hive.serde2.objectinspector.StandardStructObjectInspector; +import org.apache.hadoop.hive.serde2.objectinspector.StructField; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils.ObjectInspectorCopyOption; +import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo; +import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; +import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.base.Preconditions; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil; + +import com.sun.tools.javac.util.ArrayUtils; + +/** + * This class is common operator class of Native Vectorized GroupBy for output generation -- + * taking the aggregations and filling up the output batch. + */ +public abstract class VectorGroupByCommonOutput extends VectorGroupByCommon { + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = VectorGroupByCommonOutput.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + protected transient VectorizedRowBatch outputBatch; + + private transient VectorizedRowBatchCtx vrbCtx; + + private transient TypeInfo[] outputTypes; + + private transient StandardStructObjectInspector standardOutputObjInspector; + + //--------------------------------------------------------------------------- + // Pass-thru constructors. + // + + public VectorGroupByCommonOutput() { + super(); + } + + public VectorGroupByCommonOutput(CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx, vContext, conf); + } + + @Override + protected void initializeOp(Configuration hconf) throws HiveException { + super.initializeOp(hconf); + + List objectInspectors = new ArrayList(); + + List outputFieldNames = conf.getOutputColumnNames(); + + outputTypes = + new TypeInfo[groupByKeyTypeInfos.length + vectorAggregationFunctionInfos.length]; + int outputTypesCount = 0; + + for(int i = 0; i < groupByKeyTypeInfos.length; ++i) { + outputTypes[outputTypesCount++] = groupByKeyTypeInfos[i]; + ObjectInspector objInsp = + TypeInfoUtils.getStandardWritableObjectInspectorFromTypeInfo( + groupByKeyTypeInfos[i]); + objectInspectors.add(objInsp); + } + + for (int i = 0; i < vectorAggregationFunctionInfos.length; ++i) { + TypeInfo outputTypeInfo = vectorAggregationFunctionInfos[i].getOutputTypeInfo(); + outputTypes[outputTypesCount++] = outputTypeInfo; + ObjectInspector objInsp = + TypeInfoUtils.getStandardWritableObjectInspectorFromTypeInfo( + outputTypeInfo); + objectInspectors.add(objInsp); + } + + standardOutputObjInspector = + ObjectInspectorFactory.getStandardStructObjectInspector(outputFieldNames, objectInspectors); + outputObjInspector = standardOutputObjInspector; + + /** + * Setup the output batch. + * + * NOTE: If we cannot do vectorized output, we still use the outputBatch while + * pulling information out of the hash table. In forwardOutputBatch, we extract rows + * and forward them one by one... + */ + vrbCtx = new VectorizedRowBatchCtx(); + vrbCtx.init(standardOutputObjInspector, vOutContext.getScratchColumnTypeNames()); + outputBatch = vrbCtx.createVectorizedRowBatch(); + } + + public void forwardOutputBatch(VectorizedRowBatch outputBatch) throws HiveException { + + forward(outputBatch, null); + + outputBatch.reset(); + } + + /** + * Copy all of the keys and aggregations to the output batch. + */ + protected abstract void outputGroupBy() throws HiveException; + + /** + * On close, make sure a partially filled overflow batch gets forwarded. + */ + @Override + public void closeOp(boolean aborted) throws HiveException { + super.closeOp(aborted); + if (!aborted) { + outputGroupBy(); + if (outputBatch.size > 0) { + forwardOutputBatch(outputBatch); + } + } + LOG.debug("VectorGroupByCommonOutputOperator closeOp " + batchCounter + " batches processed"); + } +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/aggregation/VectorGroupByAggrColBase.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/aggregation/VectorGroupByAggrColBase.java new file mode 100644 index 0000000..63d0bc0 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/aggregation/VectorGroupByAggrColBase.java @@ -0,0 +1,45 @@ +/** + * 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.exec.vector.groupby.aggregation; + +/** + * This abstract class is the base for all the variation of aggregations in a column + * + */ +public abstract class VectorGroupByAggrColBase { + + protected final int inputColumnNum; + + public VectorGroupByAggrColBase(int inputColumnNum) { + this.inputColumnNum = inputColumnNum; + } + + public int getInputColumnNum() { + return inputColumnNum; + } + + /** + * Used by aggregation to know how many aggregates to skip after calling apply. + * + * @return the number of aggregates (min, max, count, sum, etc) for this variation. + */ + public abstract int getAggrCount(); + + public static long DOUBLE_ZERO_AS_LONG_BITS = Double.doubleToLongBits(0.0); +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/aggregation/VectorGroupByAggrColHashBase.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/aggregation/VectorGroupByAggrColHashBase.java new file mode 100644 index 0000000..0b10a62 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/aggregation/VectorGroupByAggrColHashBase.java @@ -0,0 +1,503 @@ +/** + * 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.exec.vector.groupby.aggregation; + +import java.lang.reflect.Constructor; + +import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen.VectorGroupByAggrColHash; +import org.apache.hadoop.hive.ql.exec.vector.groupby.hash.VectorGroupByHashTable; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationColumnInfo; +import org.apache.hive.common.util.HashCodeUtil; + +import com.google.common.base.Preconditions; + +import org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil; + +/** + * This abstract class is the base for hash variation of aggregations in multiple columns. + * + */ +public abstract class VectorGroupByAggrColHashBase extends VectorGroupByAggrColBase { + + // General header picture (starting with high bits): + // + // High or signed bit not used so we don't have to deal with long signed numbers. + // "chain index" (31 bits) + // "key assigned" (1 bit) + // + + // For one long key we limit the number of columns we aggregate so there is only one header word. + // We do not need any "is null" for the key since NULL one long key is handled specially. + // And, grouping sets is trivial for one key and doesn't need a groupingSetsId field. + // + // So, one long key is just "has value" flags below "key assigned". + // + // Limit one word or 64 bits + + protected static final int FIRST_HIGH_BIT_NUMBER = Long.SIZE - 1; // Don't use sign bit. + public static final int CHAIN_INDEX_BIT_COUNT = Integer.SIZE - 1; // Signed integer index. + public static final int CHAIN_INDEX_SHIFT_COUNT = FIRST_HIGH_BIT_NUMBER - CHAIN_INDEX_BIT_COUNT; + + protected static final int AFTER_CHAIN_INDEX_BIT_NUMBER = FIRST_HIGH_BIT_NUMBER - CHAIN_INDEX_BIT_COUNT - 1; + public static final long KEY_ASSIGNED_MASK = 1L << AFTER_CHAIN_INDEX_BIT_NUMBER; + + // One long key constants. + public static final int ONE_LONG_KEY_FIRST_HAS_VALUE_BIT_NUMBER = AFTER_CHAIN_INDEX_BIT_NUMBER - 1; + public static final int ONE_LONG_KEY_MAX_COLUMN_COUNT = ONE_LONG_KEY_FIRST_HAS_VALUE_BIT_NUMBER + 1; + + protected final int hasValueOffset; + protected final long hasValueMask; + + // Not used for one long key. Only for key count > 1. + protected final long groupingSetsIdMask; + + protected final int keyOffset; + protected final int firstAggregationOffset; + + protected final int countStarOffset; + + protected final long fixedLenAllNonNullFlagsMask; + protected final int fixedKeyLength; + + protected VectorGroupByHashTable vectorGroupByHashTable; + protected final long[] longs; + + public VectorGroupByAggrColHashBase( + int inputColumnNum, + int hasValueOffset, long hasValueMask, + long groupingSetsIdMask, + int keyOffset, int firstAggregationOffset, + int countStarOffset, + long fixedLenAllNonNullFlagsMask, int fixedKeyLength, + VectorGroupByHashTable vectorGroupByHashTable) { + super(inputColumnNum); + this.hasValueOffset = hasValueOffset; + this.hasValueMask = hasValueMask; + this.groupingSetsIdMask = groupingSetsIdMask; + this.keyOffset = keyOffset; + this.firstAggregationOffset = firstAggregationOffset; + this.countStarOffset = countStarOffset; + this.fixedLenAllNonNullFlagsMask = fixedLenAllNonNullFlagsMask; + this.fixedKeyLength = fixedKeyLength; + + this.vectorGroupByHashTable = vectorGroupByHashTable; + this.longs = vectorGroupByHashTable.getLongs(); + } + + public int getHasValueOffset() { + return hasValueOffset; + } + + public long getHasValueMask() { + return hasValueMask; + } + + public long getGroupingSetsIdMask() { + return groupingSetsIdMask; + } + + public int getFirstAggregationOffset() { + return firstAggregationOffset; + } + + public static VectorGroupByAggrColHash createHashAggregateColumn( + RuntimeHashAggregationColumnInfo runtimeHashAggregateColumn, + VectorGroupByHashTable vectorGroupByHashTable) + throws HiveException { + return createHashAggregateColumn( + runtimeHashAggregateColumn.getHashAggregateColumnClass(), + runtimeHashAggregateColumn.getInputColumnNum(), + runtimeHashAggregateColumn.getHasValueOffset(), + runtimeHashAggregateColumn.getHasValueMask(), + runtimeHashAggregateColumn.getGroupingSetsIdMask(), + runtimeHashAggregateColumn.getKeyOffset(), + runtimeHashAggregateColumn.getAggregationOffsets()[0], + vectorGroupByHashTable); + } + + public static VectorGroupByAggrColHash createHashAggregateColumn( + Class hashAggregateColumnClass, + int inputColumnNum, + int hasValueOffset, long hasValueMask, + long groupingSetsIdMask, + int keyOffset, int firstAggregationOffset, + VectorGroupByHashTable vectorGroupByHashTable) + throws HiveException { + + VectorGroupByAggrColHash hashAggregateColumn = null; + try { + + Constructor constructor = hashAggregateColumnClass.getDeclaredConstructors()[0]; + hashAggregateColumn = (VectorGroupByAggrColHash) + constructor.newInstance( + inputColumnNum, + hasValueOffset, + hasValueMask, + groupingSetsIdMask, + keyOffset, + firstAggregationOffset, + -1, // UNDONE + 0, // UNDONE + 0, // UNDONE + vectorGroupByHashTable); + + } catch (Exception e) { + throw new HiveException(e); + } + return hashAggregateColumn; + } + + //------------------------------------------------------------------------------------------------ + + protected void assignOneLongKey(final int hashEleIndex, long oneLongKey) { + VectorizedBatchUtil.debugCheckState(keyOffset == 1); + longs[hashEleIndex + 1] = oneLongKey; + } + + protected void assignFixedLenKey(final int hashEleIndex, long fixedLenNonNullFlags, + long[] fixedLenKeyBuffer, final int batchIndex) { + + // For fixed length keys, the null mask is in the first long and no more than 64 bits. + VectorizedBatchUtil.debugCheckState(keyOffset == 1); + longs[hashEleIndex] |= fixedLenNonNullFlags; + System.arraycopy( + fixedLenKeyBuffer, batchIndex * fixedKeyLength, + longs, hashEleIndex + 1, fixedKeyLength); + } + + protected void assignVarLenKey(final int hashEleIndex, long[] varLenKeyBuffer, int keyStart, + int keyLength) { + + // UNDONE: NULL flags? + System.arraycopy( + varLenKeyBuffer, keyStart, + longs, hashEleIndex + keyOffset, keyLength); + } + + //------------------------------------------------------------------------------------------------ + + protected void assignOneLongKeyGroupingSets(final int hashEleIndex, long oneLongKey, + final int groupingSetsId) { + + // Grouping Sets Id is lower bits of first long. + longs[hashEleIndex] |= groupingSetsId; + + VectorizedBatchUtil.debugCheckState(keyOffset == 1); + longs[hashEleIndex + 1] = oneLongKey; + } + + protected void assignFixedLenKeyGroupingSets(final int hashEleIndex, long fixedLenNonNullFlags, + long[] fixedLenKeyBuffer, final int batchIndex, final int groupingSetsId) { + + // Grouping Sets Id is lower bits of first long. + longs[hashEleIndex] |= groupingSetsId; + + // For fixed length keys, the null mask is in the first long and no more than 64 bits. + VectorizedBatchUtil.debugCheckState(keyOffset == 1); + longs[hashEleIndex] |= fixedLenNonNullFlags; + System.arraycopy( + fixedLenKeyBuffer, batchIndex * fixedKeyLength, + longs, hashEleIndex + 1, fixedKeyLength); + } + + protected void assignVarLenKeyGroupingSets(final int hashEleIndex, long[] varLenKeyBuffer, + int keyStart, int keyLength, final int groupingSetsId) { + + // Grouping Sets Id is lower bits of first long. + longs[hashEleIndex] |= groupingSetsId; + + System.arraycopy( + varLenKeyBuffer, keyStart, + longs, hashEleIndex + keyOffset, keyLength); + } + + //------------------------------------------------------------------------------------------------ + + protected boolean equalsOneLongKey(final int hashEleIndex, long oneLongKey) { + VectorizedBatchUtil.debugCheckState(keyOffset == 1); + return (longs[hashEleIndex + 1] == oneLongKey); + } + + protected boolean equalsFixedLenKey(final int hashEleIndex, long fixedLenNonNullFlags, + long[] fixedLenKeyBuffer, final int batchIndex) { + + VectorizedBatchUtil.debugCheckState(keyOffset == 1); + // For fixed length keys, the non-null mask is in the first long and no more than 64 bits. + return + ((longs[hashEleIndex] & fixedLenAllNonNullFlagsMask) == fixedLenNonNullFlags && + equalsLongKeyArrays( + fixedLenKeyBuffer, batchIndex * fixedKeyLength, + longs, hashEleIndex + 1, fixedKeyLength)); + } + + protected boolean equalsVarLenKey( + final int hashEleIndex, long[] varLenKeyBuffer, int keyStart, int keyLength) { + + // UNDONE: Are non-null bits stored separately???? + return + equalsLongKeyArrays( + varLenKeyBuffer, keyStart, longs, hashEleIndex + keyOffset, keyLength); + } + + //------------------------------------------------------------------------------------------------ + + // NOTE: No Grouping Sets for one long key. + + protected boolean equalsFixedLenKeyGroupingSets(final int hashEleIndex, long fixedLenNonNullFlags, + long[] fixedLenKeyBuffer, final int batchIndex, final int groupingSetsId) { + + if ((longs[hashEleIndex] & groupingSetsIdMask) != groupingSetsId) { + return false; + } + + if ((longs[hashEleIndex] & fixedLenAllNonNullFlagsMask) != fixedLenNonNullFlags) { + return false; + } + + VectorizedBatchUtil.debugCheckState(keyOffset == 1); + // For fixed length keys, the non-null mask is in the first long and no more than 64 bits. + return + equalsLongKeyArrays( + fixedLenKeyBuffer, batchIndex * fixedKeyLength, + longs, hashEleIndex + 1, fixedKeyLength); + } + + protected boolean equalsVarLenKeyGroupingSets( + final int hashEleIndex, long[] varLenKeyBuffer, int keyStart, int keyLength, + final int groupingSetsId) { + + if ((longs[hashEleIndex] & groupingSetsIdMask) != groupingSetsId) { + return false; + } + + // UNDONE: Are non-null bits stored separately???? + return + equalsLongKeyArrays( + varLenKeyBuffer, keyStart, longs, hashEleIndex + keyOffset, keyLength); + } + + //------------------------------------------------------------------------------------------------ + + protected int allocateHashElement() { + return vectorGroupByHashTable.allocateHashElement(); + } + + //------------------------------------------------------------------------------------------------ + + protected int chaseOneLongKeyChain(int hashEleIndex, long oneLongKey) { + + // Chase chain and either find the key or allocate new hash element if not found. + while (true) { + final int nextHashEleIndex = (int) (longs[hashEleIndex] >> CHAIN_INDEX_SHIFT_COUNT); + if (nextHashEleIndex == 0) { + final int newHashEleIndex = allocateHashElement(); + longs[hashEleIndex] |= (((long) newHashEleIndex) << CHAIN_INDEX_SHIFT_COUNT); + + VectorizedBatchUtil.debugCheckState(longs[newHashEleIndex] == 0); + longs[newHashEleIndex] = KEY_ASSIGNED_MASK; + + assignOneLongKey(newHashEleIndex, oneLongKey); + + return newHashEleIndex; + } + + if (equalsOneLongKey(nextHashEleIndex, oneLongKey)) { + return nextHashEleIndex; + } + hashEleIndex = nextHashEleIndex; + } + } + + protected int chaseFixedLenKeyChain(int hashEleIndex, long fixedLenNonNullFlags, + long[] fixedLenKeyBuffer, int batchIndex) { + + // Chase chain and either find the key or allocate new hash element if not found. + while (true) { + final int nextHashEleIndex = (int) (longs[hashEleIndex] >> CHAIN_INDEX_SHIFT_COUNT); + if (nextHashEleIndex == 0) { + final int newHashEleIndex = allocateHashElement(); + longs[hashEleIndex] |= (((long) newHashEleIndex) << CHAIN_INDEX_SHIFT_COUNT); + + VectorizedBatchUtil.debugCheckState(longs[newHashEleIndex] == 0); + longs[newHashEleIndex] = KEY_ASSIGNED_MASK; + + // UNDONE: flags + assignFixedLenKey(newHashEleIndex, fixedLenNonNullFlags, + fixedLenKeyBuffer, batchIndex); + + return newHashEleIndex; + } + + if (equalsFixedLenKey(nextHashEleIndex, fixedLenNonNullFlags, + fixedLenKeyBuffer, batchIndex)) { + return nextHashEleIndex; + } + hashEleIndex = nextHashEleIndex; + } + } + + protected int chaseVarLenKeyChain(int hashEleIndex, long[] varLenKeyBuffer, int keyStart, + int keyLength) { + + // Chase chain and either find the key or allocate new hash element if not found. + while (true) { + final int nextHashEleIndex = (int) (longs[hashEleIndex] >> CHAIN_INDEX_SHIFT_COUNT); + if (nextHashEleIndex == 0) { + final int newHashEleIndex = allocateHashElement(); + longs[hashEleIndex] |= (((long) newHashEleIndex) << CHAIN_INDEX_SHIFT_COUNT); + + VectorizedBatchUtil.debugCheckState(longs[newHashEleIndex] == 0); + longs[newHashEleIndex] = KEY_ASSIGNED_MASK; + + assignVarLenKey(newHashEleIndex, varLenKeyBuffer, keyStart, keyLength); + + return newHashEleIndex; + } + + // UNDONE: Are non-null bits stored separately???? + if (equalsVarLenKey(nextHashEleIndex, varLenKeyBuffer, keyStart, keyLength)) { + return nextHashEleIndex; + } + hashEleIndex = nextHashEleIndex; + } + } + + //------------------------------------------------------------------------------------------------ + + // LONG + + // NEW + + // REPEATED + + public abstract void aggrLongNewRepeatedValueForSingleKey( + final long repeatedValue, + final int firstAggregationIndex); + + public abstract void aggrLongNewRepeatedValueForDuplicateKey( + final long repeatedValue, + final int firstAggregationIndex, + final int keyDuplicateCount); + + // SINGLE KEY Aggregation + + public abstract void aggrLongNewValueForSingleKey( + long[] vector, + final int batchIndex, + final int firstAggregationIndex); + + // IS SELECTED (Logical) + + public abstract void aggrLongNewSelectedNoNullValueForDuplicateKey( + int[] selected, + long[] vector, + int logicalIndex, + final int firstAggregationIndex, + final int keyDuplicateCount); + + public abstract boolean aggrLongNewSelectedNullsValueForDuplicateKey( + int[] selected, + boolean[] isNull, + long[] vector, + int logicalIndex, + final int firstAggregationIndex, + final int keyDuplicateCount); + + // NOT SELECTED (Physical) + + public abstract void aggrLongNewNotSelectedNoNullValueForDuplicateKey( + long[] vector, + int batchIndex, + final int firstAggregationIndex, + final int keyDuplicateCount); + + public abstract boolean aggrLongNewNotSelectedNullsValueForDuplicateKey( + boolean[] isNull, + long[] vector, + int batchIndex, + final int firstAggregationIndex, + final int keyDuplicateCount); + + // EXISTING + + // REPEATED + + public abstract void aggrLongExistingRepeatedValueForSingleKey( + long repeatedValue, + final int firstAggregationIndex); + + public abstract void aggrLongExistingRepeatedValueForDuplicateKey( + long repeatedValue, + final int firstAggregationIndex, + final int keyDuplicateCount); + + // SINGLE KEY Aggregation + + public abstract void aggrLongExistingValueForSingleKey( + long[] vector, + final int batchIndex, + final int firstAggregationIndex); + + // IS SELECTED (Logical) + + public abstract void aggrLongExistingSelectedNoNullValueForDuplicateKey( + int[] selected, + long[] vector, + final int logicalIndex, + final int firstAggregationIndex, + final int keyDuplicateCount); + + public abstract void aggrLongExistingSelectedNullsValueForDuplicateKey( + int[] selected, + boolean[] isNull, + long[] vector, + int logicalIndex, + final int firstAggregationIndex, + final int keyDuplicateCount); + + // NOT SELECTED (Physical) + + public abstract void aggrLongExistingNotSelectedNoNullValueForDuplicateKey( + long[] vector, + final int batchIndex, + final int firstAggregationIndex, + final int keyDuplicateCount); + + public abstract void aggrLongExistingNotSelectedNullsValueForDuplicateKey( + boolean[] isNull, + long[] vector, + int batchIndex, + final int firstAggregationIndex, + final int keyDuplicateCount); + + protected boolean equalsLongKeyArrays( + long[] keyLongs1, int keyStart1, long[] keyLongs2, int keyStart2, int keyLength) { + // UNDONE + return false; + } + + /** + * Used by aggregation to know how many longs are used. + * + * @return the long count. + */ + public abstract int getLongCount(); +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/aggregation/VectorGroupByAggrColStreamingBase.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/aggregation/VectorGroupByAggrColStreamingBase.java new file mode 100644 index 0000000..a74dbea --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/aggregation/VectorGroupByAggrColStreamingBase.java @@ -0,0 +1,119 @@ +/** + * 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.exec.vector.groupby.aggregation; + +import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil; + +/** + * This abstract class is the base for streaming variation of aggregations in multiple columns. + * + */ +public abstract class VectorGroupByAggrColStreamingBase extends VectorGroupByAggrColBase { + + public VectorGroupByAggrColStreamingBase(int inputColumnNum) { + super(inputColumnNum); + reset(); + } + + /* + * LONG. + */ + + /** + * Aggregate a whole long column which is repeated and no nulls. + * + * @param size + * @param longColVector + * @param startIndex + * @param longs + */ + public void aggregateLongColumnVectorRepeatedNoNulls(final int startIndex, final int size, + LongColumnVector longColVector) { + throw new RuntimeException("Not implemented"); + } + + // NOTE: No method for repeated nulls since they have no effect. + + /** + * Aggregate a whole long column which is selectedInUse and no nulls. + * + * @param size + * @param longColVector + * @param startIndex + * @param longs + */ + public void aggregateLongColumnVectorSelectedNoNulls(final int startIndex, final int size, + int[] selected, LongColumnVector longColVector) { + throw new RuntimeException("Not implemented"); + } + + /** + * Aggregate a whole long column which is selectedInUse and may have nulls. + * + * @param size + * @param longColVector + * @param startIndex + * @param longs + */ + public void aggregateLongColumnVectorSelectedNulls(final int startIndex, final int size, + int[] selected, LongColumnVector longColVector) { + throw new RuntimeException("Not implemented"); + } + + /** + * Aggregate a whole long column which is not selectedInUse and no nulls. + * + * @param size + * @param longColVector + * @param startIndex + * @param longs + */ + public void aggregateLongColumnVectorNotSelectedNoNulls(final int startIndex, final int size, + LongColumnVector longColVector) { + throw new RuntimeException("Not implemented"); + } + + /** + * Aggregate a whole long column which is not selectedInUse and may have nulls. + * + * @param size + * @param longColVector + * @param startIndex + * @param longs + */ + public void aggregateLongColumnVectorNotSelectedNulls(final int startIndex, final int size, + LongColumnVector longColVector) { + throw new RuntimeException("Not implemented"); + } + + /* + * DOUBLE. + */ + + // UNDONE + + /* + * DECIMAL. + */ + + // UNDONE + + public abstract void reset(); +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashAggregation.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashAggregation.java new file mode 100644 index 0000000..ff3532e --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashAggregation.java @@ -0,0 +1,121 @@ +/** + * 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.exec.vector.groupby.hash; + +import java.util.ArrayList; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.hadoop.hive.ql.exec.vector.groupby.VectorGroupByCommonOutput; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColHashBase; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen.VectorGroupByAggrColHash; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.HashTableKeyType; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationColumnInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationElementInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationOutputInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * This class is common hash operator class of Native Vectorized GroupBy for dealing with hash + * aggregations. + */ +public abstract class VectorGroupByHashAggregation extends VectorGroupByHashTable{ + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = VectorGroupByHashAggregation.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + // Non-transient members initialized by the constructor. They cannot be final due to Kryo. + + protected RuntimeHashAggregationColumnInfo firstHashAggregateColumnInfo; + protected int firstAggregateColumnNum; + protected ColumnVector.Type firstHashAggregationColumnVectorType; + protected int aggrColumnCount; + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + protected transient VectorGroupByAggrColHash[] hashAggregateColumns; + + protected transient VectorGroupByAggrColHash firstHashAggregateColumn; + + //--------------------------------------------------------------------------- + // Pass-thru constructors. + // + + public VectorGroupByHashAggregation() { + super(); + } + + static int fake = 0; + + public VectorGroupByHashAggregation(CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx, vContext, conf); + + if (!hasSingleCountAggregation) { + if (hashAggregationColumnInfos.length == 0) { + fake++; + } + firstHashAggregateColumnInfo = hashAggregationColumnInfos[0]; + firstAggregateColumnNum = firstHashAggregateColumnInfo.getInputColumnNum(); + firstHashAggregationColumnVectorType = firstHashAggregateColumnInfo.getInputColumnVectorType(); + + aggrColumnCount = hashAggregationColumnInfos.length; + } else { + firstHashAggregateColumnInfo = null; + firstAggregateColumnNum = -1; + firstHashAggregationColumnVectorType = null; + aggrColumnCount = 0; + } + } + + @Override + protected void initializeOp(Configuration hconf) throws HiveException { + super.initializeOp(hconf); + + if (!hasSingleCountAggregation) { + // These objects must be created during initializeOp since the keep a final reference + // to the longs array. If that array needs to change size in the future, these objects would + // need to be recreated. + final int aggrColCount = hashAggregationColumnInfos.length; + hashAggregateColumns = new VectorGroupByAggrColHash[aggrColCount]; + for (int i = 0; i < aggrColCount; i++) { + hashAggregateColumns[i] = + VectorGroupByAggrColHash.createHashAggregateColumn( + hashAggregationColumnInfos[i], + this); + } + + // Aggregation objects are allocated at initializeOp time. + firstHashAggregateColumn = hashAggregateColumns[0]; + + // VectorGroupByLongCountStarHashTable optimizes by keeping single counts in hash table. + // The longs array is not used. + + } + } +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashCommon.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashCommon.java new file mode 100644 index 0000000..6346fd4 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashCommon.java @@ -0,0 +1,103 @@ +/** + * 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.exec.vector.groupby.hash; + +import java.util.ArrayList; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.hadoop.hive.ql.exec.vector.groupby.VectorGroupByCommonOutput; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen.VectorGroupByAggrColHash; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.HashTableKeyType; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationColumnInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationElementInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationOutputInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * This class is common hash operator class of Native Vectorized GroupBy for hash related + * initialization logic. + */ +public abstract class VectorGroupByHashCommon extends VectorGroupByCommonOutput { + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = VectorGroupByHashAggregation.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + + // Non-transient members initialized by the constructor. They cannot be final due to Kryo. + + protected boolean hasSingleCountAggregation; + + protected int hashEleFixedLongLength; + + protected int hashKeyOffset; + + // Information on the column aggregations we generate during constructor time for + // runtime usage. + protected RuntimeHashAggregationElementInfo hashAggregationElementInfo; + protected RuntimeHashAggregationColumnInfo[] hashAggregationColumnInfos; + protected RuntimeHashAggregationOutputInfo[] hashAggregationOutputInfos; + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + //--------------------------------------------------------------------------- + // Pass-thru constructors. + // + + public VectorGroupByHashCommon() { + super(); + } + + public VectorGroupByHashCommon(CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx, vContext, conf); + + hasSingleCountAggregation = vectorGroupByInfo.getHasSingleCountAggregation(); + + if (!vectorGroupByInfo.getHasSingleCountAggregation()) { + hashAggregationElementInfo = vectorGroupByInfo.getRuntimeHashAggregateInfo(); + hashAggregationColumnInfos = hashAggregationElementInfo.getRuntimeColumnAggregationColumns(); + hashAggregationOutputInfos = hashAggregationElementInfo.getRuntimeAggrOutputInfos(); + + hashEleFixedLongLength = hashAggregationElementInfo.getHashEleFixedLongLength(); + + hashKeyOffset = hashAggregationElementInfo.getKeyOffset(); + } else { + hashAggregationElementInfo = null; + hashAggregationColumnInfos = null; + hashAggregationOutputInfos = null; + hashEleFixedLongLength = 0; + hashKeyOffset = 0; + } + } + + @Override + protected void initializeOp(Configuration hconf) throws HiveException { + super.initializeOp(hconf); + } +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashElement.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashElement.java new file mode 100644 index 0000000..bc52180 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashElement.java @@ -0,0 +1,130 @@ +/** + * 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.exec.vector.groupby.hash; + +import java.util.Arrays; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen.VectorGroupByAggrColHash; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.HashTableKeyType; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationColumnInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * This class is common hash table entry storage operator class for Native Vectorized GroupBy + * for aggregation logic. + * + * NOTE: Only for HASH processing mode that need entry storage beyond the slot table. + * All the other modes (GLOBAL, MERGE_PARIAL, STREAMING) use the VectorGroupByAggrColStreaming* + * classes which store the current aggregation themselves. + * + */ +public abstract class VectorGroupByHashElement extends VectorGroupByHashCommon { + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = VectorGroupByHashElement.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + // Hash element storage related. + protected int startLongIndex; + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + protected transient int nextLongIndex; + + protected transient int longArraySize; + + protected transient long[] longs; + + protected transient int fixedHashEleLongIndexLimit; + + protected transient int[] hashEleIndices; + + protected int[] duplicateKeyCounts; + + /* + * The longs index into the longs array. + */ + public final class LongsIndex { + + // We use 31 bits for positive int index into arrays. + public static final int bitLength = 31; + public static final long allBitsOn = (1L << bitLength) - 1L; + public static final long bitMask = allBitsOn; + } + + //--------------------------------------------------------------------------- + // Pass-thru constructors. + // + + public VectorGroupByHashElement() { + super(); + } + + public VectorGroupByHashElement(CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx, vContext, conf); + + if (!hasSingleCountAggregation) { + startLongIndex = hashEleFixedLongLength; + } + } + + @Override + protected void initializeOp(Configuration hconf) throws HiveException { + super.initializeOp(hconf); + + if (!hasSingleCountAggregation) { + + // UNDONE + longArraySize = hashEleFixedLongLength * 100000; + fixedHashEleLongIndexLimit = longArraySize - hashEleFixedLongLength; + + longs = new long[longArraySize]; + + // Hash tables use entry 0 for the NULL key's hash element. + nextLongIndex = startLongIndex; + + hashEleIndices = new int[VectorizedRowBatch.DEFAULT_SIZE]; + + duplicateKeyCounts = new int[VectorizedRowBatch.DEFAULT_SIZE]; + } + } + + public long[] getLongs() { + return longs; + } + + protected void clearStorage() { + + Arrays.fill(longs, 0, longArraySize, 0); + + // Always start after the all NULLs entry. + nextLongIndex = startLongIndex; + } +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashOperatorBase.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashOperatorBase.java new file mode 100644 index 0000000..4b893f1 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashOperatorBase.java @@ -0,0 +1,242 @@ +/** + * 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.exec.vector.groupby.hash; + +import java.io.IOException; +import java.util.ArrayList; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColBase; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen.VectorGroupByAggrColHash; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorAggregationFunctionInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationColumnInfo; +import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo; +import org.apache.hive.common.util.HashCodeUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.base.Preconditions; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil; + +/** + * This class is common hash operator class of Native Vectorized GroupBy with common operator + * logic for checking key and hash element storage limits and the common process method logic. + */ +public abstract class VectorGroupByHashOperatorBase extends VectorGroupByHashOutput { + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = VectorGroupByHashOperatorBase.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + // Non-transient members initialized by the constructor. They cannot be final due to Kryo. + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + //--------------------------------------------------------------------------- + // Pass-thru constructors. + // + + public VectorGroupByHashOperatorBase() { + super(); + } + + public VectorGroupByHashOperatorBase(CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx, vContext, conf); + } + + @Override + protected void initializeOp(Configuration hconf) throws HiveException { + super.initializeOp(hconf); + } + + protected void checkKeyLimit(final int inputLogicalSize) + throws HiveException, IOException { + // Check the hash table key limit for doing the worst case of adding all keys outside the + // inner loop for better performance + if (keyCount + inputLogicalSize > hashKeyLimit) { + flushAndStartOver(); + if (keyCount + inputLogicalSize > hashKeyLimit) { + raise2ndHitOutOfStorage(); + } + } + } + + static int fake = 0; + + protected void doBeforeMainLoopWork(final int inputLogicalSize) + throws HiveException, IOException { + + if (hashEleIndices == null) { + fake++; + } + + // Expands our arrays? + if (inputLogicalSize > hashEleIndices.length) { + hashEleIndices = new int[inputLogicalSize]; + duplicateKeyCounts = new int[inputLogicalSize]; + } + + checkKeyLimit(inputLogicalSize); + + // UNDONE: Variable length checking need to be done before each findOrCreate* call... + + // Check fixed length hash element storage limit for adding the worst case of adding all + // new hash elements outside the inner loop for better performance. + if (nextLongIndex + inputLogicalSize * hashEleFixedLongLength >= fixedHashEleLongIndexLimit) { + flushAndStartOver(); + if (nextLongIndex + inputLogicalSize * hashEleFixedLongLength >= fixedHashEleLongIndexLimit) { + raise2ndHitOutOfStorage(); + } + } + } + + protected abstract void doMainLoop(VectorizedRowBatch batch, final int inputLogicalSize) + throws HiveException, IOException; + + @Override + public void process(Object row, int tag) throws HiveException { + + try { + VectorizedRowBatch batch = (VectorizedRowBatch) row; + + batchCounter++; + + final int inputLogicalSize = batch.size; + + if (inputLogicalSize == 0) { + // if (isLogDebugEnabled) { + LOG.debug(CLASS_NAME + " batch #" + batchCounter + " empty"); + // } + return; + } + + /* + * Perform any key expressions. Results will go into scratch columns. + */ + if (groupByKeyExpressions != null) { + for (VectorExpression ve : groupByKeyExpressions) { + ve.evaluate(batch); + } + } + + doBeforeMainLoopWork(inputLogicalSize); + + doMainLoop(batch, inputLogicalSize); + + } catch (Exception e) { + throw new HiveException(e); + } + } + + protected void aggregateRepeatedKeyRemaining(VectorizedRowBatch batch, + final int hashEleLongIndex, final int inputLogicalSize) { + + // For the rest of the aggregation columns, just do aggregation. + for (int i = 1; i < aggrColumnCount; i++) { + RuntimeHashAggregationColumnInfo runtimeHashAggregateColumn = hashAggregationColumnInfos[i]; + VectorGroupByAggrColHash hashAggregateColumn = hashAggregateColumns[i]; + + switch (runtimeHashAggregateColumn.getInputColumnVectorType()) { + case LONG: + hashAggregateColumn.aggrLongColVectorAnyKeyRepeated( + inputLogicalSize, + hashEleLongIndex, + batch, + runtimeHashAggregateColumn.getInputColumnNum()); + break; + default: + // UNDONE: DOUBLE, DECIMAL, etc. + } + } + } + + protected void aggregateLogicalRemaining(VectorizedRowBatch batch, + final int inputLogicalSize) { + + // For the rest of the aggregation columns, just do aggregation. + for (int i = 1; i < aggrColumnCount; i++) { + RuntimeHashAggregationColumnInfo runtimeHashAggregateColumn = hashAggregationColumnInfos[i]; + VectorGroupByAggrColHash hashAggregateColumn = hashAggregateColumns[i]; + + switch (runtimeHashAggregateColumn.getInputColumnVectorType()) { + case LONG: + hashAggregateColumn.aggrLongColVectorAnyKeyLogical( + inputLogicalSize, + hashEleIndices, + duplicateKeyCounts, + batch, + runtimeHashAggregateColumn.getInputColumnNum()); + break; + default: + // UNDONE: DOUBLE, DECIMAL, etc. + } + } + } + + protected void aggregatePhysicalRemaining(VectorizedRowBatch batch, + final int inputLogicalSize) { + + // For the rest of the aggregation columns, just do aggregation. + for (int i = 1; i < aggrColumnCount; i++) { + RuntimeHashAggregationColumnInfo runtimeHashAggregateColumn = hashAggregationColumnInfos[i]; + VectorGroupByAggrColHash hashAggregateColumn = hashAggregateColumns[i]; + + switch (runtimeHashAggregateColumn.getInputColumnVectorType()) { + case LONG: + hashAggregateColumn.aggrLongColVectorAnyKeyPhysical( + inputLogicalSize, + hashEleIndices, + duplicateKeyCounts, + batch, + runtimeHashAggregateColumn.getInputColumnNum()); + break; + default: + // UNDONE: DOUBLE, DECIMAL, etc. + } + } + } + + protected void raise2ndHitOutOfStorage() throws HiveException { + throw new HiveException("After flushing hash table, there still isn't enough storage?"); + } + + protected void flushAndStartOver() throws HiveException, IOException { + + outputGroupByAndClearAll(); + } + + /** + * Flush all of the keys and aggregations to the output. + */ + @Override + protected void outputGroupBy() throws HiveException { + outputGroupByOneLongKeyFixedLenHashEle(); + } +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashOutput.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashOutput.java new file mode 100644 index 0000000..6661d7b --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashOutput.java @@ -0,0 +1,327 @@ +/** + * 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.exec.vector.groupby.hash; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector.Type; +import org.apache.hadoop.hive.ql.exec.vector.DoubleColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.StructColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatchCtx; +import org.apache.hadoop.hive.ql.exec.vector.groupby.VectorGroupByCommonOutput; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColHashBase; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen.VectorGroupByAggrColHash; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.HashTableKeyType; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.AggregationFunction; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggrAverageDoubleOutputInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggrVarianceOutputInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationOutputInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggrPrimitiveOutputInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorAggregationFunctionInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorCombineColumnAggrInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationColumnInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.InputColVecTypeAggregation; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorHashOutputAggrInfo.VectorOutputAggrKind; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils; +import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory; +import org.apache.hadoop.hive.serde2.objectinspector.StandardStructObjectInspector; +import org.apache.hadoop.hive.serde2.objectinspector.StructField; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils.ObjectInspectorCopyOption; +import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo; +import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; +import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.base.Preconditions; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil; + +import com.sun.tools.javac.util.ArrayUtils; + +/** + * This class is common hash operator class of Native Vectorized GroupBy for output generation -- + * taking the hash eleemnt aggregations and filling up the output batch. + */ +public abstract class VectorGroupByHashOutput extends VectorGroupByHashAggregation { + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = VectorGroupByCommonOutput.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + + //--------------------------------------------------------------------------- + // Pass-thru constructors. + // + + public VectorGroupByHashOutput() { + super(); + } + + public VectorGroupByHashOutput(CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx, vContext, conf); + } + + /** + * + * @param firstHashEleLongIndex + * @param startBatchIndex + * @param count + * @param longs + * @param fixedEntryLength + */ + public void outputFixedHashEleLenAggregations(final int firstHashEleLongIndex, final int startBatchIndex, + final int count, long[] longs) { + + // System.out.println("*DEBUG* outputFixedHashEleLenAggregations firstHashEleLongIndex " + firstHashEleLongIndex + // + " startBatchIndex " + startBatchIndex + " count " + count); + + final int keyCount = groupByKeyColumnMap.length; + final int aggrOutputCount = hashAggregationOutputInfos.length; + for (int funcNum = 0; funcNum < aggrOutputCount; funcNum++) { + final RuntimeHashAggregationOutputInfo hashAggrOutputInfo = hashAggregationOutputInfos[funcNum]; + + // Aggregation outputs follow keys. + final int outputColumnNum = keyCount + funcNum; + + // Running index of "has value" word in hash element. + int hasValueIndex = firstHashEleLongIndex + hashAggrOutputInfo.getHasValueOffset(); + + // The "has value" mask for this column. + final long hasValueMask = hashAggrOutputInfo.getHasValueMask(); + + System.out.println("*DEBUG* outputFixedHashEleLenAggregations hashAggrOutputInfo.getHasValueOffset() " + hashAggrOutputInfo.getHasValueOffset() + + " hasValueMask " + hasValueMask + " hashEleFixedLongLength " + hashEleFixedLongLength); + + VectorOutputAggrKind vectorOutputAggrKind = hashAggrOutputInfo.getOutputAggrKind(); + switch (vectorOutputAggrKind) { + case PRIMITIVE: + { + RuntimeHashAggrPrimitiveOutputInfo primitiveRuntimeAggrOutputInfo = + (RuntimeHashAggrPrimitiveOutputInfo) hashAggrOutputInfo; + final int primitiveAggregationOffset = primitiveRuntimeAggrOutputInfo.getPrimitiveAggregationOffset(); + + ColumnVector.Type primitiveColVecType = primitiveRuntimeAggrOutputInfo.getOutputColumnVectorType(); + switch (primitiveColVecType) { + case LONG: + { + LongColumnVector longColVector = + (LongColumnVector) outputBatch.cols[outputColumnNum]; + long[] vector = longColVector.vector; + + int aggregationIndex = firstHashEleLongIndex + primitiveAggregationOffset; + for (int i = startBatchIndex; i < startBatchIndex + count; i++) { + + // System.out.println("*DEBUG* outputFixedHashEleLenAggregations batchIndex " + i + // + " hasValueIndex " + hasValueIndex + // + " hasValue " + ((longs[hasValueIndex] & hasValueMask) == 0) + + // " value " + (((longs[hasValueIndex] & hasValueMask) == 0) ? "NULL" : longs[aggregationIndex])); + + if ((longs[hasValueIndex] & hasValueMask) == 0) { + longColVector.isNull[i] = true; + longColVector.noNulls = false; + } else { + longColVector.isNull[i] = false; + vector[i] = longs[aggregationIndex]; + } + hasValueIndex += hashEleFixedLongLength; + aggregationIndex += hashEleFixedLongLength; + } + } + break; + case DOUBLE: + { + DoubleColumnVector doubleColVector = + (DoubleColumnVector) outputBatch.cols[outputColumnNum]; + double[] vector = doubleColVector.vector; + + int aggregationIndex = firstHashEleLongIndex + primitiveAggregationOffset; + for (int i = startBatchIndex; i < startBatchIndex + count; i++) { + if ((longs[hasValueIndex] & hasValueMask) == 0) { + doubleColVector.isNull[i] = true; + doubleColVector.noNulls = false; + } else { + doubleColVector.isNull[i] = false; + vector[i] = Double.longBitsToDouble(longs[aggregationIndex]); + } + hasValueIndex += hashEleFixedLongLength; + aggregationIndex += hashEleFixedLongLength; + } + } + break; + default: + throw new RuntimeException("Unexpected primitive column vector type " + primitiveColVecType); + } + } + break; + case AVERAGE_DOUBLE: + { + RuntimeHashAggrAverageDoubleOutputInfo averageDoubleHashAggrOutputInfo = + (RuntimeHashAggrAverageDoubleOutputInfo) hashAggrOutputInfo; + final int countAggregationOffset = averageDoubleHashAggrOutputInfo.getCountAggregationOffset(); + final int sumAggregationOffset = averageDoubleHashAggrOutputInfo.getSumAggregationOffset(); + + StructColumnVector avgDoublePartialStructColVector = + (StructColumnVector) outputBatch.cols[outputColumnNum]; + + // UNDONE: "Lookup" count and sum fieldNums? Store them in info class. + ColumnVector[] fields = avgDoublePartialStructColVector.fields; + LongColumnVector countLongColVector = (LongColumnVector) fields[0]; + long[] countVector = countLongColVector.vector; + DoubleColumnVector sumLongColVector = (DoubleColumnVector) fields[1]; + double[] sumVector = sumLongColVector.vector; + + int countAggreagtionIndex = firstHashEleLongIndex + countAggregationOffset; + int sumAggreagtionIndex = firstHashEleLongIndex + sumAggregationOffset; + for (int i = startBatchIndex; i < startBatchIndex + count; i++) { + if ((longs[hasValueIndex] & hasValueMask) == 0) { + avgDoublePartialStructColVector.isNull[i] = true; + avgDoublePartialStructColVector.noNulls = false; + } else { + avgDoublePartialStructColVector.isNull[i] = false; + countVector[i] = longs[countAggreagtionIndex]; + sumVector[i] = Double.longBitsToDouble(longs[sumAggreagtionIndex]); + } + hasValueIndex += hashEleFixedLongLength; + countAggreagtionIndex += hashEleFixedLongLength; + sumAggreagtionIndex += hashEleFixedLongLength; + } + } + break; + case VARIANCE: + { + RuntimeHashAggrVarianceOutputInfo varianceHashAggrOutputInfo = + (RuntimeHashAggrVarianceOutputInfo) hashAggrOutputInfo; + final int countAggregationOffset = varianceHashAggrOutputInfo.getCountAggregationOffset(); + final int sumAggregationOffset = varianceHashAggrOutputInfo.getSumAggregationOffset(); + final int varianceAggregationOffset = varianceHashAggrOutputInfo.getVarianceAggregationOffset(); + + StructColumnVector variancePartialStructColVector = + (StructColumnVector) outputBatch.cols[outputColumnNum]; + + // UNDONE: "Lookup" count and sum fieldNums? Store them in info class. + ColumnVector[] fields = variancePartialStructColVector.fields; + LongColumnVector countLongColVector = (LongColumnVector) fields[0]; + long[] countVector = countLongColVector.vector; + DoubleColumnVector sumLongColVector = (DoubleColumnVector) fields[1]; + double[] sumVector = sumLongColVector.vector; + DoubleColumnVector varianceLongColVector = (DoubleColumnVector) fields[2]; + double[] varianceVector = varianceLongColVector.vector; + + int countAggreagtionIndex = firstHashEleLongIndex + countAggregationOffset; + int sumAggreagtionIndex = firstHashEleLongIndex + sumAggregationOffset; + int varianceAggreagtionIndex = firstHashEleLongIndex + varianceAggregationOffset; + for (int i = startBatchIndex; i < startBatchIndex + count; i++) { + if ((longs[hasValueIndex] & hasValueMask) == 0) { + variancePartialStructColVector.isNull[i] = true; + variancePartialStructColVector.noNulls = false; + } else { + variancePartialStructColVector.isNull[i] = false; + countVector[i] = longs[countAggreagtionIndex]; + sumVector[i] = Double.longBitsToDouble(longs[sumAggreagtionIndex]); + varianceVector[i] = Double.longBitsToDouble(longs[varianceAggreagtionIndex]); + } + hasValueIndex += hashEleFixedLongLength; + countAggreagtionIndex += hashEleFixedLongLength; + sumAggreagtionIndex += hashEleFixedLongLength; + varianceAggreagtionIndex += hashEleFixedLongLength; + } + } + break; + default: + throw new RuntimeException("Unexpected vector output aggregation kind " + vectorOutputAggrKind); + } + } + } + + /** + * Flush all of the long keys and aggregations to the output. + */ + protected void outputGroupByOneLongKeyFixedLenHashEle() throws HiveException { + + // Keys come first in the output. + LongColumnVector longKeyColumnVector = (LongColumnVector) outputBatch.cols[0]; + + // Handle NULL key separately. + if ((longs[0] & VectorGroupByAggrColHashBase.KEY_ASSIGNED_MASK) != 0) { + if (outputBatch.size == outputBatch.DEFAULT_SIZE) { + forwardOutputBatch(outputBatch); + } + longKeyColumnVector.noNulls = false; + longKeyColumnVector.isNull[outputBatch.size] = true; + + outputFixedHashEleLenAggregations(/* firstHashEleLongIndex */ 0, outputBatch.size++, 1, longs); + } + + // Loop over the arrays. + long[] keyVector = longKeyColumnVector.vector; + + // Determine the in-use count for current array (after the NULL entry). + int currentCount = (nextLongIndex - startLongIndex) / hashEleFixedLongLength; + + int longsIndex = startLongIndex; + + while (currentCount > 0) { + if (outputBatch.size == outputBatch.DEFAULT_SIZE) { + forwardOutputBatch(outputBatch); + } + int startBatchIndex = outputBatch.size; + int count = Math.min(currentCount, outputBatch.DEFAULT_SIZE - startBatchIndex); + + // Race down the longs array and pull long key out of each entry and store into + // the output batch. Since this is a single key, we know there are no null keys. + int keyLongIndex = longsIndex + hashKeyOffset;; + for (int i = startBatchIndex; i < startBatchIndex + count; i++) { + + // System.out.println("*DEBUG* batchIndex " + i + " keyLongIndex " + keyLongIndex + " key " + longs[keyLongIndex]); + + keyVector[i] = longs[keyLongIndex]; + keyLongIndex += hashEleFixedLongLength; + } + + outputFixedHashEleLenAggregations(longsIndex, startBatchIndex, count, longs); + longsIndex = keyLongIndex - hashKeyOffset; + + outputBatch.size += count; + currentCount -= count; + } + + if (outputBatch.size > 0) { + forwardOutputBatch(outputBatch); + } + } +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashTable.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashTable.java new file mode 100644 index 0000000..be58838 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/VectorGroupByHashTable.java @@ -0,0 +1,152 @@ +/** + * 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.exec.vector.groupby.hash; + +import java.io.IOException; +import java.util.Arrays; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.base.Preconditions; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil; + +/** + * This class is common hash operator class of Native Vectorized GroupBy for the hash tables. + */ +public abstract class VectorGroupByHashTable extends VectorGroupByHashElement { + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = VectorGroupByHashTable.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + // The maximum number of keys we'll keep in the hash table before flushing. + protected transient int hashKeyLimit; + + // The logical size and power of 2 mask of the hash table + protected transient int logicalHashBucketCount; + protected transient int logicalHashBucketMask; + + //--------------------------------------------------------------------------- + // Pass-thru constructors. + // + + public VectorGroupByHashTable() { + super(); + } + + public VectorGroupByHashTable(CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx, vContext, conf); + } + + @Override + protected void initializeOp(Configuration hconf) throws HiveException { + super.initializeOp(hconf); + + // UNDONE: Missing sanity checks and limiting to int range. + hashKeyLimit = 16 * 1024; + + // UNDONE: What factor here? + int rawHashBucketCount = 1024 * 1024; + + // Must be a power of 2 so the mask works. + logicalHashBucketCount = 1 << (Long.SIZE - Long.numberOfLeadingZeros(rawHashBucketCount)); + logicalHashBucketMask = logicalHashBucketCount - 1; + + } + + // UNDONE: ??? + protected static int ENTRY_SIZE = 1; + + // For fixed length hash elements. + public int findOrCreate(int intHashCode) { + + VectorizedBatchUtil.debugCheckState(logicalHashBucketMask != 0); + + final int slot = (intHashCode & logicalHashBucketMask); + final int hashEleLongIndex = (int) slotMultiples[slot]; + if (hashEleLongIndex != 0) { + return hashEleLongIndex; + } + + final int result = allocateHashElement(); + + slotMultiples[slot] = result; + + return result; + } + + public int allocateHashElement() { + final int result = nextLongIndex; + nextLongIndex += hashEleFixedLongLength; + + keyCount++; + + return result; + } + + protected void clearHashTable() { + Arrays.fill(slotMultiples, 0, slotPhysicalArraySize, 0); + keyCount = 0; + largestNumberOfSteps = 0; + metricPutConflict = 0; + } + + public void outputGroupByAndClearAll() throws HiveException, IOException { + + outputGroupBy(); + + clearHashTable(); + + clearStorage(); + } + + /* + * The hash table slots. For a long key hash table, each slot is 2 longs and the array is + * 2X sized. + * + * The slot pair is 1) a non-zero storage word to the first value bytes and + * 2) the long value or hash code. + */ + protected int slotPhysicalArraySize; + protected long[] slotMultiples; + + protected int keyCount; + protected int largestNumberOfSteps; + protected int metricPutConflict; + + protected void allocateBucketArray(int multiplier) { + slotPhysicalArraySize = multiplier * logicalHashBucketCount; + slotMultiples = new long[slotPhysicalArraySize]; + + keyCount = 0; + largestNumberOfSteps = 0; + metricPutConflict = 0; + } +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyCountColumnOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyCountColumnOperator.java new file mode 100644 index 0000000..6d67a79 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyCountColumnOperator.java @@ -0,0 +1,770 @@ +/** + * 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.exec.vector.groupby.hash.onelongkey; + +import java.io.IOException; +import java.util.ArrayList; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColHashBase; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorAggregationFunctionInfo; +import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo; +import org.apache.hive.common.util.HashCodeUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/* + * Specialized class for doing a vectorized COUNT(*) only group by that is lookup on a single long + * using a specialized hash map. + * + Count Column: + + Does COUNT(column) for NULL key count? Yes. + As we walk through duplicate keys with {logical|batch}Index, count non-Null column fields. + So, under {LOGICAL|PHYSICAL} X {NO NULLS|NULLS} we have more: 3X + When Non-Key Column NO NULLS use duplicateKeyCount. This includes isRepeating. + Else, if Non-Key Column isRepeating AND !noNulls, the count always 0 + Else, we have to check Non-Key Column isNull and count non-nulls. + + A key will get created when there are no non-NULL column values. Count starts at 0. + + findOrCreateLongZeroCountKey( + key, + longKeySeries.currentHashCode, + nonNullCount); + + */ +public class VectorGroupByHashOneLongKeyCountColumnOperator extends VectorGroupByHashOneLongKeyZeroCountTable { + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = VectorGroupByHashOneLongKeyCountStarOperator.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + // Non-transient members initialized by the constructor. They cannot be final due to Kryo. + + protected int singleKeyColumnNum; + protected int countColumnNum; + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + private transient boolean haveNullKey; + private transient int nullKeyCount; + + //--------------------------------------------------------------------------- + // Pass-thru constructors. + // + + public VectorGroupByHashOneLongKeyCountColumnOperator() { + super(); + } + + public VectorGroupByHashOneLongKeyCountColumnOperator(CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx, vContext, conf); + + singleKeyColumnNum = groupByKeyColumnMap[0]; + + countColumnNum = vectorAggregationFunctionInfos[0].getInputColumnNum(); + } + + @Override + protected void initializeOp(Configuration hconf) throws HiveException { + super.initializeOp(hconf); + + haveNullKey = false; + nullKeyCount = 0; + } + + @Override + public void outputGroupByAndClearAll() throws HiveException { + + outputGroupBy(); + if (outputBatch.size > 0) { + forwardOutputBatch(outputBatch); + } + clearHashTable(); + + // No storage to clear! + } + + @Override + protected void doBeforeMainLoopWork(final int inputLogicalSize) + throws HiveException, IOException { + checkKeyLimit(inputLogicalSize); + } + + @Override + protected void doMainLoop(VectorizedRowBatch batch, final int inputLogicalSize) + throws HiveException, IOException { + + int[] selected = batch.selected; + + LongColumnVector keyLongColVector = (LongColumnVector) batch.cols[singleKeyColumnNum]; + long[] keyVector = keyLongColVector.vector; + + ColumnVector nonKeyColVector = batch.cols[countColumnNum]; + boolean[] nonKeyIsNull = nonKeyColVector.isNull; + + // When key is repeated we want to short-circuit and finish quickly so we don't have to + // have special repeated key logic later. + if (keyLongColVector.isRepeating) { + + int nonKeyNonNullCount; + if (nonKeyColVector.noNulls) { + + // NOTE: This can include nonKeyColVector.isRepeating. + // Non-Key: [REPEATING,] NO NULLS + nonKeyNonNullCount = inputLogicalSize; + + } else if (nonKeyColVector.isRepeating) { + + // Non-Key: REPEATING, NULLS (implicitly) + nonKeyNonNullCount = 0; + + } else { + + // Non-Key: NOT REPEATING, NULLS. + nonKeyNonNullCount = 0; + if (batch.selectedInUse) { + for (int logicalIndex = 1; logicalIndex < inputLogicalSize; logicalIndex++) { + final int batchIndex = selected[logicalIndex]; + if (nonKeyIsNull[batchIndex]) { + nonKeyNonNullCount++; + } + } + } else { + for (int batchIndex = 1; batchIndex < inputLogicalSize; batchIndex++) { + if (nonKeyIsNull[batchIndex]) { + nonKeyNonNullCount++; + } + } + } + } + + if (!keyLongColVector.noNulls) { + + // All NULL key. Since we are counting a non-Key column, we must count. + haveNullKey = true; + nullKeyCount += nonKeyNonNullCount; + } else { + final long repeatingKey = keyVector[0]; + findOrCreateLongZeroCountKey( + repeatingKey, + HashCodeUtil.calculateLongHashCode(repeatingKey), + nonKeyNonNullCount); + } + return; + } + + if (batch.selectedInUse) { + + // Map logical to (physical) batch index. + + if (keyLongColVector.noNulls) { + + // LOGICAL, Key: NO NULLS. + + if (nonKeyColVector.noNulls) { + + // NOTE: This can include nonKeyColVector.isRepeating. + // Non-Key: [REPEATING,] NO NULLS + + long currLongKey = keyVector[selected[0]]; + int duplicateKeyCount = 1; + + for (int logicalIndex = 1; logicalIndex < inputLogicalSize; logicalIndex++) { + final long nextLongKey = keyVector[selected[logicalIndex]]; + if (currLongKey == nextLongKey) { + + duplicateKeyCount++; + } else { + + // Current key ended. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New current key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } + } + // Handle last key. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + } else if (nonKeyColVector.isRepeating) { + + // Non-Key: REPEATING, NULLS (implicitly) + + // This loop basically does any needed key creation since the non-key count is 0 because + // repeating non-key NULL. + + long currLongKey = keyVector[selected[0]]; + + for (int logicalIndex = 1; logicalIndex < inputLogicalSize; logicalIndex++) { + final long nextLongKey = keyVector[selected[logicalIndex]]; + if (currLongKey == nextLongKey) { + + // No counting. + } else { + + // Current key ended. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + 0); + + // New current key. + currLongKey = nextLongKey; + } + } + // Handle last key. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + 0); + } else { + + // Non-Key: NOT REPEATING, NULLS. + + int batchIndex = selected[0]; + long currLongKey = keyVector[batchIndex]; + int currNonNullCount = (nonKeyIsNull[batchIndex] ? 0 : 1); + + for (int logicalIndex = 1; logicalIndex < inputLogicalSize; logicalIndex++) { + batchIndex = selected[logicalIndex]; + final long nextLongKey = keyVector[batchIndex]; + if (currLongKey == nextLongKey) { + + currNonNullCount += (nonKeyIsNull[batchIndex] ? 0 : 1); + } else { + + // Current key ended. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + currNonNullCount); + + // New current key. + currLongKey = nextLongKey; + currNonNullCount = (nonKeyIsNull[batchIndex] ? 0 : 1); + } + } + // Handle last key. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + currNonNullCount); + } + + } else { + + // LOGICAL, Key: NULLS. + + boolean[] keyIsNull = keyLongColVector.isNull; + + if (nonKeyColVector.noNulls) { + + // NOTE: This can include nonKeyColVector.isRepeating. + // Non-Key: [REPEATING,] NO NULLS + + boolean currKeyIsNull; + long currLongKey; + final int firstBatchIndex = selected[0]; + if (keyIsNull[firstBatchIndex]) { + currKeyIsNull = true; + currLongKey = 0; + } else { + currKeyIsNull = false; + currLongKey = keyVector[firstBatchIndex]; + } + int duplicateKeyCount = 1; + + for (int logicalIndex = 1; logicalIndex < inputLogicalSize; logicalIndex++) { + final int batchIndex = selected[logicalIndex]; + + if (keyIsNull[batchIndex]) { + + if (currKeyIsNull) { + + duplicateKeyCount++; + } else { + + // Current non-NULL key ended. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New NULL key. + currKeyIsNull = true; + duplicateKeyCount = 1; + } + + } else { + final long nextLongKey = keyVector[batchIndex]; + if (currKeyIsNull) { + + // Current NULL key ended. + currKeyIsNull = false; + + haveNullKey = true; + nullKeyCount += duplicateKeyCount; + + // New non-NULL key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } else if (currLongKey == nextLongKey) { + + duplicateKeyCount++; + } else { + + // Current non-NULL key ended. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New non-NULL key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } + } + } + // Handle last key. + if (currKeyIsNull) { + haveNullKey = true; + nullKeyCount += duplicateKeyCount; + } else { + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + } + } else if (nonKeyColVector.isRepeating) { + + // Non-Key: REPEATING, NULLS (implicitly) + + // This loop basically does any needed key creation since the non-key count is 0 because + // repeating non-key NULL. + + boolean currKeyIsNull; + long currLongKey; + final int firstBatchIndex = selected[0]; + if (keyIsNull[firstBatchIndex]) { + currKeyIsNull = true; + currLongKey = 0; + } else { + currKeyIsNull = false; + currLongKey = keyVector[firstBatchIndex]; + } + + for (int logicalIndex = 1; logicalIndex < inputLogicalSize; logicalIndex++) { + final int batchIndex = selected[logicalIndex]; + + if (keyIsNull[batchIndex]) { + + if (currKeyIsNull) { + + // No counting. + } else { + + // Current non-NULL key ended. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + 0); + + // New NULL key. + currKeyIsNull = true; + } + + } else { + final long nextLongKey = keyVector[batchIndex]; + if (currKeyIsNull) { + + // Current NULL key ended. + currKeyIsNull = false; + + haveNullKey = true; + + // New non-NULL key. + currLongKey = nextLongKey; + } else if (currLongKey == nextLongKey) { + + // No counting + } else { + + // Current non-NULL key ended. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + 0); + + // New non-NULL key. + currLongKey = nextLongKey; + } + } + } + // Handle last key. + if (currKeyIsNull) { + haveNullKey = true; + } else { + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + 0); + } + } else { + + // Non-Key: NOT REPEATING, NULLS. + + boolean currKeyIsNull; + long currLongKey; + final int firstBatchIndex = selected[0]; + if (keyIsNull[firstBatchIndex]) { + currKeyIsNull = true; + currLongKey = 0; + } else { + currKeyIsNull = false; + currLongKey = keyVector[firstBatchIndex]; + } + int currNonNullCount = (nonKeyIsNull[firstBatchIndex] ? 0 : 1); + + for (int logicalIndex = 1; logicalIndex < inputLogicalSize; logicalIndex++) { + final int batchIndex = selected[logicalIndex]; + + if (keyIsNull[batchIndex]) { + + if (currKeyIsNull) { + + currNonNullCount += (nonKeyIsNull[batchIndex] ? 0 : 1); + } else { + + // Current non-NULL key ended. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + currNonNullCount); + + // New NULL key. + currKeyIsNull = true; + currNonNullCount = (nonKeyIsNull[batchIndex] ? 0 : 1); + } + + } else { + final long nextLongKey = keyVector[batchIndex]; + if (currKeyIsNull) { + + // Current NULL key ended. + currKeyIsNull = false; + + haveNullKey = true; + nullKeyCount += currNonNullCount; + + // New non-NULL key. + currLongKey = nextLongKey; + currNonNullCount = (nonKeyIsNull[batchIndex] ? 0 : 1); + } else if (currLongKey == nextLongKey) { + + currNonNullCount += (nonKeyIsNull[batchIndex] ? 0 : 1); + } else { + + // Current non-NULL key ended. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + currNonNullCount); + + // New non-NULL key. + currLongKey = nextLongKey; + currNonNullCount = (nonKeyIsNull[batchIndex] ? 0 : 1); + } + } + } + // Handle last key. + if (currKeyIsNull) { + haveNullKey = true; + nullKeyCount += currNonNullCount; + } else { + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + currNonNullCount); + } + } + } + + } else { + + // NOT selectedInUse. Logical index is the (physical) batch index. + + if (keyLongColVector.noNulls) { + + // PHYSICAL, NO NULLS. + + if (nonKeyColVector.noNulls) { + + // NOTE: This can include nonKeyColVector.isRepeating. + // Non-Key: [REPEATING,] NO NULLS + + long currLongKey = keyVector[selected[0]]; + int duplicateKeyCount = 1; + + for (int batchIndex = 1; batchIndex < inputLogicalSize; batchIndex++) { + final long nextLongKey = keyVector[batchIndex]; + if (currLongKey == nextLongKey) { + + duplicateKeyCount++; + } else { + + // Current key ended. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New current key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } + } + // Handle last key. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + } else if (nonKeyColVector.isRepeating) { + + // Non-Key: REPEATING, NULLS (implicitly) + + // This loop basically does any needed key creation since the non-key count is 0 because + // repeating non-key NULL. + + long currLongKey = keyVector[selected[0]]; + + for (int batchIndex = 1; batchIndex < inputLogicalSize; batchIndex++) { + final long nextLongKey = keyVector[batchIndex]; + if (currLongKey == nextLongKey) { + + // No counting. + } else { + + // Current key ended. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + 0); + + // New current key. + currLongKey = nextLongKey; + } + } + // Handle last key. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + 0); + } else { + + // Non-Key: NOT REPEATING, NULLS. + + long currLongKey = keyVector[0]; + int currNonNullCount = (nonKeyIsNull[0] ? 0 : 1); + + for (int batchIndex = 1; batchIndex < inputLogicalSize; batchIndex++) { + final long nextLongKey = keyVector[batchIndex]; + if (currLongKey == nextLongKey) { + + currNonNullCount += (nonKeyIsNull[batchIndex] ? 0 : 1); + } else { + + // Current key ended. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + currNonNullCount); + + // New current key. + currLongKey = nextLongKey; + currNonNullCount = (nonKeyIsNull[batchIndex] ? 0 : 1); + } + } + // Handle last key. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + currNonNullCount); + } + + } else { + + // PHYSICAL, Key: NULLS. + + boolean[] keyIsNull = keyLongColVector.isNull; + + boolean currKeyIsNull; + long currLongKey; + if (keyIsNull[0]) { + currKeyIsNull = true; + currLongKey = 0; + } else { + currKeyIsNull = false; + currLongKey = keyVector[0]; + } + int currNonNullCount = (nonKeyIsNull[0] ? 0 : 1); + + for (int batchIndex = 1; batchIndex < inputLogicalSize; batchIndex++) { + + if (keyIsNull[batchIndex]) { + + if (currKeyIsNull) { + + currNonNullCount += (nonKeyIsNull[batchIndex] ? 0 : 1); + } else { + + // Current non-NULL key ended. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + currNonNullCount); + + // New NULL key. + currKeyIsNull = true; + currNonNullCount = (nonKeyIsNull[batchIndex] ? 0 : 1); + } + + } else { + final long nextLongKey = keyVector[batchIndex]; + if (currKeyIsNull) { + + // Current NULL key ended. + currKeyIsNull = false; + + haveNullKey = true; + nullKeyCount += currNonNullCount; + + // New non-NULL key. + currLongKey = nextLongKey; + currNonNullCount = (nonKeyIsNull[batchIndex] ? 0 : 1); + } else if (currLongKey == nextLongKey) { + + currNonNullCount += (nonKeyIsNull[batchIndex] ? 0 : 1); + } else { + + // Current non-NULL key ended. + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + currNonNullCount); + + // New non-NULL key. + currLongKey = nextLongKey; + currNonNullCount = (nonKeyIsNull[batchIndex] ? 0 : 1); + } + } + } + // Handle last key. + if (currKeyIsNull) { + haveNullKey = true; + nullKeyCount += currNonNullCount; + } else { + findOrCreateLongZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + currNonNullCount); + } + } + + } + } + + /** + * Flush all of the keys and aggregations to the output. + */ + @Override + protected void outputGroupBy() throws HiveException { + + // Keys come first in the output. + LongColumnVector longKeyColumnVector = (LongColumnVector) outputBatch.cols[0]; + + LongColumnVector countKeyColumnVector = (LongColumnVector) outputBatch.cols[1]; + + boolean[] keyIsNull = longKeyColumnVector.isNull; + long[] keyVector = longKeyColumnVector.vector; + boolean[] countIsNull = countKeyColumnVector.isNull; + long[] countVector = countKeyColumnVector.vector; + + if (haveNullKey) { + + // NULL entry to deal with. + if (outputBatch.size == outputBatch.DEFAULT_SIZE) { + forwardOutputBatch(outputBatch); + } + + final int nullBatchIndex = outputBatch.size; + longKeyColumnVector.isNull[nullBatchIndex] = true; + longKeyColumnVector.noNulls = false; + + countIsNull[nullBatchIndex] = false; + countVector[nullBatchIndex] = nullKeyCount; + outputBatch.size++; + } + + int keyCount = initLongZeroCountKeyIterator(); + while (keyCount > 0) { + if (outputBatch.size == outputBatch.DEFAULT_SIZE) { + forwardOutputBatch(outputBatch); + } + + int startBatchIndex = outputBatch.size; + int count = Math.min(keyCount, outputBatch.DEFAULT_SIZE - startBatchIndex); + + // Race down the slot table array and pull long key out of each entry and store into + // the output batch. + for (int i = startBatchIndex; i < startBatchIndex + count; i++) { + keyVector[i] = getLongZeroCountKey(); + countVector[i] = getLongZeroCount(); + } + outputBatch.size += count; + keyCount -= count; + } + } + + @Override + public String getName() { + // TODO Auto-generated method stub + return null; + } +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyCountKeyOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyCountKeyOperator.java new file mode 100644 index 0000000..44571b7 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyCountKeyOperator.java @@ -0,0 +1,430 @@ +/** + * 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.exec.vector.groupby.hash.onelongkey; + +import java.io.IOException; +import java.util.ArrayList; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColHashBase; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorAggregationFunctionInfo; +import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo; +import org.apache.hive.common.util.HashCodeUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/* + * Specialized class for doing a vectorized COUNT(*) only group by that is lookup on a single long + * using a specialized hash map. + * + * Count Key: + + Since we don't count NULLs, a NULL key will always have count 0. + + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + */ +public class VectorGroupByHashOneLongKeyCountKeyOperator extends VectorGroupByHashOneLongKeyNonZeroCountTable { + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = VectorGroupByHashOneLongKeyCountStarOperator.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + private int singleKeyColumnNum; + private PrimitiveTypeInfo singleKeyColumnPrimitiveTypeInfo; + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + private transient boolean haveNullKey; + + //--------------------------------------------------------------------------- + // Pass-thru constructors. + // + + public VectorGroupByHashOneLongKeyCountKeyOperator() { + super(); + + singleKeyColumnNum = -1; + singleKeyColumnPrimitiveTypeInfo = null; + } + + public VectorGroupByHashOneLongKeyCountKeyOperator(CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx, vContext, conf); + + singleKeyColumnNum = groupByKeyColumnMap[0]; + singleKeyColumnPrimitiveTypeInfo = (PrimitiveTypeInfo) groupByKeyTypeInfos[0]; + } + + @Override + protected void initializeOp(Configuration hconf) throws HiveException { + super.initializeOp(hconf); + } + + @Override + public void outputGroupByAndClearAll() throws HiveException { + + // UNDONE: NULL key? + outputGroupBy(); + if (outputBatch.size > 0) { + forwardOutputBatch(outputBatch); + } + clearHashTable(); + + // No storage to clear! + } + + @Override + protected void doBeforeMainLoopWork(final int inputLogicalSize) + throws HiveException, IOException { + checkKeyLimit(inputLogicalSize); + } + + @Override + protected void doMainLoop(VectorizedRowBatch batch, final int inputLogicalSize) + throws HiveException, IOException { + + LongColumnVector keyLongColVector = (LongColumnVector) batch.cols[singleKeyColumnNum]; + long[] keyVector = keyLongColVector.vector; + + // When key is repeated we want to short-circuit and finish quickly so we don't have to + // have special repeated key logic in the regular aggregation logic. + if (keyLongColVector.isRepeating) { + if (!keyLongColVector.noNulls) { + + // We note we encountered a repeating NULL key. But there will be no count for it -- + // just NULL. + haveNullKey = true; + } else { + final long repeatingKey = keyVector[0]; + findOrCreateLongNonZeroCountKey( + repeatingKey, + HashCodeUtil.calculateLongHashCode(repeatingKey), + inputLogicalSize); + } + return; + } + + if (batch.selectedInUse) { + + // Map logical to (physical) batch index. + + int[] selected = batch.selected; + if (keyLongColVector.noNulls) { + + // LOGICAL, NO NULLS. + + long currLongKey = keyVector[selected[0]]; + int duplicateKeyCount = 1; + + for (int logicalIndex = 1; logicalIndex < inputLogicalSize; logicalIndex++) { + final long nextLongKey = keyVector[selected[logicalIndex]]; + if (currLongKey == nextLongKey) { + + duplicateKeyCount++; + } else { + + // Current key ended. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New current key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } + } + // Handle last key. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + } else { + + // LOGICAL, NULLS. + + boolean[] isNull = keyLongColVector.isNull; + + boolean currKeyIsNull; + long currLongKey; + int duplicateKeyCount; + final int firstBatchIndex = selected[0]; + if (isNull[firstBatchIndex]) { + currKeyIsNull = true; + currLongKey = 0; + duplicateKeyCount = 0; // We don't count NULLs for NULL key. + + // We note we encountered a NULL key. But there will be no count for it -- just NULL. + haveNullKey = true; + } else { + currKeyIsNull = false; + currLongKey = keyVector[firstBatchIndex]; + duplicateKeyCount = 1; + } + + for (int logicalIndex = 1; logicalIndex < inputLogicalSize; logicalIndex++) { + final int batchIndex = selected[logicalIndex]; + + if (isNull[batchIndex]) { + + if (currKeyIsNull) { + + // We don't count NULLs for NULL key. + } else { + + // Current non-NULL key ended. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New NULL key. + currKeyIsNull = true; + duplicateKeyCount = 0; + + // We note we encountered a NULL key. But there will be no count for it -- just NULL. + haveNullKey = true; + } + + } else { + final long nextLongKey = keyVector[selected[logicalIndex]]; + if (currKeyIsNull) { + + // Current NULL key ended. We don't count NULLs for NULL key. + currKeyIsNull = false; + + // New non-NULL key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } else if (currLongKey == nextLongKey) { + + duplicateKeyCount++; + } else { + + // Current non-NULL key ended. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New non-NULL key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } + } + } + // Handle last key. + if (!currKeyIsNull) { + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + } + } + + } else { + + // NOT selectedInUse. Logical index is the (physical) batch index. + + if (keyLongColVector.noNulls) { + + // PHYSICAL, NO NULLS. + + long currLongKey = keyVector[0]; + int duplicateKeyCount = 1; + + for (int batchIndex = 1; batchIndex < inputLogicalSize; batchIndex++) { + final long nextLongKey = keyVector[batchIndex]; + if (currLongKey == nextLongKey) { + + duplicateKeyCount++; + } else { + + // Current key ended. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New current key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } + } + // Handle last key. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + } else { + + // PHYSICAL, NULLS. + + boolean[] isNull = keyLongColVector.isNull; + + boolean currKeyIsNull; + long currLongKey; + int duplicateKeyCount; + if (isNull[0]) { + currKeyIsNull = true; + currLongKey = 0; + duplicateKeyCount = 0; // We don't count NULLs for NULL key. + + // We note we encountered a NULL key. But there will be no count for it -- just NULL. + haveNullKey = true; + } else { + currKeyIsNull = false; + currLongKey = keyVector[0]; + duplicateKeyCount = 1; + } + + for (int batchIndex = 1; batchIndex < inputLogicalSize; batchIndex++) { + + if (isNull[batchIndex]) { + + if (currKeyIsNull) { + + // We don't count NULLs for NULL key. + } else { + + // Current non-NULL key ended. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New NULL key. + currKeyIsNull = true; + duplicateKeyCount = 0; + + // We note we encountered a NULL key. But there will be no count for it -- just NULL. + haveNullKey = true; + } + + } else { + final long nextLongKey = keyVector[batchIndex]; + if (currKeyIsNull) { + + // Current NULL key ended. + currKeyIsNull = false; + + // New non-NULL key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } else if (currLongKey == nextLongKey) { + + duplicateKeyCount++; + } else { + + // Current non-NULL key ended. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New non-NULL key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } + } + } + // Handle last key. + if (!currKeyIsNull) { + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + } + } + } + } + + /** + * Flush all of the keys and aggregations to the output. + */ + @Override + protected void outputGroupBy() throws HiveException { + + // Keys come first in the output. + LongColumnVector longKeyColumnVector = (LongColumnVector) outputBatch.cols[0]; + + LongColumnVector countKeyColumnVector = (LongColumnVector) outputBatch.cols[1]; + + boolean[] keyIsNull = longKeyColumnVector.isNull; + long[] keyVector = longKeyColumnVector.vector; + boolean[] countIsNull = countKeyColumnVector.isNull; + long[] countVector = countKeyColumnVector.vector; + + if (haveNullKey) { + + // NULL entry to deal with. + if (outputBatch.size == outputBatch.DEFAULT_SIZE) { + forwardOutputBatch(outputBatch); + } + + final int nullBatchIndex = outputBatch.size; + longKeyColumnVector.isNull[nullBatchIndex] = true; + longKeyColumnVector.noNulls = false; + + countIsNull[nullBatchIndex] = false; + countVector[nullBatchIndex] = 0; // Since the key is NULL -- no non-NULL values to count. + outputBatch.size++; + } + + int keyCount = initLongNonZeroCountKeyIterator(); + while (keyCount > 0) { + if (outputBatch.size == outputBatch.DEFAULT_SIZE) { + forwardOutputBatch(outputBatch); + } + + int startBatchIndex = outputBatch.size; + int count = Math.min(keyCount, outputBatch.DEFAULT_SIZE - startBatchIndex); + + // Race down the slot table array and pull long key out of each entry and store into + // the output batch. + for (int i = startBatchIndex; i < startBatchIndex + count; i++) { + keyIsNull[i] = false; + keyVector[i] = getLongNonZeroCountKey(); + countIsNull[i] = false; + countVector[i] = getLongNonZeroCount(); + } + outputBatch.size += count; + keyCount -= count; + } + } + + @Override + public String getName() { + // TODO Auto-generated method stub + return null; + } +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyCountStarOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyCountStarOperator.java new file mode 100644 index 0000000..b472928 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyCountStarOperator.java @@ -0,0 +1,425 @@ +/** + * 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.exec.vector.groupby.hash.onelongkey; + +import java.io.IOException; +import java.util.ArrayList; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColHashBase; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.apache.hive.common.util.HashCodeUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/* + * Specialized class for doing a vectorized COUNT(*) only group by that is lookup on a single long + * using a specialized hash map. + * + Count Star + + NULL key has separate counter. + + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + */ +public class VectorGroupByHashOneLongKeyCountStarOperator extends VectorGroupByHashOneLongKeyNonZeroCountTable { + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = VectorGroupByHashOneLongKeyCountStarOperator.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + private int singleKeyColumnNum; + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + private transient boolean haveNullKey; + private transient long nullKeyCount; + + //--------------------------------------------------------------------------- + // Pass-thru constructors. + // + + public VectorGroupByHashOneLongKeyCountStarOperator() { + super(); + + singleKeyColumnNum = -1; + } + + public VectorGroupByHashOneLongKeyCountStarOperator(CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx, vContext, conf); + + singleKeyColumnNum = groupByKeyColumnMap[0]; + } + + @Override + protected void initializeOp(Configuration hconf) throws HiveException { + super.initializeOp(hconf); + + haveNullKey = false; + nullKeyCount = 0; + } + + @Override + public void outputGroupByAndClearAll() throws HiveException { + + outputGroupBy(); + if (outputBatch.size > 0) { + forwardOutputBatch(outputBatch); + } + clearHashTable(); + + // No storage to clear! + } + + @Override + protected void doBeforeMainLoopWork(final int inputLogicalSize) + throws HiveException, IOException { + checkKeyLimit(inputLogicalSize); + } + + @Override + protected void doMainLoop(VectorizedRowBatch batch, final int inputLogicalSize) + throws HiveException, IOException { + + LongColumnVector keyLongColVector = (LongColumnVector) batch.cols[singleKeyColumnNum]; + long[] keyVector = keyLongColVector.vector; + + // When key is repeated we want to short-circuit and finish quickly so we don't have to + // have special repeated key logic in the regular aggregation logic. + if (keyLongColVector.isRepeating) { + if (!keyLongColVector.noNulls) { + + // We note we encountered a repeating NULL key. + haveNullKey = true; + nullKeyCount += inputLogicalSize; + } else { + final long repeatingKey = keyVector[0]; + findOrCreateLongNonZeroCountKey( + repeatingKey, + HashCodeUtil.calculateLongHashCode(repeatingKey), + inputLogicalSize); + } + return; + } + + // NOTE: hashEleIndices / duplicateKeyCounts always indexed by logicalIndex. + + if (batch.selectedInUse) { + + // Map logical to (physical) batch index. + + int[] selected = batch.selected; + if (keyLongColVector.noNulls) { + + // LOGICAL, NO NULLS. + + long currLongKey = keyVector[selected[0]]; + int duplicateKeyCount = 1; + + for (int logicalIndex = 1; logicalIndex < inputLogicalSize; logicalIndex++) { + final long nextLongKey = keyVector[selected[logicalIndex]]; + if (currLongKey == nextLongKey) { + + duplicateKeyCount++; + } else { + + // Current key ended. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New current key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } + } + // Handle last key. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + } else { + + // LOGICAL, NULLS. + + boolean[] isNull = keyLongColVector.isNull; + + boolean currKeyIsNull; + long currLongKey; + final int firstBatchIndex = selected[0]; + if (isNull[firstBatchIndex]) { + currKeyIsNull = true; + currLongKey = 0; + } else { + currKeyIsNull = false; + currLongKey = keyVector[firstBatchIndex]; + } + int duplicateKeyCount = 1; + + for (int logicalIndex = 1; logicalIndex < inputLogicalSize; logicalIndex++) { + final int batchIndex = selected[logicalIndex]; + + if (isNull[batchIndex]) { + + if (currKeyIsNull) { + + duplicateKeyCount++; + } else { + + // Current non-NULL key ended. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New NULL key. + currKeyIsNull = true; + duplicateKeyCount = 1; + } + + } else { + final long nextLongKey = keyVector[batchIndex]; + if (currKeyIsNull) { + + // Current NULL key ended. + currKeyIsNull = false; + + haveNullKey = true; + nullKeyCount += duplicateKeyCount; + + // New non-NULL key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } else if (currLongKey == nextLongKey) { + + duplicateKeyCount++; + } else { + + // Current non-NULL key ended. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New non-NULL key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } + } + } + // Handle last key. + if (currKeyIsNull) { + haveNullKey = true; + nullKeyCount += duplicateKeyCount; + } else { + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + } + } + + } else { + + // NOT selectedInUse. Logical index is the (physical) batch index. + + if (keyLongColVector.noNulls) { + + // PHYSICAL, NO NULLS. + + long currLongKey = keyVector[0]; + int duplicateKeyCount = 1; + + for (int batchIndex = 1; batchIndex < inputLogicalSize; batchIndex++) { + final long nextLongKey = keyVector[batchIndex]; + if (currLongKey == nextLongKey) { + + duplicateKeyCount++; + } else { + + // Current key ended. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New current key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } + } + // Handle last key. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + } else { + + // PHYSICAL, NULLS. + + boolean[] isNull = keyLongColVector.isNull; + + boolean currKeyIsNull; + long currLongKey; + if (isNull[0]) { + currKeyIsNull = true; + currLongKey = 0; + } else { + currKeyIsNull = false; + currLongKey = keyVector[0]; + } + int duplicateKeyCount = 1; + + for (int batchIndex = 1; batchIndex < inputLogicalSize; batchIndex++) { + + if (isNull[batchIndex]) { + + if (currKeyIsNull) { + duplicateKeyCount++; + } else { + + // Current non-NULL key ended. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New NULL key. + currKeyIsNull = true; + duplicateKeyCount = 1; + } + + } else { + final long nextLongKey = keyVector[batchIndex]; + if (currKeyIsNull) { + + // Current NULL key ended. + currKeyIsNull = false; + + haveNullKey = true; + nullKeyCount += duplicateKeyCount; + + // New non-NULL key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } else if (currLongKey == nextLongKey) { + + duplicateKeyCount++; + } else { + + // Current non-NULL key ended. + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + + // New non-NULL key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + } + } + } + // Handle last key. + if (currKeyIsNull) { + haveNullKey = true; + nullKeyCount += duplicateKeyCount; + } else { + findOrCreateLongNonZeroCountKey( + currLongKey, + HashCodeUtil.calculateLongHashCode(currLongKey), + duplicateKeyCount); + } + } + + } + } + + // UNDONE: Common method with ~CountKey and ~CountColumn + /** + * Flush all of the keys and aggregations to the output. + */ + @Override + protected void outputGroupBy() throws HiveException { + + // Keys come first in the output. + LongColumnVector longKeyColumnVector = (LongColumnVector) outputBatch.cols[0]; + + LongColumnVector countKeyColumnVector = (LongColumnVector) outputBatch.cols[1]; + + boolean[] keyIsNull = longKeyColumnVector.isNull; + long[] keyVector = longKeyColumnVector.vector; + boolean[] countIsNull = countKeyColumnVector.isNull; + long[] countVector = countKeyColumnVector.vector; + + if (haveNullKey) { + + // NULL entry to deal with. + if (outputBatch.size == outputBatch.DEFAULT_SIZE) { + forwardOutputBatch(outputBatch); + } + + final int nullBatchIndex = outputBatch.size; + longKeyColumnVector.isNull[nullBatchIndex] = true; + longKeyColumnVector.noNulls = false; + + countIsNull[nullBatchIndex] = false; + countVector[nullBatchIndex] = nullKeyCount; + outputBatch.size++; + } + + int keyCount = initLongNonZeroCountKeyIterator(); + while (keyCount > 0) { + if (outputBatch.size == outputBatch.DEFAULT_SIZE) { + forwardOutputBatch(outputBatch); + } + + int startBatchIndex = outputBatch.size; + int count = Math.min(keyCount, outputBatch.DEFAULT_SIZE - startBatchIndex); + + // Race down the slot table array and pull long key out of each entry and store into + // the output batch. + for (int i = startBatchIndex; i < startBatchIndex + count; i++) { + keyVector[i] = getLongNonZeroCountKey(); + countVector[i] = getLongNonZeroCount(); + } + outputBatch.size += count; + keyCount -= count; + } + } + + @Override + public String getName() { + // TODO Auto-generated method stub + return null; + } +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyNonZeroCountTable.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyNonZeroCountTable.java new file mode 100644 index 0000000..8f47cb6 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyNonZeroCountTable.java @@ -0,0 +1,148 @@ +/** + * 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.exec.vector.groupby.hash.onelongkey; + +import java.io.IOException; +import java.util.Arrays; +import java.util.Collection; +import java.util.concurrent.Future; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil; +import org.apache.hadoop.hive.ql.exec.vector.groupby.hash.VectorGroupByHashTable; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/* + * An single long value map optimized for vector map join. + */ +public abstract class VectorGroupByHashOneLongKeyNonZeroCountTable + extends VectorGroupByHashOneLongKeyTable { + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = VectorGroupByHashOneLongKeyNonZeroCountTable.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + //--------------------------------------------------------------------------- + // Pass-thru constructors. + // + + public VectorGroupByHashOneLongKeyNonZeroCountTable() { + super(); + } + + public VectorGroupByHashOneLongKeyNonZeroCountTable(CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx, vContext, conf); + } + + @Override + protected void initializeOp(Configuration hconf) throws HiveException { + super.initializeOp(hconf); + + allocateBucketArray(LONG_NON_ZERO_COUNT_ENTRY_SIZE); + } + + //------------------------------------------------------------------------------------------------ + + private static int LONG_NON_ZERO_COUNT_ENTRY_SIZE = 2; + + public void findOrCreateLongNonZeroCountKey(long key, long hashCode, int count) + throws HiveException, IOException { + + VectorizedBatchUtil.debugCheckState(count > 0); + int intHashCode = (int) hashCode; + int slot = (intHashCode & logicalHashBucketMask); + long probeSlot = slot; + int i = 0; + boolean isNewKey; + int pairIndex = 0; + while (true) { + pairIndex = 2 * slot; + if (slotMultiples[pairIndex + 1] == 0) { + isNewKey = true; + break; + } + if (key == slotMultiples[pairIndex]) { + isNewKey = false; + break; + } + ++metricPutConflict; + // Some other key (collision) - keep probing. + probeSlot += (++i); + slot = (int)(probeSlot & logicalHashBucketMask); + } + + if (largestNumberOfSteps < i) { + // if (isLogDebugEnabled) { + LOG.debug("Probed " + i + " slots (the longest so far) to find space"); + // } + largestNumberOfSteps = i; + // debugDumpKeyProbe(keyOffset, keyLength, hashCode, slot); + } + + if (isNewKey) { + slotMultiples[pairIndex] = key; + keyCount++; + slotMultiples[pairIndex + 1] = count; + } else { + slotMultiples[pairIndex + 1] += count; + } + } + + private int nonZeroCountPairIndex; + private long currentNonZeroCount; + + protected int initLongNonZeroCountKeyIterator() { + nonZeroCountPairIndex = 0; + currentNonZeroCount = 0; + return keyCount; + } + + // Find next key and return it. + protected long getLongNonZeroCountKey() { + while (true) { + long count = slotMultiples[nonZeroCountPairIndex + 1]; + if (count > 0) { + currentNonZeroCount = count; + long key = slotMultiples[nonZeroCountPairIndex]; + nonZeroCountPairIndex += 2; + return key; + } + nonZeroCountPairIndex += 2; + } + } + + public long getLongNonZeroCount() { + return currentNonZeroCount; + } + + //------------------------------------------------------------------------------------------------ + +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyOperatorBase.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyOperatorBase.java new file mode 100644 index 0000000..ff99352 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyOperatorBase.java @@ -0,0 +1,405 @@ +/** + * 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.exec.vector.groupby.hash.onelongkey; + +import java.io.IOException; +import java.util.ArrayList; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColBase; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColHashBase; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen.VectorGroupByAggrColHash; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorAggregationFunctionInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationColumnInfo; +import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo; +import org.apache.hive.common.util.HashCodeUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.base.Preconditions; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil; + +/** + * This class is common one long key hash operator class of Native Vectorized GroupBy with common + * operator logic for one long key main loop logic. + */ +public abstract class VectorGroupByHashOneLongKeyOperatorBase + extends VectorGroupByHashOneLongKeyTable { + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = VectorGroupByHashOneLongKeyOperatorBase.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + // Non-transient members initialized by the constructor. They cannot be final due to Kryo. + + protected int singleKeyColumnNum; + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + //--------------------------------------------------------------------------- + // Pass-thru constructors. + // + + public VectorGroupByHashOneLongKeyOperatorBase() { + super(); + } + + public VectorGroupByHashOneLongKeyOperatorBase(CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx, vContext, conf); + + singleKeyColumnNum = groupByKeyColumnMap[0]; + } + + @Override + protected void initializeOp(Configuration hconf) throws HiveException { + super.initializeOp(hconf); + } + + @Override + protected void doMainLoop(VectorizedRowBatch batch, final int inputLogicalSize) + throws HiveException, IOException { + + LongColumnVector keyLongColVector = (LongColumnVector) batch.cols[singleKeyColumnNum]; + + // When key is repeated we want to short-circuit and finish quickly so we don't have to + // have special repeated key logic in the regular aggregation logic. + if (keyLongColVector.isRepeating) { + handleOneLongKeyRepeating(batch, keyLongColVector, inputLogicalSize); + return; + } + + handleOneLongKey(batch, keyLongColVector, inputLogicalSize); + } + + protected void handleOneLongKeyRepeating(VectorizedRowBatch batch, + LongColumnVector keyLongColVector, final int inputLogicalSize) + throws HiveException, IOException { + + int hashEleLongIndex; + if (!keyLongColVector.noNulls) { + + // All NULLs. + + // NULL hash element is index 0. + + // Pretend NULL key is "assigned" in header word. + longs[0] |= VectorGroupByAggrColHashBase.KEY_ASSIGNED_MASK; + + hashEleLongIndex = 0; // The NULL entry. + aggregateFirstOneLongRepeatedKey( + batch, /* oneLongRepeatedKey */ 0, /* hashEleLongIndex */ 0, /* hashCode */ 0, inputLogicalSize); + + } else { + final long repeatingKey = keyLongColVector.vector[0]; + final int hashCode = HashCodeUtil.calculateLongHashCode(repeatingKey); + hashEleLongIndex = findOrCreate(hashCode); + VectorizedBatchUtil.debugCheckState(hashEleLongIndex != 0); + aggregateFirstOneLongRepeatedKey(batch, repeatingKey, hashEleLongIndex, hashCode, inputLogicalSize); + } + + if (aggrColumnCount > 1) { + aggregateRepeatedKeyRemaining(batch, hashEleLongIndex, inputLogicalSize); + } + } + + protected abstract void aggregateFirstOneLongRepeatedKey(VectorizedRowBatch batch, + final long oneLongRepeatingKey, final int hashEleLongIndex, final int hashCode, + final int inputLogicalSize); + + protected void handleOneLongKey(VectorizedRowBatch batch, LongColumnVector keyLongColVector, + final int inputLogicalSize) throws HiveException, IOException { + + // NOTE: hashEleIndices / duplicateKeyCounts always indexed by logicalIndex. + + long[] keyVector = keyLongColVector.vector; + + if (batch.selectedInUse) { + + // Map logical to (physical) batch index. + + int[] selected = batch.selected; + if (keyLongColVector.noNulls) { + + // LOGICAL, NO NULLS. + + long currLongKey = keyVector[selected[0]]; + int currKeyLogicalIndex = 0; + int duplicateKeyCount = 1; + + for (int logicalIndex = 1; logicalIndex < inputLogicalSize; logicalIndex++) { + final long nextLongKey = keyVector[selected[logicalIndex]]; + if (currLongKey == nextLongKey) { + + duplicateKeyCount++; + } else { + + // Current key ended. + hashEleIndices[currKeyLogicalIndex] = + findOrCreate( + HashCodeUtil.calculateLongHashCode(currLongKey)); + duplicateKeyCounts[currKeyLogicalIndex] = duplicateKeyCount; + + // New current key. + currLongKey = nextLongKey; + currKeyLogicalIndex = logicalIndex; + duplicateKeyCount = 1; + } + } + // Handle last key. + hashEleIndices[currKeyLogicalIndex] = + findOrCreate( + HashCodeUtil.calculateLongHashCode(currLongKey)); + duplicateKeyCounts[currKeyLogicalIndex] = duplicateKeyCount; + } else { + + // LOGICAL, NULLS. + + boolean[] isNull = keyLongColVector.isNull; + + boolean currKeyIsNull; + long currLongKey; + final int firstBatchIndex = selected[0]; + if (isNull[firstBatchIndex]) { + currKeyIsNull = true; + currLongKey = 0; + } else { + currKeyIsNull = false; + currLongKey = keyVector[firstBatchIndex]; + } + int currKeyLogicalIndex = 0; + int duplicateKeyCount = 1; + + for (int logicalIndex = 1; logicalIndex < inputLogicalSize; logicalIndex++) { + final int batchIndex = selected[logicalIndex]; + + if (isNull[batchIndex]) { + + if (currKeyIsNull) { + + duplicateKeyCount++; + } else { + + // Current non-NULL key ended. + hashEleIndices[currKeyLogicalIndex] = + findOrCreate( + HashCodeUtil.calculateLongHashCode(currLongKey)); + duplicateKeyCounts[currKeyLogicalIndex] = duplicateKeyCount; + + // New NULL key. + currKeyIsNull = true; + currKeyLogicalIndex = logicalIndex; + duplicateKeyCount = 1; + + // NULL hash element is index 0. + + // Pretend NULL key is "assigned" in header word. + longs[0] |= VectorGroupByAggrColHashBase.KEY_ASSIGNED_MASK; + + hashEleIndices[logicalIndex] = 0; + } + + } else { + final long nextLongKey = keyVector[batchIndex]; + if (currKeyIsNull) { + + // Current NULL key ended. + currKeyIsNull = false; + duplicateKeyCounts[currKeyLogicalIndex] = duplicateKeyCount; + + // New non-NULL key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + currKeyLogicalIndex = logicalIndex; + } else if (currLongKey == nextLongKey) { + + duplicateKeyCount++; + } else { + + // Current non-NULL key ended. + hashEleIndices[currKeyLogicalIndex] = + findOrCreate( + HashCodeUtil.calculateLongHashCode(currLongKey)); + duplicateKeyCounts[currKeyLogicalIndex] = duplicateKeyCount; + + // New non-NULL key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + currKeyLogicalIndex = logicalIndex; + } + } + } + // Handle last key. + if (!currKeyIsNull) { + hashEleIndices[currKeyLogicalIndex] = + findOrCreate( + HashCodeUtil.calculateLongHashCode(currLongKey)); + } + duplicateKeyCounts[currKeyLogicalIndex] = duplicateKeyCount; + } + + aggregateFirstOneLongKeyLogical(batch, keyVector, inputLogicalSize); + + if (aggrColumnCount > 1) { + aggregateLogicalRemaining(batch, inputLogicalSize); + } + } else { + + // NOT selectedInUse. Logical index is the (physical) batch index. + + if (keyLongColVector.noNulls) { + + // PHYSICAL, NO NULLS. + + long currLongKey = keyVector[0]; + int currKeyBatchIndex = 0; + int duplicateKeyCount = 1; + + for (int batchIndex = 1; batchIndex < inputLogicalSize; batchIndex++) { + final long nextLongKey = keyVector[batchIndex]; + if (currLongKey == nextLongKey) { + + duplicateKeyCount++; + } else { + + // Current key ended. + hashEleIndices[currKeyBatchIndex] = + findOrCreate( + HashCodeUtil.calculateLongHashCode(currLongKey)); + duplicateKeyCounts[currKeyBatchIndex] = duplicateKeyCount; + + // New current key. + currLongKey = nextLongKey; + currKeyBatchIndex = batchIndex; + duplicateKeyCount = 1; + } + } + // Handle last key. + hashEleIndices[currKeyBatchIndex] = + findOrCreate( + HashCodeUtil.calculateLongHashCode(currLongKey)); + duplicateKeyCounts[currKeyBatchIndex] = duplicateKeyCount; + } else { + + // PHYSICAL, NULLS. + + boolean[] isNull = keyLongColVector.isNull; + + boolean currKeyIsNull; + long currLongKey; + if (isNull[0]) { + currKeyIsNull = true; + currLongKey = 0; + } else { + currKeyIsNull = false; + currLongKey = keyVector[0]; + } + int currKeyBatchIndex = 0; + int duplicateKeyCount = 1; + + for (int batchIndex = 1; batchIndex < inputLogicalSize; batchIndex++) { + + if (isNull[batchIndex]) { + + if (currKeyIsNull) { + duplicateKeyCount++; + } else { + + // Current non-NULL key ended. + hashEleIndices[currKeyBatchIndex] = + findOrCreate( + HashCodeUtil.calculateLongHashCode(currLongKey)); + duplicateKeyCounts[currKeyBatchIndex] = duplicateKeyCount; + + // New NULL key. + currKeyIsNull = true; + currKeyBatchIndex = batchIndex; + duplicateKeyCount = 1; + + // NULL hash element is index 0. + + // Pretend NULL key is "assigned" in header word. + longs[0] |= VectorGroupByAggrColHashBase.KEY_ASSIGNED_MASK; + + hashEleIndices[batchIndex] = 0; + } + + } else { + final long nextLongKey = keyVector[batchIndex]; + if (currKeyIsNull) { + + // Current NULL key ended. + currKeyIsNull = false; + duplicateKeyCounts[currKeyBatchIndex] = duplicateKeyCount; + + // New non-NULL key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + currKeyBatchIndex = batchIndex; + } else if (currLongKey == nextLongKey) { + + duplicateKeyCount++; + } else { + + // Current non-NULL key ended. + hashEleIndices[currKeyBatchIndex] = + findOrCreate( + HashCodeUtil.calculateLongHashCode(currLongKey)); + duplicateKeyCounts[currKeyBatchIndex] = duplicateKeyCount; + + // New non-NULL key. + currLongKey = nextLongKey; + duplicateKeyCount = 1; + currKeyBatchIndex = batchIndex; + } + } + } + // Handle last key. + if (!currKeyIsNull) { + hashEleIndices[currKeyBatchIndex] = + findOrCreate( + HashCodeUtil.calculateLongHashCode(currLongKey)); + } + duplicateKeyCounts[currKeyBatchIndex] = duplicateKeyCount; + } + + aggregateFirstOneLongKeyPhysical(batch, keyVector, inputLogicalSize); + + if (aggrColumnCount > 1) { + aggregatePhysicalRemaining(batch, inputLogicalSize); + } + } + } + + protected abstract void aggregateFirstOneLongKeyLogical(VectorizedRowBatch batch, + long[] keyVector, final int inputLogicalSize); + + protected abstract void aggregateFirstOneLongKeyPhysical(VectorizedRowBatch batch, + long[] keyVector, final int inputLogicalSize); +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyTable.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyTable.java new file mode 100644 index 0000000..a229318 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyTable.java @@ -0,0 +1,72 @@ +/** + * 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.exec.vector.groupby.hash.onelongkey; + +import java.io.IOException; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.groupby.hash.VectorGroupByHashOperatorBase; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.base.Preconditions; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil; + +/* + * An single long key map optimized for vectorized only group by. + */ +public abstract class VectorGroupByHashOneLongKeyTable extends VectorGroupByHashOperatorBase { + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = VectorGroupByHashOneLongKeyTable.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + // The find or create results for findOrCreateLongKey and findOrCreateNonLongKey. + + public transient boolean currentIsOutOfStorage; + + //--------------------------------------------------------------------------- + // Pass-thru constructors. + // + + public VectorGroupByHashOneLongKeyTable() { + super(); + } + + public VectorGroupByHashOneLongKeyTable(CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx, vContext, conf); + } + + @Override + protected void initializeOp(Configuration hconf) throws HiveException { + super.initializeOp(hconf); + + allocateBucketArray(ENTRY_SIZE); + + } +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyZeroCountTable.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyZeroCountTable.java new file mode 100644 index 0000000..5722baa --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/groupby/hash/onelongkey/VectorGroupByHashOneLongKeyZeroCountTable.java @@ -0,0 +1,177 @@ +/** + * 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.exec.vector.groupby.hash.onelongkey; + +import java.io.IOException; +import java.util.Arrays; +import java.util.Collection; +import java.util.concurrent.Future; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.groupby.hash.VectorGroupByHashTable; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.OperatorDesc; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/* + * An single long value map optimized for vector map join. + */ +public abstract class VectorGroupByHashOneLongKeyZeroCountTable + extends VectorGroupByHashOneLongKeyTable { + + private static final long serialVersionUID = 1L; + private static final String CLASS_NAME = VectorGroupByHashOneLongKeyZeroCountTable.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger(CLASS_NAME); + + // The above members are initialized by the constructor and must not be + // transient. + //--------------------------------------------------------------------------- + + // The find or create results for findOrCreateLongKey and findOrCreateNonLongKey. + + public transient boolean currentIsNewKey; + public transient int currentLongIndex; + + //--------------------------------------------------------------------------- + // Pass-thru constructors. + // + + public VectorGroupByHashOneLongKeyZeroCountTable() { + super(); + } + + public VectorGroupByHashOneLongKeyZeroCountTable(CompilationOpContext ctx, + VectorizationContext vContext, OperatorDesc conf) throws HiveException { + super(ctx, vContext, conf); + } + + @Override + protected void initializeOp(Configuration hconf) throws HiveException { + super.initializeOp(hconf); + + allocateBucketArray(LONG_ZERO_COUNT_ENTRY_SIZE); + } + + //------------------------------------------------------------------------------------------------ + + private static long LONG_KEY_COUNT_KEY_ZERO_HAS_VALUE_MASK = 1L << 63; + + private static int LONG_ZERO_COUNT_ENTRY_SIZE = 2; + + public void findOrCreateLongZeroCountKey(long key, long hashCode, int count) + throws HiveException, IOException { + + int intHashCode = (int) hashCode; + int slot = (intHashCode & logicalHashBucketMask); + long probeSlot = slot; + int i = 0; + boolean isNewKey; + int pairIndex = 0; + while (true) { + pairIndex = 2 * slot; + if (slotMultiples[pairIndex + 1] == 0) { + isNewKey = true; + break; + } + if (key == slotMultiples[pairIndex]) { + isNewKey = false; + break; + } + ++metricPutConflict; + // Some other key (collision) - keep probing. + probeSlot += (++i); + slot = (int)(probeSlot & logicalHashBucketMask); + } + + if (largestNumberOfSteps < i) { + // if (isLogDebugEnabled) { + LOG.debug("Probed " + i + " slots (the longest so far) to find space"); + // } + largestNumberOfSteps = i; + // debugDumpKeyProbe(keyOffset, keyLength, hashCode, slot); + } + + if (isNewKey) { + /* + boolean limitReached = (keyCount + 1 >= keyLimit); + if (limitReached) { + + // We reached a limit. + + currentIsOutOfStorage = true; + return; + } + */ + slotMultiples[pairIndex] = key; + keyCount++; + if (count == 0) { + slotMultiples[pairIndex + 1] = LONG_KEY_COUNT_KEY_ZERO_HAS_VALUE_MASK; + } else { + slotMultiples[pairIndex + 1] = count; + } + } else if (count > 0) { + + // Only update count when we are leaving 0. + if (slotMultiples[pairIndex + 1] == LONG_KEY_COUNT_KEY_ZERO_HAS_VALUE_MASK) { + slotMultiples[pairIndex + 1] = count; + } else { + slotMultiples[pairIndex + 1] += count; + } + } + } + + private int countKeyPairIndex; + private long currentCountKeyCount; + + protected int initLongZeroCountKeyIterator() { + countKeyPairIndex = 0; + currentCountKeyCount = 0; + return keyCount; + } + + // Find next key and return it. + protected long getLongZeroCountKey() { + while (true) { + long count = slotMultiples[countKeyPairIndex + 1]; + if (count != 0) { + if (count == LONG_KEY_COUNT_KEY_ZERO_HAS_VALUE_MASK) { + currentCountKeyCount = 0; + } else { + currentCountKeyCount = count; + } + long key = slotMultiples[countKeyPairIndex]; + countKeyPairIndex += 2; + return key; + } + countKeyPairIndex += 2; + } + } + + public long getLongZeroCount() { + return currentCountKeyCount; + } + + //------------------------------------------------------------------------------------------------ + +} \ No newline at end of file diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java index 13d7730..23e14e2 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java @@ -30,12 +30,14 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.TreeMap; import java.util.Random; import java.util.Map.Entry; import java.util.Properties; import java.util.Set; import java.util.Stack; import java.util.regex.Pattern; +import java.util.Comparator; import org.apache.commons.lang.ArrayUtils; import org.apache.calcite.util.Pair; @@ -51,6 +53,7 @@ import org.apache.hadoop.hive.ql.exec.spark.SparkTask; import org.apache.hadoop.hive.ql.exec.tez.TezTask; import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor; +import org.apache.hadoop.hive.ql.exec.vector.VectorGroupByOperator; import org.apache.hadoop.hive.ql.exec.vector.mapjoin.VectorMapJoinInnerBigOnlyLongOperator; import org.apache.hadoop.hive.ql.exec.vector.mapjoin.VectorMapJoinInnerBigOnlyMultiKeyOperator; import org.apache.hadoop.hive.ql.exec.vector.mapjoin.VectorMapJoinInnerBigOnlyStringOperator; @@ -84,6 +87,11 @@ import org.apache.hadoop.hive.ql.exec.vector.expressions.IdentityExpression; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.VectorAggregateExpression; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColHashBase; +import org.apache.hadoop.hive.ql.exec.vector.groupby.hash.onelongkey.VectorGroupByHashOneLongKeyCountColumnOperator; +import org.apache.hadoop.hive.ql.exec.vector.groupby.hash.onelongkey.VectorGroupByHashOneLongKeyCountKeyOperator; +import org.apache.hadoop.hive.ql.exec.vector.groupby.hash.onelongkey.VectorGroupByHashOneLongKeyCountStarOperator; +import org.apache.hadoop.hive.ql.exec.vector.groupby.operator.gen.VectorGroupByHashOneLongKeyOperator; import org.apache.hadoop.hive.ql.io.orc.OrcInputFormat; import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatchCtx; import org.apache.hadoop.hive.ql.lib.DefaultGraphWalker; @@ -128,6 +136,16 @@ import org.apache.hadoop.hive.ql.plan.VectorPTFDesc; import org.apache.hadoop.hive.ql.plan.VectorPTFInfo; import org.apache.hadoop.hive.ql.plan.VectorPTFDesc.SupportedFunctionType; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.AggregationFunction; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.InputColVecTypeAggregation; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.SingleCountAggreationKind; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorAggregationFunctionInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorCombineColumnAggrInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorHashOutputAggrInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.RuntimeHashAggregationElementInfo; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorHashOutputAggrInfo.VectorOutputAggrKind; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorPrimitiveOutputAggrInfo; import org.apache.hadoop.hive.ql.plan.VectorTableScanDesc; import org.apache.hadoop.hive.ql.plan.VectorizationCondition; import org.apache.hadoop.hive.ql.plan.VectorGroupByDesc.ProcessingMode; @@ -226,6 +244,7 @@ import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo; import org.apache.hadoop.hive.serde2.typeinfo.StructTypeInfo; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; +import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils; import org.apache.hadoop.mapred.SequenceFileInputFormat; import org.apache.hadoop.mapred.TextInputFormat; @@ -3358,6 +3377,784 @@ private boolean canSpecializeMapJoin(Operator op, MapJoi return result; } + private Operator specializeGroupByOperator( + Operator op, VectorizationContext vContext, GroupByDesc desc, + VectorGroupByInfo vectorGroupByInfo) throws HiveException { + + Operator vectorOp = null; + Class> opClass = null; + + VectorGroupByDesc vectorDesc = (VectorGroupByDesc) desc.getVectorDesc(); + + if (vectorGroupByInfo.getHasSingleCountAggregation()) { + + SingleCountAggreationKind singleCountAggreationKind = + vectorGroupByInfo.getSingleCountAggreationKind(); + + switch (singleCountAggreationKind) { + case COUNT_STAR: + opClass = VectorGroupByHashOneLongKeyCountStarOperator.class; + break; + case COUNT_KEY: + opClass = VectorGroupByHashOneLongKeyCountKeyOperator.class; + break; + case COUNT_COLUMN: + opClass = VectorGroupByHashOneLongKeyCountColumnOperator.class; + break; + default: + throw new RuntimeException( + "Unexpected single count aggregation kind " + singleCountAggreationKind); + } + } else { + + VectorGroupByInfo.HashTableKeyType hashTableKeyType = vectorGroupByInfo.getHashTableKeyType(); + + ProcessingMode processingMode = vectorDesc.getProcessingMode(); + switch (processingMode) { + /* + case GLOBAL: + if (isOnlyCountStar) { + opClass = VectorGroupByGlobalCountStarOperator.class; + } else { + opClass = VectorGroupByGlobalOperator.class; + } + break; + */ + case HASH: + { + boolean keysAreAllFixedLength = vectorGroupByInfo.getKeysAreAllFixedLength(); + switch (hashTableKeyType) { + case LONG: + // UNDONE: + opClass = VectorGroupByHashOneLongKeyOperator.class; + break; + case STRING: + throw new HiveException("Single string key not supported yet"); + /* + opClass = VectorGroupByStringOperator.class; + break; + */ + case MULTI_KEY: + throw new HiveException("Multiple keys not supported yet"); + /* + if (keysAreAllFixedLength) { + opClass = VectorGroupByMultiKeyFixedLenOperator.class; + } else { + // UNDONE... + throw new HiveException("Multiple variable length keys not supported yet"); + } + break; + */ + default: + throw new HiveException("Unknown hash table key type " + hashTableKeyType); + } + } + break; + case MERGE_PARTIAL: + throw new HiveException("Merge partial not supported yet"); + /* + if (isOnlyCountStar) { + opClass = VectorGroupByMergePartialCountStarOperator.class; + } else { + opClass = VectorGroupByMergePartialOperator.class; + } + break; + */ + case STREAMING: + default: + throw new RuntimeException("Unexpected vector group by processing mode " + + processingMode.name()); + } + } + + vectorDesc.setVectorGroupByInfo(vectorGroupByInfo); + + vectorDesc.setVectorOutput(true); + + vectorDesc.setIsNative(true); + + try { + vectorOp = OperatorFactory.getVectorOperator( + opClass, op.getCompilationOpContext(), op.getConf(), vContext); + } catch (Exception e) { + LOG.info("Vectorizer vectorizeOperator group by class exception " + opClass.getSimpleName() + + " exception " + e); + throw new HiveException(e); + } + + LOG.info("Vectorizer vectorizeOperator group by class " + vectorOp.getClass().getSimpleName()); + LOG.info("Vectorizer vectorizeOperator group by key types " + Arrays.toString(vectorGroupByInfo.getGroupByKeyTypeInfos())); + return vectorOp; + } + + private TypeInfo getAverageTypeInfo(TypeInfo inputTypeInfo, TypeInfo sumTypeInfo, + GroupByDesc.Mode groupByMode) { + switch (groupByMode) { + case HASH: + case PARTIAL1: + case PARTIAL2: + { + ArrayList fieldNamesList = new ArrayList(); + fieldNamesList.add("count"); + fieldNamesList.add("sum"); + fieldNamesList.add("input"); + ArrayList fieldTypeInfos = new ArrayList(); + fieldTypeInfos.add(TypeInfoFactory.longTypeInfo); + fieldTypeInfos.add(sumTypeInfo); + fieldTypeInfos.add(inputTypeInfo); + StructTypeInfo partialResultStructTypeInfo = new StructTypeInfo(); + partialResultStructTypeInfo.setAllStructFieldNames(fieldNamesList); + partialResultStructTypeInfo.setAllStructFieldTypeInfos(fieldTypeInfos); + return partialResultStructTypeInfo; + } + case COMPLETE: + case FINAL: + return sumTypeInfo; + default: + // UNDONE + return null; + } + } + + private TypeInfo getVarianceTypeInfo(GroupByDesc.Mode groupByMode) { + switch (groupByMode) { + case HASH: + case PARTIAL1: + case PARTIAL2: + { + ArrayList fieldNamesList = new ArrayList(); + fieldNamesList.add("count"); + fieldNamesList.add("sum"); + fieldNamesList.add("variance"); + ArrayList fieldTypeInfos = new ArrayList(); + fieldTypeInfos.add(TypeInfoFactory.longTypeInfo); + fieldTypeInfos.add(TypeInfoFactory.doubleTypeInfo); + fieldTypeInfos.add(TypeInfoFactory.doubleTypeInfo); + StructTypeInfo partialResultStructTypeInfo = new StructTypeInfo(); + partialResultStructTypeInfo.setAllStructFieldNames(fieldNamesList); + partialResultStructTypeInfo.setAllStructFieldTypeInfos(fieldTypeInfos); + return partialResultStructTypeInfo; + } + case COMPLETE: + case FINAL: + return TypeInfoFactory.doubleTypeInfo; + default: + // UNDONE + return null; + } + } + + public enum InputAggrMode { + ORIGINAL_DATA, + MERGE; + } + + private static class VectorInputAggrKey { + + private final String functionName; + + private final ColumnVector.Type inputColumnVectorType; + + private final InputAggrMode inputAggrMode; + + public VectorInputAggrKey( + String functionName, + ColumnVector.Type inputColumnVectorType, + InputAggrMode inputAggrMode) { + this.functionName = functionName; + this.inputColumnVectorType = inputColumnVectorType; + this.inputAggrMode = inputAggrMode; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final VectorInputAggrKey other = (VectorInputAggrKey) obj; + return + functionName.equals(other.functionName) && + inputColumnVectorType == other.inputColumnVectorType && + inputAggrMode == other.inputAggrMode; + } + + @Override + public int hashCode() { + return 67 * (67 * functionName.hashCode() + + inputColumnVectorType.hashCode()) + inputAggrMode.hashCode(); + } + + @Override + public String toString() { + return "functionName " + functionName + + ", inputColumnVectorType " + inputColumnVectorType + + ", inputAggrMode " + inputAggrMode; + } + } + + private static VectorPrimitiveOutputAggrInfo countOriginalDataVectorHashOutputAggrInfo = + new VectorPrimitiveOutputAggrInfo( + AggregationFunction.COUNT_FUNC, + InputColVecTypeAggregation.COUNT); + + /* + * Map functionName, inputColumnVectorType + * to + * Original InputColVecTypeAggregation(s) and Merge InputColVecTypeAggregation + */ + private static Map vectorInputAggrToOutputMap = + new HashMap(); + static { + + // COUNT(column) + // + vectorInputAggrToOutputMap.put( + new VectorInputAggrKey("count", ColumnVector.Type.LONG, InputAggrMode.ORIGINAL_DATA), + countOriginalDataVectorHashOutputAggrInfo); + vectorInputAggrToOutputMap.put( + new VectorInputAggrKey("count", ColumnVector.Type.DOUBLE, InputAggrMode.ORIGINAL_DATA), + countOriginalDataVectorHashOutputAggrInfo); + // UNDONE: More... + + // LONG + // + vectorInputAggrToOutputMap.put( + new VectorInputAggrKey("min", ColumnVector.Type.LONG, InputAggrMode.ORIGINAL_DATA), + new VectorPrimitiveOutputAggrInfo( + AggregationFunction.MIN_FUNC, + InputColVecTypeAggregation.LONG_MIN)); + vectorInputAggrToOutputMap.put( + new VectorInputAggrKey("max", ColumnVector.Type.LONG, InputAggrMode.ORIGINAL_DATA), + new VectorPrimitiveOutputAggrInfo( + AggregationFunction.MAX_FUNC, + InputColVecTypeAggregation.LONG_MAX)); + vectorInputAggrToOutputMap.put( + new VectorInputAggrKey("sum", ColumnVector.Type.LONG, InputAggrMode.ORIGINAL_DATA), + new VectorPrimitiveOutputAggrInfo( + AggregationFunction.SUM_FUNC, + InputColVecTypeAggregation.LONG_SUM)); + vectorInputAggrToOutputMap.put( + new VectorInputAggrKey("avg", ColumnVector.Type.LONG, InputAggrMode.ORIGINAL_DATA), + new VectorHashOutputAggrInfo( + AggregationFunction.AVG_FUNC, + VectorOutputAggrKind.AVERAGE_DOUBLE)); + vectorInputAggrToOutputMap.put( + new VectorInputAggrKey("variance", ColumnVector.Type.LONG, InputAggrMode.ORIGINAL_DATA), + new VectorHashOutputAggrInfo( + AggregationFunction.VARIANCE_FUNC, + VectorOutputAggrKind.VARIANCE)); + + // DOUBLE + // + vectorInputAggrToOutputMap.put( + new VectorInputAggrKey("min", ColumnVector.Type.DOUBLE, InputAggrMode.ORIGINAL_DATA), + new VectorPrimitiveOutputAggrInfo( + AggregationFunction.MIN_FUNC, + InputColVecTypeAggregation.DOUBLE_MIN)); + vectorInputAggrToOutputMap.put( + new VectorInputAggrKey("max", ColumnVector.Type.DOUBLE, InputAggrMode.ORIGINAL_DATA), + new VectorPrimitiveOutputAggrInfo( + AggregationFunction.MAX_FUNC, + InputColVecTypeAggregation.DOUBLE_MAX)); + vectorInputAggrToOutputMap.put( + new VectorInputAggrKey("sum", ColumnVector.Type.DOUBLE, InputAggrMode.ORIGINAL_DATA), + new VectorPrimitiveOutputAggrInfo( + AggregationFunction.SUM_FUNC, + InputColVecTypeAggregation.DOUBLE_SUM)); + vectorInputAggrToOutputMap.put( + new VectorInputAggrKey("avg", ColumnVector.Type.DOUBLE, InputAggrMode.ORIGINAL_DATA), + new VectorHashOutputAggrInfo( + AggregationFunction.AVG_FUNC, + VectorOutputAggrKind.AVERAGE_DOUBLE)); + vectorInputAggrToOutputMap.put( + new VectorInputAggrKey("variance", ColumnVector.Type.DOUBLE, InputAggrMode.ORIGINAL_DATA), + new VectorHashOutputAggrInfo( + AggregationFunction.VARIANCE_FUNC, + VectorOutputAggrKind.VARIANCE)); + } + + private TypeInfo determineAggrOutputTypeInfo( + GroupByDesc.Mode groupByMode, + TypeInfo inputTypeInfo, + ColumnVector.Type inputColumnVectorType, + VectorHashOutputAggrInfo outputAggrInfo) { + + switch (outputAggrInfo.getAggregationFunction()) { + case COUNT_FUNC: + return TypeInfoFactory.longTypeInfo; + case MIN_FUNC: + case MAX_FUNC: + // Same as input type. + return inputTypeInfo; + case SUM_FUNC: + switch (inputColumnVectorType) { + case LONG: + // Largest integer. + return TypeInfoFactory.longTypeInfo; + case DOUBLE: + // Float/double can handle larger values -- so keep input type. + return inputTypeInfo; + default: + // UNDONE + return null; + } + case AVG_FUNC: + switch (inputColumnVectorType) { + case LONG: + case DOUBLE: + // Integers/Float/double produce double. + return + getAverageTypeInfo( + inputTypeInfo, + /* sumTypeInfo */ TypeInfoFactory.doubleTypeInfo, + groupByMode); + default: + // UNDONE + return null; + } + case VARIANCE_FUNC: + switch (inputColumnVectorType) { + case LONG: + case DOUBLE: + case DECIMAL: + case TIMESTAMP: + // Integers/Float/Double/Decimal/Timestamp produce double. + return getVarianceTypeInfo(groupByMode); + default: + // UNDONE + return null; + } + default: + // UNDONE + return null; + } + } + + private boolean determineVectorAggregationFunctionInfos( + GroupByDesc.Mode groupByMode, + List aggrDescs, + VectorizationContext vContext, + List vectorAggrFunctionInputExprList, + List vectorAggrFuncInfoList, + List aggregationFunctionIssues) throws HiveException { + + boolean sawCountStar = false; + final int size = aggrDescs.size(); + for (int funcNum = 0; funcNum < size; ++funcNum) { + AggregationDesc aggrDesc = aggrDescs.get(funcNum); + String functionName = aggrDesc.getGenericUDAFName().toLowerCase(); + ArrayList paramDescList = aggrDesc.getParameters(); + + int inputColumnNum = -1; + TypeInfo inputTypeInfo = null; + ColumnVector.Type inputColumnVectorType = ColumnVector.Type.NONE; + + VectorHashOutputAggrInfo outputAggrInfo = null; + + TypeInfo outputTypeInfo = null; + + boolean isCountStar = false; + final int paramCount = paramDescList.size(); + if (paramCount == 0) { + + if (functionName.equals("count")) { + + sawCountStar = true; + isCountStar = true; + outputAggrInfo = countOriginalDataVectorHashOutputAggrInfo; + outputTypeInfo = TypeInfoFactory.longTypeInfo; + + } else { + + aggregationFunctionIssues.add("Parameterless function not supported..."); + } + } else if (paramCount == 1) { + + ExprNodeDesc exprDesc = paramDescList.get(0); + + // The output of the input vectorization expression IS the input column number. + VectorExpression ve = + vContext.getVectorExpression(exprDesc, VectorExpressionDescriptor.Mode.PROJECTION); + inputColumnNum = ve.getOutputColumn(); + + inputTypeInfo = exprDesc.getTypeInfo(); + inputColumnVectorType = + VectorizationContext.getColumnVectorTypeFromTypeInfo(inputTypeInfo); + if (!IdentityExpression.isColumnOnly(ve)) { + vectorAggrFunctionInputExprList.add(ve); + } + + /* + * Map functionName, inputColumnVectorType + * to + * Original Data InputColVecTypeAggregation(s) and Merge InputColVecTypeAggregation + */ + // UNDONE: Only original data for now. + VectorInputAggrKey lookupKey = + new VectorInputAggrKey(functionName, inputColumnVectorType, InputAggrMode.ORIGINAL_DATA); + outputAggrInfo = vectorInputAggrToOutputMap.get(lookupKey); + if (outputAggrInfo == null) { + + // Cannot specialize this combination. + + aggregationFunctionIssues.add( + "Cannot specialize aggregation function " + functionName + + " on column vector type " + inputColumnVectorType.name()); + } else { + + // Based on the GroupBy Mode, input TypeInfo, and output aggregation info, determine + // the output TypeInfo. + outputTypeInfo = + determineAggrOutputTypeInfo( + groupByMode, + inputTypeInfo, + inputColumnVectorType, + outputAggrInfo); + } + + } else { + + aggregationFunctionIssues.add( + "Cannot specialize aggregation function " + functionName + + " that has more than 1 input parameter"); + } + + VectorAggregationFunctionInfo vectorAggrFuncInfo = + new VectorAggregationFunctionInfo( + funcNum, + functionName, + (outputAggrInfo != null ? outputAggrInfo.getAggregationFunction() : null), + isCountStar, + inputColumnNum, + inputTypeInfo, + inputColumnVectorType, + outputAggrInfo, + outputTypeInfo); + vectorAggrFuncInfoList.add(vectorAggrFuncInfo); + } + + return sawCountStar; + } + + static int fake = 0; + + private void determineCombining( + int[] groupByKeyColumnMap, + VectorAggregationFunctionInfo[] vectorAggrFuncInfos, + Map combineColumnAggrInfoMap) { + + final int size = vectorAggrFuncInfos.length; + for (int funcNum = 0; funcNum < size; funcNum++) { + VectorAggregationFunctionInfo vectorAggrFuncInfo = vectorAggrFuncInfos[funcNum]; + final int inputColumnNum = vectorAggrFuncInfo.getInputColumnNum(); + if (inputColumnNum == -1) { + + // COUNT(*) + Preconditions.checkState(vectorAggrFuncInfo.getAggregationFunction() == AggregationFunction.COUNT_FUNC); + } else { + VectorCombineColumnAggrInfo vecCombineColAggrInfo; + if (combineColumnAggrInfoMap.containsKey(inputColumnNum)) { + vecCombineColAggrInfo = combineColumnAggrInfoMap.get(inputColumnNum); + } else { + boolean isKey = false; + for (int i = 0; i < groupByKeyColumnMap.length; i++) { + if (groupByKeyColumnMap[i] == inputColumnNum) { + isKey = true; + break; + } + } + vecCombineColAggrInfo = + new VectorCombineColumnAggrInfo( + isKey, + inputColumnNum, + vectorAggrFuncInfo.getInputColumnVectorType()); + combineColumnAggrInfoMap.put(inputColumnNum, vecCombineColAggrInfo); + } + + // Add one or more aggregation on the column. + VectorHashOutputAggrInfo outputAggrInfo = vectorAggrFuncInfo.getOutputAggrInfo(); + if (outputAggrInfo == null) { + // UNDONE: How can it be null? + fake++; + } else { + vecCombineColAggrInfo.addCombineAggregations( + funcNum, outputAggrInfo); + } + } + } + + for (VectorCombineColumnAggrInfo combineColumnAggrInfo : combineColumnAggrInfoMap.values()) { + combineColumnAggrInfo.finish(); + } + } + + private boolean determineGroupByKeyInfo( + List keysDescs, + VectorExpression[] allKeyExpressions, + int[] groupByKeyColumnMap, + TypeInfo[] groupByKeyTypeInfos, + ColumnVector.Type[] groupByKeyColumnVectorTypes, + List groupByKeyExpressionsList) { + ColumnVector.Type columnVectorType; + boolean keysAreAllFixedLength = true; // Assume. + for (int i = 0; i < groupByKeyColumnMap.length; i++) { + VectorExpression ve = allKeyExpressions[i]; + groupByKeyColumnMap[i] = ve.getOutputColumn(); + groupByKeyTypeInfos[i] = keysDescs.get(i).getTypeInfo(); + columnVectorType = + VectorizationContext.getColumnVectorTypeFromTypeInfo(groupByKeyTypeInfos[i]); + + if (columnVectorType == ColumnVector.Type.BYTES) { + keysAreAllFixedLength = false; + } + + groupByKeyColumnVectorTypes[i] = columnVectorType; + if (!IdentityExpression.isColumnOnly(ve)) { + groupByKeyExpressionsList.add(ve); + } + } + return keysAreAllFixedLength; + } + + private boolean canSpecializeGroupBy(GroupByDesc desc, + boolean isTez, VectorizationContext vContext, + VectorGroupByInfo vectorGroupByInfo) throws HiveException { + + final boolean isVectorizationGroupByNativeEnabled = + HiveConf.getBoolVar(hiveConf, + HiveConf.ConfVars.HIVE_VECTORIZATION_GROUPBY_NATIVE_ENABLED); + + String engine = HiveConf.getVar(hiveConf, HiveConf.ConfVars.HIVE_EXECUTION_ENGINE); + + VectorGroupByDesc vectorDesc = (VectorGroupByDesc) desc.getVectorDesc(); + + List keyDescs = desc.getKeys(); + final boolean isEmptyKey = keyDescs.isEmpty(); + final int outputKeyLength = keyDescs.size(); + + GroupByDesc.Mode groupByMode = desc.getMode(); + ProcessingMode processingMode = vectorDesc.getProcessingMode(); + + // We are doing work here we'd normally do in VectorGroupByCommonOperator's constructor. + // So if we later decide not to specialize, we'll just waste any scratch columns allocated... + + VectorExpression[] allKeyExpressions = vContext.getVectorExpressions(keyDescs); + + // Since a key expression can be a calculation and the key will go into a scratch column, + // we need the mapping and type information. + int[] groupByKeyColumnMap = new int[allKeyExpressions.length]; + TypeInfo[] groupByKeyTypeInfos = new TypeInfo[allKeyExpressions.length]; + ColumnVector.Type[] groupByKeyColumnVectorTypes = new Type[allKeyExpressions.length]; + List groupByKeyExpressionsList = new ArrayList(); + boolean keysAreAllFixedLength = + determineGroupByKeyInfo( + keyDescs, + allKeyExpressions, + groupByKeyColumnMap, + groupByKeyTypeInfos, + groupByKeyColumnVectorTypes, + groupByKeyExpressionsList); + VectorExpression[] groupByKeyExpressions; + if (groupByKeyExpressionsList.size() == 0) { + groupByKeyExpressions = null; + } else { + groupByKeyExpressions = groupByKeyExpressionsList.toArray(new VectorExpression[0]); + } + + // By default, we can always use the multi-key class. + VectorGroupByInfo.HashTableKeyType hashTableKeyType = VectorGroupByInfo.HashTableKeyType.MULTI_KEY; + + // Look for single column specialization. + if (groupByKeyColumnVectorTypes.length == 1) { + switch (groupByKeyColumnVectorTypes[0]) { + case LONG: + hashTableKeyType = VectorGroupByInfo.HashTableKeyType.LONG; + break; + case BYTES: + hashTableKeyType = VectorGroupByInfo.HashTableKeyType.STRING; + default: + // Stay with multi-key. + break; + } + } + + // TEMPORARY: Restriction + boolean isOneLongKey = (groupByKeyColumnVectorTypes.length == 1 && + hashTableKeyType == VectorGroupByInfo.HashTableKeyType.LONG); + + List aggrDescs = desc.getAggregators(); + boolean isEmptyAggregations = aggrDescs.isEmpty(); + + List vectorAggrFunctionInputExprList = + new ArrayList(); + + List vectorAggrFuncInfoList = + new ArrayList(); + List vectorizationIssueList = new ArrayList(); + + final boolean hasCountStar = + determineVectorAggregationFunctionInfos( + groupByMode, + aggrDescs, + vContext, + vectorAggrFunctionInputExprList, // Any vector input param expr (except plain col). + vectorAggrFuncInfoList, // Vector aggregation info on each function. + vectorizationIssueList); // Any vectorization issues for functions. + + VectorExpression[] vectorAggrFunctionInputExpressions; + if (vectorAggrFunctionInputExprList.size() == 0) { + vectorAggrFunctionInputExpressions = null; + } else { + vectorAggrFunctionInputExpressions = + vectorAggrFunctionInputExprList.toArray(new VectorExpression[0]); + } + + VectorAggregationFunctionInfo[] vectorAggrFuncInfos = vectorAggrFuncInfoList.toArray(new VectorAggregationFunctionInfo[0]); + + SingleCountAggreationKind singleCountAggreationKind = SingleCountAggreationKind.NONE; + RuntimeHashAggregationElementInfo hashAggregationElementInfo = null; + + // TEMPORARY: Restriction + boolean isOneLongKeyMaxColumnsExceeded = false; + + // TEMPORARY: Restriction + boolean isOnlyLongColumnAggregations = true; + + final boolean hasSingleCountAggregation; + if (vectorAggrFuncInfoList.size() == 1 && vectorAggrFuncInfoList.get(0).getFunctionName().equals("count")) { + + // Single COUNT aggregation. Specialize by storing key and count in hash table without a + // hash element. + + hasSingleCountAggregation = true; + + VectorAggregationFunctionInfo countFuncInfo = vectorAggrFuncInfoList.get(0); + if (hasCountStar) { + singleCountAggreationKind = SingleCountAggreationKind.COUNT_STAR; + } else { + final int inputColumnNum = countFuncInfo.getInputColumnNum(); + boolean isKey = false; + for (int i = 0; i < groupByKeyColumnMap.length; i++) { + if (groupByKeyColumnMap[i] == inputColumnNum) { + isKey = true; + break; + } + } + singleCountAggreationKind = + (isKey ? SingleCountAggreationKind.COUNT_KEY : SingleCountAggreationKind.COUNT_COLUMN); + } + + } else { + + hasSingleCountAggregation = false; + + // For HASH and COMPLETE, determine Combine aggregation mapping. + // + Map combineColumnAggrInfoMap = null; + switch (groupByMode) { + case HASH: + case COMPLETE: + { + + // Data structures for Combining. + + // Order by input column number. + combineColumnAggrInfoMap = new TreeMap(); + determineCombining( + groupByKeyColumnMap, + vectorAggrFuncInfos, + combineColumnAggrInfoMap); + + if (groupByMode == GroupByDesc.Mode.HASH) { + + if (combineColumnAggrInfoMap.size() > VectorGroupByAggrColHashBase.ONE_LONG_KEY_MAX_COLUMN_COUNT) { + isOneLongKeyMaxColumnsExceeded = true; + } else { + hashAggregationElementInfo = + VectorGroupByInfo.determineRuntimeHashAggregationInfo( + vectorAggrFuncInfos, + combineColumnAggrInfoMap, + hasCountStar); + for (VectorAggregationFunctionInfo funcInfo : vectorAggrFuncInfos) { + if (funcInfo.getInputColumnVectorType() != ColumnVector.Type.LONG) { + isOnlyLongColumnAggregations = false; + break; + } + } + } + + } else { + vectorizationIssueList.add("COMPLETE mode not supported"); + } + } + break; + case PARTIAL1: + case PARTIAL2: + case PARTIALS: + vectorizationIssueList.add("PARTIAL1/PARTIAL2/PARTIALS mode not supported"); + break; + case FINAL: + case MERGEPARTIAL: + vectorizationIssueList.add("MERGEPARTIAL/FINAL mode not supported"); + break; + default: + throw new RuntimeException("Unexpected GroupBy mode " + groupByMode); + } + } + + vectorGroupByInfo.setIsVectorizationGroupByNativeEnabled(isVectorizationGroupByNativeEnabled); + vectorGroupByInfo.setEngine(engine); + + // UNDONE: Temporary restrictions... + vectorGroupByInfo.setIsEmptyKey(isEmptyKey); + vectorGroupByInfo.setIsOneLongKey(isOneLongKey); + vectorGroupByInfo.setIsOneLongKeyMaxColumnsExceeded(isOneLongKeyMaxColumnsExceeded); + vectorGroupByInfo.setIsEmptyAggregations(isEmptyAggregations); + vectorGroupByInfo.setIsOnlyLongColumnAggregations(isOnlyLongColumnAggregations); + + vectorGroupByInfo.setVectorizationIssueList(vectorizationIssueList); + + vectorGroupByInfo.setHasSingleCountAggregation(hasSingleCountAggregation); + vectorGroupByInfo.setSingleCountAggreationKind(singleCountAggreationKind); + + vectorGroupByInfo.setKeysAreAllFixedLength(keysAreAllFixedLength); + + vectorGroupByInfo.setGroupByKeyColumnMap(groupByKeyColumnMap); + vectorGroupByInfo.setGroupByKeyTypeInfos(groupByKeyTypeInfos); + vectorGroupByInfo.setGroupByKeyColumnVectorTypes(groupByKeyColumnVectorTypes); + vectorGroupByInfo.setGroupByKeyExpressions(groupByKeyExpressions); + + vectorGroupByInfo.setHashTableKeyType(hashTableKeyType); + + vectorGroupByInfo.setVectorAggregationFunctionInfos(vectorAggrFuncInfos); + + if (vectorAggrFunctionInputExprList.size() > 0) { + VectorExpression[] aggregationFunctionInputExpressions = vectorAggrFunctionInputExprList.toArray(new VectorExpression[0]); + vectorGroupByInfo.setAggregationFunctionInputExpressions(aggregationFunctionInputExpressions); + } + + vectorGroupByInfo.setRuntimeHashAggregateInfo(hashAggregationElementInfo); + + // So EXPLAIN VECTORIZATION can show native conditions, etc. + vectorDesc.setVectorGroupByInfo(vectorGroupByInfo); + + if (!isVectorizationGroupByNativeEnabled || + isEmptyKey || + !isOneLongKey || + (!hasSingleCountAggregation && isOneLongKeyMaxColumnsExceeded) || + isEmptyAggregations || + !isOnlyLongColumnAggregations || + groupByMode != GroupByDesc.Mode.HASH || + vectorizationIssueList.size() > 0) { + return false; + } + + return true; + } + private Operator specializeReduceSinkOperator( Operator op, VectorizationContext vContext, ReduceSinkDesc desc, VectorReduceSinkInfo vectorReduceSinkInfo) throws HiveException { @@ -3719,12 +4516,8 @@ private boolean usesVectorUDFAdaptor(VectorExpression[] vecExprs) { filterOp.getCompilationOpContext(), filterDesc, vContext); } - /* - * NOTE: The VectorGroupByDesc has already been allocated and partially populated. - */ - public static Operator vectorizeGroupByOperator( - Operator groupByOp, VectorizationContext vContext) - throws HiveException { + private static void fillInVectorGroupByDesc(Operator groupByOp, + VectorizationContext vContext) throws HiveException { GroupByDesc groupByDesc = (GroupByDesc) groupByOp.getConf(); List keysDesc = groupByDesc.getKeys(); VectorExpression[] vecKeyExpressions = vContext.getVectorExpressions(keysDesc); @@ -3743,6 +4536,18 @@ private boolean usesVectorUDFAdaptor(VectorExpression[] vecExprs) { vectorGroupByDesc.setKeyExpressions(vecKeyExpressions); vectorGroupByDesc.setAggregators(vecAggregators); vectorGroupByDesc.setProjectedOutputColumns(projectedOutputColumns); + } + + /* + * UNDONE: Get rid of this? + * NOTE: The VectorGroupByDesc has already been allocated and partially populated. + */ + public static Operator vectorizeGroupByOperator( + Operator groupByOp, VectorizationContext vContext) + throws HiveException { + fillInVectorGroupByDesc(groupByOp, vContext); + + GroupByDesc groupByDesc = (GroupByDesc) groupByOp.getConf(); return OperatorFactory.getVectorOperator( groupByOp.getCompilationOpContext(), groupByDesc, vContext); } @@ -4119,11 +4924,11 @@ private static VectorPTFInfo createVectorPTFInfo(Operator> opClass = null; - + // *NON-NATIVE* vector map differences for LEFT OUTER JOIN and Filtered... List bigTableFilters = desc.getFilters().get((byte) desc.getPosBigTable()); @@ -4138,14 +4943,14 @@ private static VectorPTFInfo createVectorPTFInfo(Operator vectorizableGroupByNativeEngines = + new LinkedHashSet(Arrays.asList("tez", "spark")); + public class GroupByOperatorExplainVectorization extends OperatorExplainVectorization { private final GroupByDesc groupByDesc; private final VectorGroupByDesc vectorGroupByDesc; + private final VectorGroupByInfo vectorGroupByInfo; + + private VectorizationCondition[] nativeConditions; public GroupByOperatorExplainVectorization(GroupByDesc groupByDesc, VectorDesc vectorDesc) { - // Native vectorization not supported. - super(vectorDesc, false); + super(vectorDesc, ((VectorGroupByDesc) vectorDesc).isNative()); this.groupByDesc = groupByDesc; vectorGroupByDesc = (VectorGroupByDesc) vectorDesc; + vectorGroupByInfo = vectorGroupByDesc.getVectorGroupByInfo(); } @Explain(vectorization = Vectorization.EXPRESSION, displayName = "keyExpressions", explainLevels = { Level.DEFAULT, Level.EXTENDED }) @@ -340,6 +361,9 @@ public GroupByOperatorExplainVectorization(GroupByDesc groupByDesc, VectorDesc v @Explain(vectorization = Vectorization.EXPRESSION, displayName = "aggregators", explainLevels = { Level.DEFAULT, Level.EXTENDED }) public List getAggregators() { + if (isNative) { + return null; + } VectorAggregateExpression[] vecAggregators = vectorGroupByDesc.getAggregators(); List vecAggrList = new ArrayList(vecAggregators.length); for (VectorAggregateExpression vecAggr : vecAggregators) { @@ -392,10 +416,247 @@ public String getGroupByMode() { return results; } - @Explain(vectorization = Vectorization.EXPRESSION, displayName = "projectedOutputColumns", explainLevels = { Level.DEFAULT, Level.EXTENDED }) + @Explain(vectorization = Vectorization.DETAIL, displayName = "projectedOutputColumns", explainLevels = { Level.DEFAULT, Level.EXTENDED }) public String getProjectedOutputColumns() { return Arrays.toString(vectorGroupByDesc.getProjectedOutputColumns()); } + + private VectorizationCondition[] createNativeConditions() { + + boolean enabled = vectorGroupByInfo.getIsVectorizationGroupByNativeEnabled(); + + String engine = vectorGroupByInfo.getEngine(); + String engineInSupportedCondName = + HiveConf.ConfVars.HIVE_EXECUTION_ENGINE.varname + " " + engine + " IN " + vectorizableGroupByNativeEngines; + boolean engineInSupported = vectorizableGroupByNativeEngines.contains(engine); + + final List vectorizationIssueList = vectorGroupByInfo.getVectorizationIssueList(); + + List conditionList = new ArrayList(); + conditionList.add( + new VectorizationCondition( + enabled, + HiveConf.ConfVars.HIVE_VECTORIZATION_GROUPBY_NATIVE_ENABLED.varname)); + conditionList.add( + new VectorizationCondition( + engineInSupported, + engineInSupportedCondName)); + conditionList.add( + new VectorizationCondition( + !vectorGroupByInfo.getIsEmptyKey(), + "NOT Empty Key")); + conditionList.add( + new VectorizationCondition( + vectorGroupByInfo.getIsOneLongKey(), + "One Long Key")); + conditionList.add( + new VectorizationCondition( + vectorGroupByInfo.getIsOnlyLongColumnAggregations(), + "Only Long Aggregation Columns")); + conditionList.add( + new VectorizationCondition( + !vectorGroupByInfo.getIsOneLongKeyMaxColumnsExceeded(), + "NOT One Long Key Max Columns Exceeded")); + conditionList.add( + new VectorizationCondition( + !vectorGroupByInfo.getIsEmptyAggregations(), + "NOT Empty Aggregations")); + conditionList.add( + new VectorizationCondition( + (vectorizationIssueList.size() == 0), + "Can Specialize GroupBy issues " + + vectorizationIssueList.toString() + " empty")); + + VectorizationCondition[] conditions = + conditionList.toArray(new VectorizationCondition[0]); + + return conditions; + } + + @Explain(vectorization = Vectorization.OPERATOR, displayName = "nativeConditionsMet", explainLevels = { Level.DEFAULT, Level.EXTENDED }) + public List getNativeConditionsMet() { + if (nativeConditions == null) { + nativeConditions = createNativeConditions(); + } + return VectorizationCondition.getConditionsMet(nativeConditions); + } + + @Explain(vectorization = Vectorization.OPERATOR, displayName = "nativeConditionsNotMet", explainLevels = { Level.DEFAULT, Level.EXTENDED }) + public List getNativeConditionsNotMet() { + if (nativeConditions == null) { + nativeConditions = createNativeConditions(); + } + return VectorizationCondition.getConditionsNotMet(nativeConditions); + } + + @Explain(vectorization = Vectorization.DETAIL, displayName = "singleCountAggreation", explainLevels = { Level.DEFAULT, Level.EXTENDED }) + public String getSingleCountAggreation() { + if (!isNative) { + return null; + } + final SingleCountAggreationKind singleCountAggreationKind = vectorGroupByInfo.getSingleCountAggreationKind(); + if (singleCountAggreationKind == SingleCountAggreationKind.NONE) { + return null; + } + return singleCountAggreationKind.name(); + } + + @Explain(vectorization = Vectorization.DETAIL, displayName = "hashAggregationElementInfo", explainLevels = { Level.DEFAULT, Level.EXTENDED }) + public String getRuntimeHashAggregateInfo() throws HiveException { + + RuntimeHashAggregationElementInfo hashAggregationElementInfo = + vectorGroupByInfo.getRuntimeHashAggregateInfo(); + if (hashAggregationElementInfo == null) { + return null; + } + + final int keyOffset = hashAggregationElementInfo.getKeyOffset(); + final int aggregationBaseOffset = hashAggregationElementInfo.getAggregationBaseOffset(); + final int hashEleFixedLongLength = hashAggregationElementInfo.getHashEleFixedLongLength(); + + StringBuilder sb = new StringBuilder(); + sb.append("keyOffset "); + sb.append(keyOffset); + sb.append(", aggrBaseOffset "); + sb.append(aggregationBaseOffset); + sb.append(", hashEleFixedLongLength "); + sb.append(hashEleFixedLongLength); + return sb.toString(); + } + + @Explain(vectorization = Vectorization.DETAIL, displayName = "runtimeHashAggregateColumns", explainLevels = { Level.DEFAULT, Level.EXTENDED }) + public String getRuntimeHashAggregateColumns() throws HiveException { + + RuntimeHashAggregationElementInfo hashAggregationElementInfo = + vectorGroupByInfo.getRuntimeHashAggregateInfo(); + if (hashAggregationElementInfo == null) { + return null; + } + RuntimeHashAggregationColumnInfo[] runtimeHashAggregateColumns = + hashAggregationElementInfo.getRuntimeColumnAggregationColumns(); + + ProcessingMode processingMode = vectorGroupByDesc.getProcessingMode(); + + StringBuilder sb = new StringBuilder(); + + sb.append("{"); + boolean isFirst = true; + for (RuntimeHashAggregationColumnInfo runtimeHashAggregateColumn : runtimeHashAggregateColumns) { + if (isFirst) { + isFirst = false; + } else { + sb.append("; "); + } + int columnNum = runtimeHashAggregateColumn.getInputColumnNum(); + sb.append("col "); + sb.append(columnNum); + sb.append(", aggrClass: "); + + switch (processingMode) { + case HASH: + { + VectorGroupByAggrColHashBase hashAggregateColumn = + VectorGroupByAggrColHashBase.createHashAggregateColumn( + runtimeHashAggregateColumn, /* longs */ null); + if (hashAggregateColumn == null) { + sb.append("none"); + } else { + sb.append(hashAggregateColumn.getClass().getSimpleName()); + sb.append(", hasValueOffset "); + sb.append(hashAggregateColumn.getHasValueOffset()); + sb.append(", hasValueMask 0x"); + sb.append(Long.toHexString(hashAggregateColumn.getHasValueMask())); + sb.append(", firstAggrOffset "); + sb.append(hashAggregateColumn.getFirstAggregationOffset()); + } + } + break; + default: + sb.append("undone"); + /* + // UNDONE... + { + Class columnAggregationClass = + VectorGroupByInfo.getAggrStreamingClass(colAggrInfo); + if (columnAggregationClass == null) { + sb.append("none"); + } else { + sb.append(columnAggregationClass.getSimpleName()); + } + } + */ + break; + } + } + sb.append("}"); + return sb.toString(); + } + + + @Explain(vectorization = Vectorization.DETAIL, displayName = "runtimeHashAggrOutputInfos", explainLevels = { Level.DEFAULT, Level.EXTENDED }) + public String getRuntimeHashAggrOutputInfos() throws HiveException { + + RuntimeHashAggregationElementInfo hashAggregationElementInfo = + vectorGroupByInfo.getRuntimeHashAggregateInfo(); + if (hashAggregationElementInfo == null) { + return null; + } + + RuntimeHashAggregationOutputInfo[] hashAggregationOutputInfos = + hashAggregationElementInfo.getRuntimeAggrOutputInfos(); + + StringBuilder sb = new StringBuilder(); + int funcNum = 0; + sb.append("{"); + for (RuntimeHashAggregationOutputInfo runtimeAggrOutputInfo : hashAggregationOutputInfos) { + if (sb.length() > 1) { + sb.append(", "); + } + sb.append(runtimeAggrOutputInfo.getAggregationFunction()); + sb.append(":"); + sb.append(funcNum++); + VectorOutputAggrKind vectorOutputAggrKind = runtimeAggrOutputInfo.getOutputAggrKind(); + sb.append(", "); + sb.append(vectorOutputAggrKind); + switch (vectorOutputAggrKind) { + case PRIMITIVE: + { + RuntimeHashAggrPrimitiveOutputInfo runtimeHashAggrPrimitiveOutputInfo = (RuntimeHashAggrPrimitiveOutputInfo) runtimeAggrOutputInfo; + sb.append(", "); + sb.append(runtimeHashAggrPrimitiveOutputInfo.getOutputColumnVectorType()); + sb.append(", aggrOffset: "); + sb.append(runtimeHashAggrPrimitiveOutputInfo.getPrimitiveAggregationOffset()); + } + break; + case AVERAGE_DOUBLE: + { + RuntimeHashAggrAverageDoubleOutputInfo runtimeHashAggrAverageDoubleOutputInfo = + (RuntimeHashAggrAverageDoubleOutputInfo) runtimeAggrOutputInfo; + sb.append(", countAggrOffset: "); + sb.append(runtimeHashAggrAverageDoubleOutputInfo.getCountAggregationOffset()); + sb.append(", sumAggrOffset: "); + sb.append(runtimeHashAggrAverageDoubleOutputInfo.getSumAggregationOffset()); + } + break; + case VARIANCE: + { + RuntimeHashAggrVarianceOutputInfo runtimeHashAggrVarianceOutputInfo = + (RuntimeHashAggrVarianceOutputInfo) runtimeAggrOutputInfo; + sb.append(", countAggrOffset: "); + sb.append(runtimeHashAggrVarianceOutputInfo.getCountAggregationOffset()); + sb.append(", sumAggrOffset: "); + sb.append(runtimeHashAggrVarianceOutputInfo.getSumAggregationOffset()); + sb.append(", varianceAggrOffset: "); + sb.append(runtimeHashAggrVarianceOutputInfo.getVarianceAggregationOffset()); + } + break; + default: + // UNDONE + } + } + sb.append("}"); + return sb.toString(); + } } @Explain(vectorization = Vectorization.OPERATOR, displayName = "Group By Vectorization", explainLevels = { Level.DEFAULT, Level.EXTENDED }) diff --git ql/src/java/org/apache/hadoop/hive/ql/plan/VectorGroupByDesc.java ql/src/java/org/apache/hadoop/hive/ql/plan/VectorGroupByDesc.java index 89d868d..bb9fab4 100644 --- ql/src/java/org/apache/hadoop/hive/ql/plan/VectorGroupByDesc.java +++ ql/src/java/org/apache/hadoop/hive/ql/plan/VectorGroupByDesc.java @@ -68,9 +68,13 @@ private boolean isVectorizationComplexTypesEnabled; private boolean isVectorizationGroupByComplexTypesEnabled; + private boolean isNative; + private VectorGroupByInfo vectorGroupByInfo; + public VectorGroupByDesc() { - this.processingMode = ProcessingMode.NONE; - this.isVectorOutput = false; + processingMode = ProcessingMode.NONE; + isVectorOutput = false; + isNative = false; } public void setProcessingMode(ProcessingMode processingMode) { @@ -84,6 +88,14 @@ public boolean isVectorOutput() { return isVectorOutput; } + public void setIsNative(boolean isNative) { + this.isNative = isNative; + } + + public boolean isNative() { + return isNative; + } + public void setVectorOutput(boolean isVectorOutput) { this.isVectorOutput = isVectorOutput; } @@ -128,6 +140,14 @@ public boolean getIsVectorizationGroupByComplexTypesEnabled() { return isVectorizationGroupByComplexTypesEnabled; } + public void setVectorGroupByInfo(VectorGroupByInfo vectorGroupByInfo) { + this.vectorGroupByInfo = vectorGroupByInfo; + } + + public VectorGroupByInfo getVectorGroupByInfo() { + return vectorGroupByInfo; + } + /** * Which ProcessingMode for VectorGroupByOperator? * diff --git ql/src/java/org/apache/hadoop/hive/ql/plan/VectorGroupByInfo.java ql/src/java/org/apache/hadoop/hive/ql/plan/VectorGroupByInfo.java new file mode 100644 index 0000000..e3b42d6 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/plan/VectorGroupByInfo.java @@ -0,0 +1,1292 @@ +/** + * 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.plan; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; + +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.ColumnVector.Type; +import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext; +import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColBase; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColHashBase; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.VectorGroupByAggrColStreamingBase; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen.VectorGroupByAggrColHash; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen.VectorGroupByAggrHashKeyLongColMap; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen.VectorGroupByAggrStreamingKeyLongColMap; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.VectorGroupByInfo.VectorHashOutputAggrInfo.VectorOutputAggrKind; +import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; + +import com.google.common.base.Preconditions; + +import org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil; + +/** + * VectorGroupByAggregrationInfo. + * + * A convenience data structure that has information needed to vectorize group by. + * + * It is created by the Vectorizer when it is determining whether it can specialize so the + * information doesn't have to be recreated again and agains by the VectorGroupByOperator's + * constructors and later during execution. + */ +public class VectorGroupByInfo { + + private static long serialVersionUID = 1L; + + public static enum HashTableKeyType { + NONE, + LONG, + STRING, + MULTI_KEY + } + + /* + * This is the order in which the specialize aggregation classes will evaluate the aggregations. + * + * + * They are "simple: because several will be composed on output to form more complicated + * aggregations like AVG (e.g. it uses COUNT and SUM). + * + * We put DOUBLE_SUM and COUNT adjacent to DOUBLE_VARIANCE so it can use a #IF and compute + * DOUBLE_SUM, COUNT, and DOUBLE_VARIANCE together. + + For example: + + #IF DOUBLE_VARIANCE + + // (LONG_VARIANCE always includes LONG_SUM and COUNT). + double doubleSum = repeatedValue; + long previousCount = 1; + double variance = 0.0; + + // Skip first compute. + for (int v = 1; v < duplicateKeyCount; v++) { + doubleSum += value; + final long count = previousCount + 1; + ... + } + + longs[sumIndex] = Double.doubleToLongBits(doubleSum); + longs[countIndex] = previousCount; + longs[varianceIndex] = Double.doubleToLongBits(doubleVariance); + #ELSE + #IF DOUBLE_SUM + longs[aggregationBaseIndex + DOUBLE_SUM_OFFSET] = + Double.longBitsFromDouble(repeatedValue * duplicateKeyCount); + #ENDIF DOUBLE_SUM + #IF COUNT + longs[aggregationBaseIndex + COUNT_OFFSET] = duplicateKeyCount; + #ENDIF COUNT + #ENDIF LONG_VARIANCE + + */ + public enum GenVectorAggregation { + NONE ("None", 0), + COUNT ("Count", 1), + MIN ("Min", 2), + MAX ("Max", 4), + SUM ("Sum", 5), + VARIANCE ("Variance", 6); + + public final String string; + public final int order; + + public static final GenVectorAggregation[] genVectorAggregation = GenVectorAggregation.values(); + + GenVectorAggregation(String string, int order) { + this.string = string; + this.order = order; + } + } + + /* + * Input column aggregations supported for column vectors. + * + * Note: COUNT(*) -- which is PARTIAL1 or COMPLETE mode -- is not on a column but a (global) batch + * row counter. + */ + public enum InputColVecTypeAggregation { + + COUNT (GenVectorAggregation.COUNT, 0, ColumnVector.Type.NONE), // All types. + + LONG_MIN (GenVectorAggregation.MIN, 1, ColumnVector.Type.LONG), + LONG_MAX (GenVectorAggregation.MAX, 2, ColumnVector.Type.LONG), + LONG_SUM (GenVectorAggregation.SUM, 3, ColumnVector.Type.LONG), + + DOUBLE_MIN (GenVectorAggregation.MIN, 4, ColumnVector.Type.DOUBLE), + DOUBLE_MAX (GenVectorAggregation.MAX, 5, ColumnVector.Type.DOUBLE), + DOUBLE_SUM (GenVectorAggregation.SUM, 6, ColumnVector.Type.DOUBLE), + DOUBLE_VARIANCE (GenVectorAggregation.VARIANCE, 7, ColumnVector.Type.DOUBLE), + + DECIMAL_MIN (GenVectorAggregation.MIN, 8, ColumnVector.Type.DECIMAL), + DECIMAL_MAX (GenVectorAggregation.MAX, 9, ColumnVector.Type.DECIMAL), + DECIMAL_SUM (GenVectorAggregation.SUM, 10, ColumnVector.Type.DECIMAL), + DECIMAL_VARIANCE (GenVectorAggregation.VARIANCE, 11, ColumnVector.Type.DECIMAL), + + BYTES_MIN (GenVectorAggregation.MIN, 12, ColumnVector.Type.BYTES), + BYTES_MAX (GenVectorAggregation.MAX, 13, ColumnVector.Type.BYTES), + + TIMESTAMP_MIN (GenVectorAggregation.MIN, 14, ColumnVector.Type.TIMESTAMP), + TIMESTAMP_MAX (GenVectorAggregation.MAX, 15, ColumnVector.Type.TIMESTAMP), + TIMESTAMP_SUM (GenVectorAggregation.SUM, 16, ColumnVector.Type.TIMESTAMP), + TIMESTAMP_VARIANCE (GenVectorAggregation.VARIANCE, 17, ColumnVector.Type.TIMESTAMP), + + // Only PARTIAL2 and FINAL modes (i.e. Merge). They do not appear in combination and they + // will be handled by single classes. + COUNT_MERGE (GenVectorAggregation.NONE, 18, ColumnVector.Type.LONG), + AVERAGE_DOUBLE_MERGE (GenVectorAggregation.NONE, 19, ColumnVector.Type.STRUCT), + AVERAGE_DECIMAL_MERGE (GenVectorAggregation.NONE, 20, ColumnVector.Type.STRUCT), + VARIANCE_MERGE (GenVectorAggregation.NONE , 21, ColumnVector.Type.STRUCT); + + public final GenVectorAggregation genVectorAggregation; + public final String name; + public final int value; + public final int mask; + public final ColumnVector.Type columnVectorType; + + public static final InputColVecTypeAggregation[] simpleColVecTypeAggregationValues = + InputColVecTypeAggregation.values(); + + InputColVecTypeAggregation(GenVectorAggregation genVectorAggregation, int value, ColumnVector.Type columnVectorType) { + this.genVectorAggregation = genVectorAggregation; + String name; + if (columnVectorType == ColumnVector.Type.NONE) { + name = genVectorAggregation.string; + } else { + String columnVectorTypeName = columnVectorType.name(); + name = columnVectorTypeName.charAt(0) + columnVectorTypeName.substring(1).toLowerCase() + genVectorAggregation.string; + } + this.name = name; + this.value = value; + this.mask = 1 << value; + this.columnVectorType = columnVectorType; + } + } + + // The aggregation functions we currently support. + public enum AggregationFunction { + MIN_FUNC (0, "min", false), + MAX_FUNC (1, "max", false), + COUNT_FUNC (2, "count", false), + SUM_FUNC (3, "sum", false), + AVG_FUNC (4, "avg", true), + VARIANCE_FUNC (5, "variance", true); + + private final int value; + private final String name; + private final boolean isComplex; + + public static final AggregationFunction[] aggregationFunctionValues = + AggregationFunction.values(); + + AggregationFunction(int val, String name, boolean isComplex) { + this.value = val; + this.name = name; + this.isComplex = isComplex; + } + + public int getValue() { + return value; + } + public boolean getIsComplex() { + return isComplex; + } + + public static final Map nameToAggregationFunction = + new HashMap(); + static { + for (AggregationFunction aggrFunc : values()) { + nameToAggregationFunction.put(aggrFunc.name, aggrFunc); + } + } + } + + public enum SingleCountAggreationKind { + NONE, + COUNT_STAR, + COUNT_KEY, + COUNT_COLUMN + } + + private static class OrderInputColVecTypeAggregation implements Comparator { + + @Override + public int compare(InputColVecTypeAggregation o1, InputColVecTypeAggregation o2) { + return Integer.compare(o1.value, o2.value); + } + } + private static OrderInputColVecTypeAggregation orderInputColVecTypeAggregation = + new OrderInputColVecTypeAggregation(); + + /** + * Information on the aggregation(s) being done on a particular column. + * + * In vectorized group by, we can do one or more aggregations on a column in one pass during + * execution. + */ + public static class VectorCombineColumnAggrInfo { + + // Aggregation on a key can be trivial or easy, so we remember this information. + private final boolean isKey; + + private final int inputColumnNum; + + private final ColumnVector.Type inputColumnVectorType; + + private TreeSet inputColVecTypeAggregationOrderedSet; + + private Map inputColVecTypeAggrToCombineIndexMap; + private InputColVecTypeAggregation[] inputColVecTypeAggregations; + + private int mask; + + public VectorCombineColumnAggrInfo(boolean isKey, int inputColumnNum, + ColumnVector.Type inputColumnVectorType) { + this.isKey = isKey; + this.inputColumnNum = inputColumnNum; + this.inputColumnVectorType = inputColumnVectorType; + inputColVecTypeAggregationOrderedSet = + new TreeSet(orderInputColVecTypeAggregation); + + // Determined later by finish method. + inputColVecTypeAggrToCombineIndexMap = null; + inputColVecTypeAggregations = null; + mask = 0; + } + + public boolean getIsKey() { + return isKey; + } + + public int getInputColumnNum() { + return inputColumnNum; + } + + public ColumnVector.Type getInputColumnVectorType() { + return inputColumnVectorType; + } + + public void addCombineAggregations(int funcNum, VectorHashOutputAggrInfo outputAggrInfo) { + VectorOutputAggrKind vectorOutputAggrKind = outputAggrInfo.getOutputAggrKind(); + switch (vectorOutputAggrKind) { + case PRIMITIVE: + inputColVecTypeAggregationOrderedSet.add( + ((VectorPrimitiveOutputAggrInfo) outputAggrInfo).getPrimitiveInputColVecTypeAggregation()); + break; + case AVERAGE_DOUBLE: + inputColVecTypeAggregationOrderedSet.add( + InputColVecTypeAggregation.COUNT); + inputColVecTypeAggregationOrderedSet.add( + InputColVecTypeAggregation.DOUBLE_SUM); + break; + case AVERAGE_DECIMAL: + inputColVecTypeAggregationOrderedSet.add( + InputColVecTypeAggregation.COUNT); + inputColVecTypeAggregationOrderedSet.add( + InputColVecTypeAggregation.DECIMAL_SUM); + break; + case VARIANCE: + inputColVecTypeAggregationOrderedSet.add( + InputColVecTypeAggregation.COUNT); + inputColVecTypeAggregationOrderedSet.add( + InputColVecTypeAggregation.DOUBLE_SUM); + inputColVecTypeAggregationOrderedSet.add( + InputColVecTypeAggregation.DOUBLE_VARIANCE); + break; + default: + throw new RuntimeException("Unexpected output aggregation kind " + vectorOutputAggrKind); + } + } + + private int determineMask() { + int mask = 0; + for (InputColVecTypeAggregation inputColVecTypeAggr : inputColVecTypeAggregations) { + mask |= inputColVecTypeAggr.mask; + } + return mask; + } + + public void finish() { + + inputColVecTypeAggregations = + new InputColVecTypeAggregation[inputColVecTypeAggregationOrderedSet.size()]; + + inputColVecTypeAggrToCombineIndexMap = new HashMap(); + + int i = 0; + for (InputColVecTypeAggregation inputColVecTypeAggr : inputColVecTypeAggregationOrderedSet) { + inputColVecTypeAggrToCombineIndexMap.put(inputColVecTypeAggr, i); + inputColVecTypeAggregations[i++] = inputColVecTypeAggr; + } + inputColVecTypeAggregationOrderedSet = null; // Job complete. + mask = determineMask(); + } + + public Map getInputColVecTypeAggrToCombineIndexMap() { + return inputColVecTypeAggrToCombineIndexMap; + } + + public InputColVecTypeAggregation[] getInputColVecTypeAggregations() { + return inputColVecTypeAggregations; + } + + public int getMask() { + return mask; + } + + public int getCombineIndex(InputColVecTypeAggregation inputColVecTypeAggr) { + return inputColVecTypeAggrToCombineIndexMap.get(inputColVecTypeAggr); + } + + public String aggregationFunctionsToString() { + StringBuilder sb = new StringBuilder(); + boolean isFirst = true; + sb.append("{"); + for (InputColVecTypeAggregation inputColVecTypeAgg : inputColVecTypeAggregations) { + if (isFirst) { + isFirst = false; + } else { + sb.append(", "); + } + sb.append((inputColVecTypeAgg == null ? "NULL" : inputColVecTypeAgg.name)); + } + sb.append("}"); + return sb.toString(); + } + + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("isKey "); + sb.append(isKey); + sb.append(", aggregationFunctions: "); + sb.append(aggregationFunctionsToString()); + return sb.toString(); + } + } + + public static class VectorHashOutputAggrInfo { + + private static long serialVersionUID = 1L; + + public enum VectorOutputAggrKind { + PRIMITIVE, + AVERAGE_DOUBLE, + AVERAGE_DECIMAL, + VARIANCE; + } + + private final AggregationFunction aggregationFunction; + + private final VectorOutputAggrKind vectorOutputAggrKind; + + public VectorHashOutputAggrInfo( + AggregationFunction aggregationFunction, + VectorOutputAggrKind vectorOutputAggrKind) { + this.vectorOutputAggrKind = vectorOutputAggrKind; + this.aggregationFunction = aggregationFunction; + } + + public AggregationFunction getAggregationFunction() { + return aggregationFunction; + } + public VectorOutputAggrKind getOutputAggrKind() { + return vectorOutputAggrKind; + } + } + + public static class VectorPrimitiveOutputAggrInfo extends VectorHashOutputAggrInfo { + + private static long serialVersionUID = 1L; + + private final InputColVecTypeAggregation primitiveInputColVecTypeAggregation; + + public VectorPrimitiveOutputAggrInfo( + AggregationFunction aggregationFunction, + InputColVecTypeAggregation primitiveInputColVecTypeAggregation) { + super(aggregationFunction, VectorOutputAggrKind.PRIMITIVE); + this.primitiveInputColVecTypeAggregation = primitiveInputColVecTypeAggregation; + } + + public InputColVecTypeAggregation getPrimitiveInputColVecTypeAggregation() { + return primitiveInputColVecTypeAggregation; + } + } + + /** + * Information on each aggregation function being performed. + * + * It is the aggregation function output plus a reference to a column, which may be shared by + * other aggregation function outputs. + * + * If the column reference is null, it is COUNT(*). + */ + public static class VectorAggregationFunctionInfo { + + private final int funcNum; + + private final String functionName; + + private final AggregationFunction aggregationFunction; + + private final boolean isCountStar; + + private final int inputColumnNum; + + private final TypeInfo inputTypeInfo; + + private final ColumnVector.Type inputColumnVectorType; + + private final VectorHashOutputAggrInfo outputAggrInfo; + + private final TypeInfo outputTypeInfo; + + public VectorAggregationFunctionInfo( + int funcNum, + String functionName, + AggregationFunction aggregationFunction, + boolean isCountStar, + int inputColumnNum, + TypeInfo inputTypeInfo, + ColumnVector.Type inputColumnVectorType, + VectorHashOutputAggrInfo outputAggrInfo, + TypeInfo outputTypeInfo) { + this.funcNum = funcNum; + this.functionName = functionName; + this.aggregationFunction = aggregationFunction; + this.isCountStar = isCountStar; + this.inputColumnNum = inputColumnNum; + this.inputTypeInfo = inputTypeInfo; + this.inputColumnVectorType = inputColumnVectorType; + this.outputAggrInfo = outputAggrInfo; + this.outputTypeInfo = outputTypeInfo; + } + + public int getFuncNum() { + return funcNum; + } + + public String getFunctionName() { + return functionName; + } + + public AggregationFunction getAggregationFunction() { + return aggregationFunction; + } + + public boolean getIsCountStar() { + return isCountStar; + } + + public int getInputColumnNum() { + return inputColumnNum; + } + + public TypeInfo getInputTypeInfo() { + return inputTypeInfo; + } + + public ColumnVector.Type getInputColumnVectorType() { + return inputColumnVectorType; + } + + public VectorHashOutputAggrInfo getOutputAggrInfo() { + return outputAggrInfo; + } + + public TypeInfo getOutputTypeInfo() { + return outputTypeInfo; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(aggregationFunction.name); + // UNDONE + return sb.toString(); + } + } + + //--------------------------------------------------------------------------- + + // **** HASH SINGLE LONG AGGREGATION ***** + protected static Map> hashLongColMap = + new HashMap>(); + static { + + VectorGroupByAggrHashKeyLongColMap.fillMap(hashLongColMap); + } + + // **** STREAMING LONG AGGREGATION ***** + protected static Map> streamingLongColMap = + new HashMap>(); + static { + + VectorGroupByAggrStreamingKeyLongColMap.fillMap(streamingLongColMap); + } + + //--------------------------------------------------------------------------- + + /** + * Information on a hash aggregations for runtime usage. + */ + public static class RuntimeHashAggregationElementInfo { + + private final RuntimeHashAggregationColumnInfo[] runtimeColumnAggregationColumns; + private final RuntimeHashAggregationOutputInfo[] hashAggregationOutputInfos; + + private final int keyOffset; + private final int aggregationBaseOffset; + private final int hashEleFixedLongLength; + + public RuntimeHashAggregationElementInfo( + RuntimeHashAggregationColumnInfo[] runtimeColumnAggregationColumns, + RuntimeHashAggregationOutputInfo[] hashAggregationOutputInfos, + int keyOffset, + int aggregationBaseOffset, + int hashEleFixedLongLength) { + this.runtimeColumnAggregationColumns = runtimeColumnAggregationColumns; + this.hashAggregationOutputInfos = hashAggregationOutputInfos; + this.keyOffset = keyOffset; + this.aggregationBaseOffset = aggregationBaseOffset; + this.hashEleFixedLongLength = hashEleFixedLongLength; + } + + public RuntimeHashAggregationColumnInfo[] getRuntimeColumnAggregationColumns() { + return runtimeColumnAggregationColumns; + } + + public RuntimeHashAggregationOutputInfo[] getRuntimeAggrOutputInfos() { + return hashAggregationOutputInfos; + } + + public int getKeyOffset() { + return keyOffset; + } + + public int getAggregationBaseOffset() { + return aggregationBaseOffset; + } + + public int getHashEleFixedLongLength() { + return hashEleFixedLongLength; + } + + @Override + public String toString() { + + StringBuilder sb = new StringBuilder(); + sb.append("keyOffset "); + sb.append(keyOffset); + sb.append(", aggrBaseOffset "); + sb.append(aggregationBaseOffset); + sb.append(", hashEleFixedLongLength "); + sb.append(hashEleFixedLongLength); + return sb.toString(); + } + } + + /** + * Information on a hash aggregate columns we generate during for runtime usage. + */ + public static class RuntimeHashAggregationColumnInfo { + + private final int inputColumnNum; + + private final ColumnVector.Type inputColumnVectorType; + + private final Class hashAggregateColumnClass; + + private final InputColVecTypeAggregation[] inputColVecTypeAggregations; + + private final int hasValueOffset; + private final long hasValueMask; + + private final long groupingSetsIdMask; + + private int keyOffset; + + private final int[] aggregationOffsets; + + public RuntimeHashAggregationColumnInfo( + int inputColumnNum, + ColumnVector.Type inputColumnVectorType, + Class hashAggregateColumnClass, + InputColVecTypeAggregation[] inputColVecTypeAggregations, + int hasValueOffset, + long hasValueMask, + long groupingSetsIdMask, + int keyOffset, + int[] aggregationOffsets) { + this.inputColumnNum = inputColumnNum; + this.inputColumnVectorType = inputColumnVectorType; + this.hashAggregateColumnClass = hashAggregateColumnClass; + this.inputColVecTypeAggregations = inputColVecTypeAggregations; + this.hasValueOffset = hasValueOffset; + this.hasValueMask = hasValueMask; + this.groupingSetsIdMask = groupingSetsIdMask; + this.keyOffset = keyOffset; + this.aggregationOffsets = aggregationOffsets; + } + + public int getInputColumnNum() { + return inputColumnNum; + } + + public ColumnVector.Type getInputColumnVectorType() { + return inputColumnVectorType; + } + + public Class getHashAggregateColumnClass() { + return hashAggregateColumnClass; + } + + public InputColVecTypeAggregation[] getInputColVecTypeAggregations() { + return inputColVecTypeAggregations; + } + + public int getHasValueOffset() { + return hasValueOffset; + } + + public long getHasValueMask() { + return hasValueMask; + } + + public long getGroupingSetsIdMask() { + return groupingSetsIdMask; + } + + public int getKeyOffset() { + return keyOffset; + } + + public int[] getAggregationOffsets() { + return aggregationOffsets; + } + + @Override + public String toString() { + + StringBuilder sb = new StringBuilder(); + + sb.append("inputColumnNum "); + sb.append(inputColumnNum); + sb.append(", inputColumnVectorType "); + sb.append(inputColumnVectorType); + sb.append(", hashAggregateColumnClass "); + sb.append(hashAggregateColumnClass.getSimpleName()); + sb.append(", inputColVecTypeAggregations "); + sb.append(Arrays.toString(inputColVecTypeAggregations)); + sb.append(", hasValueOffset "); + sb.append(hasValueOffset); + sb.append(", hasValueMask "); + sb.append(hasValueMask); + sb.append(", keyOffset "); + sb.append(keyOffset); + sb.append(", aggregationOffsets "); + sb.append(Arrays.toString(aggregationOffsets)); + + return sb.toString(); + } + } + + public static class RuntimeHashAggregationOutputInfo { + + private final AggregationFunction aggregationFunction; + private final VectorOutputAggrKind vectorOutputAggrKind; + private final int hasValueOffset; + private final long hasValueMask; + + public RuntimeHashAggregationOutputInfo( + AggregationFunction aggregationFunction, + VectorOutputAggrKind vectorOutputAggrKind, + int hasValueOffset, + long hasValueMask) { + this.aggregationFunction = aggregationFunction; + this.vectorOutputAggrKind = vectorOutputAggrKind; + this.hasValueOffset = hasValueOffset; + this.hasValueMask = hasValueMask; + } + + public AggregationFunction getAggregationFunction() { + return aggregationFunction; + } + + public VectorOutputAggrKind getOutputAggrKind() { + return vectorOutputAggrKind; + } + + public int getHasValueOffset() { + return hasValueOffset; + } + + public long getHasValueMask() { + return hasValueMask; + } + } + + public static class RuntimeHashAggrPrimitiveOutputInfo extends RuntimeHashAggregationOutputInfo { + + private final ColumnVector.Type outputColumnVectorType; + private final int primitiveAggregationOffset; + + public RuntimeHashAggrPrimitiveOutputInfo( + AggregationFunction aggregationFunction, + VectorOutputAggrKind vectorOutputAggrKind, + int hasValueOffset, + long hasValueMask, + ColumnVector.Type outputColumnVectorType, + int primitiveAggregationOffset) { + super(aggregationFunction, vectorOutputAggrKind, hasValueOffset, hasValueMask); + this.outputColumnVectorType = outputColumnVectorType; + this.primitiveAggregationOffset = primitiveAggregationOffset; + } + + public ColumnVector.Type getOutputColumnVectorType() { + return outputColumnVectorType; + } + public int getPrimitiveAggregationOffset() { + return primitiveAggregationOffset; + } + } + + public static class RuntimeHashAggrAverageDoubleOutputInfo extends RuntimeHashAggregationOutputInfo { + + protected final int countAggregationOffset; + protected final int sumAggregationOffset; + + public RuntimeHashAggrAverageDoubleOutputInfo( + AggregationFunction aggregationFunction, + VectorOutputAggrKind vectorOutputAggrKind, + int hasValueOffset, + long hasValueMask, + int countAggregationOffset, + int sumAggregationOffset) { + super(aggregationFunction, vectorOutputAggrKind, hasValueOffset, hasValueMask); + this.countAggregationOffset = countAggregationOffset; + this.sumAggregationOffset = sumAggregationOffset; + } + + public int getCountAggregationOffset() { + return countAggregationOffset; + } + public int getSumAggregationOffset() { + return sumAggregationOffset; + } + } + + public static class RuntimeHashAggrVarianceOutputInfo extends RuntimeHashAggrAverageDoubleOutputInfo { + + private final int varianceAggregationOffset; + + public RuntimeHashAggrVarianceOutputInfo( + AggregationFunction aggregationFunction, + VectorOutputAggrKind vectorOutputAggrKind, + int hasValueOffset, + long hasValueMask, + int countAggregationOffset, + int sumAggregationOffset, + int varianceAggregationOffset) { + super(aggregationFunction, vectorOutputAggrKind, hasValueOffset, hasValueMask, countAggregationOffset, sumAggregationOffset); + this.varianceAggregationOffset = varianceAggregationOffset; + } + + public int getVarianceAggregationOffset() { + return varianceAggregationOffset; + } + } + + private boolean isVectorizationGroupByNativeEnabled; + private String engine; + + // Temporary restrictions... + private boolean isEmptyKey; + private boolean isOneLongKey; + private boolean isOneLongKeyMaxColumnsExceeded; + private boolean isOnlyLongColumnAggregations; + private boolean isEmptyAggregations; + + private List vectorizationIssueList; + + private boolean hasSingleCountAggregation; + private SingleCountAggreationKind singleCountAggreationKind; + + private boolean keysAreAllFixedLength; + + private int[] groupByKeyColumnMap; + private TypeInfo[] groupByKeyTypeInfos; + private Type[] groupByKeyColumnVectorTypes; + private VectorExpression[] groupByKeyExpressions; + + private HashTableKeyType hashTableKeyType; + + private VectorExpression[] aggregationFunctionInputExpressions; + + private VectorAggregationFunctionInfo[] VectorAggregationFunctionInfos; + + private RuntimeHashAggregationElementInfo hashAggregationElementInfo; + + public VectorGroupByInfo() { + isVectorizationGroupByNativeEnabled = false; + + isOneLongKey = false; + isOneLongKeyMaxColumnsExceeded = false; + isOnlyLongColumnAggregations = false; + isEmptyAggregations = false; + + vectorizationIssueList = null; + + keysAreAllFixedLength = false; + + groupByKeyColumnMap = null; + groupByKeyTypeInfos = null; + groupByKeyColumnVectorTypes = null; + groupByKeyExpressions = null; + + hashTableKeyType = HashTableKeyType.NONE; + + aggregationFunctionInputExpressions = null; + + VectorAggregationFunctionInfos = null; + } + + public boolean getIsVectorizationGroupByNativeEnabled() { + return isVectorizationGroupByNativeEnabled; + } + + public void setIsVectorizationGroupByNativeEnabled(boolean isVectorizationGroupByNativeEnabled) { + this.isVectorizationGroupByNativeEnabled = isVectorizationGroupByNativeEnabled; + } + + public String getEngine() { + return engine; + } + + public void setEngine(String engine) { + this.engine = engine; + } + + public boolean getIsEmptyKey() { + return isEmptyKey; + } + + public void setIsEmptyKey(boolean isEmptyKey) { + this.isEmptyKey = isEmptyKey ; + } + + public boolean getIsOneLongKey() { + return isOneLongKey; + } + + public void setIsOneLongKey(boolean oneLongKey) { + this.isOneLongKey = oneLongKey; + } + + public boolean getIsOneLongKeyMaxColumnsExceeded() { + return isOneLongKeyMaxColumnsExceeded; + } + + public void setIsOneLongKeyMaxColumnsExceeded(boolean isOneLongKeyMaxColumnsExceeded) { + this.isOneLongKeyMaxColumnsExceeded = isOneLongKeyMaxColumnsExceeded; + } + + public boolean getIsOnlyLongColumnAggregations() { + return isOnlyLongColumnAggregations; + } + + public void setIsEmptyAggregations(boolean isEmptyAggregations) { + this.isEmptyAggregations = isEmptyAggregations; + } + + public boolean getIsEmptyAggregations() { + return isEmptyAggregations; + } + + public void setIsOnlyLongColumnAggregations(boolean isOnlyLongColumnAggregations) { + this.isOnlyLongColumnAggregations = isOnlyLongColumnAggregations; + } + + public List getVectorizationIssueList() { + return vectorizationIssueList; + } + + public void setVectorizationIssueList(List vectorizationIssueList) { + this.vectorizationIssueList = vectorizationIssueList; + } + + public void setHasSingleCountAggregation(boolean hasSingleCountAggregation) { + this.hasSingleCountAggregation = hasSingleCountAggregation; + } + + public boolean getHasSingleCountAggregation() { + return hasSingleCountAggregation; + } + + public void setSingleCountAggreationKind(SingleCountAggreationKind singleCountAggreationKind) { + this.singleCountAggreationKind = singleCountAggreationKind; + } + + public SingleCountAggreationKind getSingleCountAggreationKind() { + return singleCountAggreationKind; + } + + public boolean getKeysAreAllFixedLength() { + return keysAreAllFixedLength; + } + + public void setKeysAreAllFixedLength(boolean keysAreAllFixedLength) { + this.keysAreAllFixedLength = keysAreAllFixedLength; + } + + public int[] getGroupByKeyColumnMap() { + return groupByKeyColumnMap; + } + + public void setGroupByKeyColumnMap(int[] groupByKeyColumnMap) { + this.groupByKeyColumnMap = groupByKeyColumnMap; + } + + public TypeInfo[] getGroupByKeyTypeInfos() { + return groupByKeyTypeInfos; + } + + public void setGroupByKeyTypeInfos(TypeInfo[] groupByKeyTypeInfos) { + this.groupByKeyTypeInfos = groupByKeyTypeInfos; + } + + public Type[] getGroupByKeyColumnVectorTypes() { + return groupByKeyColumnVectorTypes; + } + + public void setGroupByKeyColumnVectorTypes(Type[] groupByKeyColumnVectorTypes) { + this.groupByKeyColumnVectorTypes = groupByKeyColumnVectorTypes; + } + + public VectorExpression[] getGroupByKeyExpressions() { + return groupByKeyExpressions; + } + + public void setGroupByKeyExpressions(VectorExpression[] groupByKeyExpressions) { + this.groupByKeyExpressions = groupByKeyExpressions; + } + + public HashTableKeyType getHashTableKeyType() { + return hashTableKeyType; + } + + public void setHashTableKeyType(HashTableKeyType hashTableKeyType) { + this.hashTableKeyType = hashTableKeyType; + } + + public VectorExpression[] getAggregationFunctionInputExpressions() { + return aggregationFunctionInputExpressions; + } + + public void setAggregationFunctionInputExpressions(VectorExpression[] aggregationFunctionInputExpressions) { + this.aggregationFunctionInputExpressions = aggregationFunctionInputExpressions; + } + + public VectorAggregationFunctionInfo[] getVectorAggregationFunctionInfos() { + return VectorAggregationFunctionInfos; + } + + public void setVectorAggregationFunctionInfos(VectorAggregationFunctionInfo[] VectorAggregationFunctionInfos) { + this.VectorAggregationFunctionInfos = VectorAggregationFunctionInfos; + } + + public RuntimeHashAggregationElementInfo getRuntimeHashAggregateInfo() { + return hashAggregationElementInfo; + } + + public void setRuntimeHashAggregateInfo(RuntimeHashAggregationElementInfo hashAggregationElementInfo) { + this.hashAggregationElementInfo = hashAggregationElementInfo; + } + + public static Class getAggrHashClass( + VectorCombineColumnAggrInfo columnAggrInfo) { + + int mask = columnAggrInfo.getMask(); + + Class columnAggregationClass; + + ColumnVector.Type inputColumnVectorType = columnAggrInfo.getInputColumnVectorType(); + switch (inputColumnVectorType) { + case LONG: + columnAggregationClass = hashLongColMap.get(mask); + break; + + case DOUBLE: + case BYTES: + case DECIMAL: + case TIMESTAMP: + // UNDONE: Not supported yet... + columnAggregationClass = null; + break; + + default: + throw new RuntimeException( + "Unexpected vector column type " + inputColumnVectorType); + } + return columnAggregationClass; + } + + public static Class getAggrStreamingClass( + VectorCombineColumnAggrInfo columnAggrInfo) { + + int mask = columnAggrInfo.getMask(); + + Class columnAggregationClass = null; + + ColumnVector.Type inputColumnVectorType = columnAggrInfo.getInputColumnVectorType(); + switch (inputColumnVectorType) { + case LONG: + columnAggregationClass = streamingLongColMap.get(mask); + break; + + case DOUBLE: + case BYTES: + case DECIMAL: + case TIMESTAMP: + // UNDONE: Not supported yet... + columnAggregationClass = null; + break; + + default: + throw new RuntimeException( + "Unexpected vector column type " + inputColumnVectorType); + } + return columnAggregationClass; + } + + /** + * Determines the hash element layout. + * + * The aggregation class handles the combination of basic aggregations (MIN, MAX, + * COUNT, SUM, etc) needed for each column + */ + public static RuntimeHashAggregationElementInfo determineRuntimeHashAggregationInfo( + VectorAggregationFunctionInfo[] vectorAggrFuncInfos, + Map columnAggregationMap, + boolean hasCountStar) + throws HiveException { + + // UNDONE: Currently, only one long key. + return + determineOneLongKeyRuntimeHashAggregationInfo( + vectorAggrFuncInfos, columnAggregationMap, hasCountStar); + } + + /** + * Determines the hash element layout for one long key. + */ + public static RuntimeHashAggregationElementInfo determineOneLongKeyRuntimeHashAggregationInfo( + VectorAggregationFunctionInfo[] vectorAggrFuncInfos, + Map columnAggregationMap, + boolean hasCountStar) + throws HiveException { + + ArrayList runtimeHashAggregateColumnList = + new ArrayList(); + + // We are only supporting 1 header word for one long key. + final int hasValueOffset = 0; + + // High bits of the first header word are chain index, assigned key flag. + int hasValueBitIndex = VectorGroupByAggrColHashBase.ONE_LONG_KEY_FIRST_HAS_VALUE_BIT_NUMBER; + + final int keyOffset = 1; + + // First aggregation starts after header and one long key. + int aggregationOffset = keyOffset + 1; + + final int aggregationBaseOffset = aggregationOffset; + + if (hasCountStar) { + aggregationOffset++; + } + + Map runtimeHashAggregateColumnMap = + new HashMap(); + + for (Map.Entry entry : columnAggregationMap.entrySet()) { + + final long hasValueMask = 1L << hasValueBitIndex--; + VectorizedBatchUtil.debugCheckState(hasValueBitIndex >= 0); + + VectorCombineColumnAggrInfo combineColumnAggrInfo = entry.getValue(); + + ColumnVector.Type inputColumnVectorType = combineColumnAggrInfo.getInputColumnVectorType(); + + Class hashAggregateColumnClass = + VectorGroupByInfo.getAggrHashClass(combineColumnAggrInfo); + + InputColVecTypeAggregation[] inputColVecTypeAggregations = + combineColumnAggrInfo.getInputColVecTypeAggregations(); + int[] aggregationOffsets = new int[inputColVecTypeAggregations.length]; + + // UNDONE: Need actual aggregation length. Right now we are only supporting long / double + // UNDONE: aggregations which are 1 word. + int i = 0; + for (InputColVecTypeAggregation inputColVecTypeAggr : inputColVecTypeAggregations) { + aggregationOffsets[i++] = aggregationOffset; + aggregationOffset++; + } + + RuntimeHashAggregationColumnInfo runtimeHashAggregateColumn = + new RuntimeHashAggregationColumnInfo( + combineColumnAggrInfo.getInputColumnNum(), + combineColumnAggrInfo.getInputColumnVectorType(), + hashAggregateColumnClass, + inputColVecTypeAggregations, + hasValueOffset, + hasValueMask, + /* groupingSetsIdMask */ 0L, // Not used for one long key. + keyOffset, + aggregationOffsets); + runtimeHashAggregateColumnList.add(runtimeHashAggregateColumn); + + runtimeHashAggregateColumnMap.put(entry.getKey(), runtimeHashAggregateColumn); + } + + RuntimeHashAggregationColumnInfo[] runtimeColumnAggregationColumns = + runtimeHashAggregateColumnList.toArray(new RuntimeHashAggregationColumnInfo[0]); + + // Now, determine runtime output. + List runtimeAggrOutputInfoList = new ArrayList(); + for (VectorAggregationFunctionInfo vectorAggrFuncInfo : vectorAggrFuncInfos) { + AggregationFunction aggregationFunction = vectorAggrFuncInfo.getAggregationFunction(); + final int inputColumnNum = vectorAggrFuncInfo.getInputColumnNum(); + TypeInfo outputTypeInfo = vectorAggrFuncInfo.getOutputTypeInfo(); + + VectorCombineColumnAggrInfo columnAggrInfo = + columnAggregationMap.get(inputColumnNum); + RuntimeHashAggregationColumnInfo runtimeHashAggregateColumn = + runtimeHashAggregateColumnMap.get(inputColumnNum); + VectorHashOutputAggrInfo outputAggrInfo = vectorAggrFuncInfo.getOutputAggrInfo(); + if (runtimeHashAggregateColumn == null || + outputAggrInfo == null) { + + // We are continuing even though we encountered a earlier case we don't handle yet... + runtimeAggrOutputInfoList.add(null); + continue; + } + VectorOutputAggrKind vectorOutputAggrKind = outputAggrInfo.getOutputAggrKind(); + + int[] aggregationOffsets = runtimeHashAggregateColumn.getAggregationOffsets(); + RuntimeHashAggregationOutputInfo runtimeHashAggrOutputInfo; + switch (vectorOutputAggrKind) { + case PRIMITIVE: + { + // Single primitive aggregation output. + + InputColVecTypeAggregation primitiveInputColVecTypeAggregation = + ((VectorPrimitiveOutputAggrInfo) outputAggrInfo).getPrimitiveInputColVecTypeAggregation(); + + // This is the index into the combined column aggregations for this primitive aggregation. + final int primitiveCombineIndex = + columnAggrInfo.getCombineIndex( + primitiveInputColVecTypeAggregation); + final int primitiveAggregationOffset = aggregationOffsets[primitiveCombineIndex]; + + runtimeHashAggrOutputInfo = + new RuntimeHashAggrPrimitiveOutputInfo( + aggregationFunction, + vectorOutputAggrKind, + runtimeHashAggregateColumn.getHasValueOffset(), + runtimeHashAggregateColumn.getHasValueMask(), + VectorizationContext.getColumnVectorTypeFromTypeInfo(outputTypeInfo), + primitiveAggregationOffset); + } + break; + case AVERAGE_DOUBLE: + { + final int countCombineIndex = + columnAggrInfo.getCombineIndex( InputColVecTypeAggregation.COUNT); + final int countAggregationOffset = aggregationOffsets[countCombineIndex]; + final int sumCombineIndex = + columnAggrInfo.getCombineIndex( InputColVecTypeAggregation.DOUBLE_SUM); + final int sumAggregationOffset = aggregationOffsets[sumCombineIndex]; + + runtimeHashAggrOutputInfo = + new RuntimeHashAggrAverageDoubleOutputInfo( + aggregationFunction, + vectorOutputAggrKind, + runtimeHashAggregateColumn.getHasValueOffset(), + runtimeHashAggregateColumn.getHasValueMask(), + countAggregationOffset, + sumAggregationOffset); + } + break; + case VARIANCE: + { + final int countCombineIndex = + columnAggrInfo.getCombineIndex( InputColVecTypeAggregation.COUNT); + final int countAggregationOffset = aggregationOffsets[countCombineIndex]; + final int sumCombineIndex = + columnAggrInfo.getCombineIndex( InputColVecTypeAggregation.DOUBLE_SUM); + final int sumAggregationOffset = aggregationOffsets[sumCombineIndex]; + final int varianceCombineIndex = + columnAggrInfo.getCombineIndex( InputColVecTypeAggregation.DOUBLE_VARIANCE); + final int varianceAggregationOffset = aggregationOffsets[varianceCombineIndex]; + + runtimeHashAggrOutputInfo = + new RuntimeHashAggrVarianceOutputInfo( + aggregationFunction, + vectorOutputAggrKind, + runtimeHashAggregateColumn.getHasValueOffset(), + runtimeHashAggregateColumn.getHasValueMask(), + countAggregationOffset, + sumAggregationOffset, + varianceAggregationOffset); + } + break; + default: + throw new RuntimeException("Unexpected output aggregation kind" + vectorOutputAggrKind); + } + runtimeAggrOutputInfoList.add(runtimeHashAggrOutputInfo); + } + RuntimeHashAggregationOutputInfo[] hashAggregationOutputInfos = + runtimeAggrOutputInfoList.toArray(new RuntimeHashAggregationOutputInfo[0]); + + RuntimeHashAggregationElementInfo hashAggregationElementInfo = + new RuntimeHashAggregationElementInfo( + runtimeColumnAggregationColumns, + hashAggregationOutputInfos, + keyOffset, + aggregationBaseOffset, + /* hashEleFixedLongLength */ aggregationOffset); + + return hashAggregationElementInfo; + } + + private static int roundup64Bits(int count) { + return (count + Long.SIZE - 1) / Long.SIZE; + } +} diff --git ql/src/java/org/apache/hadoop/hive/ql/plan/VectorMapJoinDesc.java ql/src/java/org/apache/hadoop/hive/ql/plan/VectorMapJoinDesc.java index 99a4958..c8d19f8 100644 --- ql/src/java/org/apache/hadoop/hive/ql/plan/VectorMapJoinDesc.java +++ ql/src/java/org/apache/hadoop/hive/ql/plan/VectorMapJoinDesc.java @@ -20,8 +20,20 @@ import java.util.List; +import org.apache.hadoop.hive.ql.exec.vector.VectorSerializeRow; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDF.DeferredObject; +import org.apache.hadoop.hive.serde2.ByteStream.Output; +import org.apache.hadoop.hive.serde2.binarysortable.fast.BinarySortableSerializeWrite; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; +import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector; +import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory; +import org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableIntObjectInspector; import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo; +import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory; +import org.apache.hadoop.io.IntWritable; +import org.apache.hadoop.io.LongWritable; +import org.apache.hive.common.util.HashCodeUtil; import com.google.common.base.Preconditions; @@ -244,4 +256,87 @@ public boolean getIsHybridHashJoin() { return isHybridHashJoin; } + public static class VectorMapJoinSlotNumber { + + private final int slotTablePowerOf2; + private final int slotTableSize; + private final int slotTableMask; + + private PrimitiveTypeInfo[] primitiveTypeInfos; + + private HashTableKeyType hashTableKeyType; + + // The BinarySortable serialization of the current key. + private transient Output keyOutput; + + public VectorMapJoinSlotNumber(ObjectInspector[] argumentOIs, Object[] fieldValues) { + WritableIntObjectInspector writableIntObjectInspector = (WritableIntObjectInspector) argumentOIs[0]; + slotTablePowerOf2 = writableIntObjectInspector.get(fieldValues[0]); + slotTableSize = 1 << slotTablePowerOf2; + slotTableMask = slotTableSize - 1; + + final int columnCount = argumentOIs.length - 1; + primitiveTypeInfos = new PrimitiveTypeInfo[columnCount]; + for (int i = 0; i < columnCount; i++) { + primitiveTypeInfos[i] = ((PrimitiveObjectInspector) argumentOIs[i + 1]).getTypeInfo(); + } + + hashTableKeyType = HashTableKeyType.MULTI_KEY; // Assume. + if (columnCount == 1) { + PrimitiveCategory primitiveCategory = primitiveTypeInfos[0].getPrimitiveCategory(); + switch (primitiveCategory) { + case BOOLEAN: + hashTableKeyType = HashTableKeyType.BOOLEAN; + break; + case BYTE: + hashTableKeyType = HashTableKeyType.BYTE; + break; + case SHORT: + hashTableKeyType = HashTableKeyType.SHORT; + break; + case INT: + hashTableKeyType = HashTableKeyType.INT; + break; + case LONG: + hashTableKeyType = HashTableKeyType.LONG; + break; + case STRING: + case CHAR: + case VARCHAR: + case BINARY: + hashTableKeyType = HashTableKeyType.STRING; + break; + default: + // Remain MULTI_KEY. + break; + } + } + if (hashTableKeyType == HashTableKeyType.MULTI_KEY) { + // UNDONE + + keyOutput = new Output(); + } + } + + public Integer computeSlotNumber(Object[] fieldValues) { + // UNDONE + int hashCode = 0; + switch (hashTableKeyType) { + case LONG: + { + Object obj = fieldValues[1]; + if (obj == null) { + return null; + } + long longValue = ((LongWritable) obj).get(); + hashCode = HashCodeUtil.calculateLongHashCode(longValue); + } + break; + default: + throw new RuntimeException("Unexpected hash table key type " + hashTableKeyType); + } + + return hashCode & slotTableMask; + } + } } diff --git ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFVectorMapJoinSlotNumber.java ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFVectorMapJoinSlotNumber.java new file mode 100644 index 0000000..858fbf4 --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFVectorMapJoinSlotNumber.java @@ -0,0 +1,78 @@ +/** + * 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 org.apache.hadoop.hive.ql.exec.Description; +import org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.VectorMapJoinDesc.VectorMapJoinSlotNumber; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils; +import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory; +import org.apache.hadoop.io.IntWritable; + +/** + * GenericUDF Class for computing Native Vector MapJoin hash table slot number. + */ +@Description(name = "vector_mapjoin_slot_number", + value = "_FUNC_(slot_table_power_of_2, a1, a2, ...) - Returns the slot number of the arguments for a Native Vector MapJoin hash table of size slot_table_power_of_2**2 ") +public class GenericUDFVectorMapJoinSlotNumber extends GenericUDF { + private transient boolean initialized; + private transient ObjectInspector[] argumentOIs; + + private transient VectorMapJoinSlotNumber vectorMapJoinSlotNumber; + + @Override + public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentTypeException { + + initialized = false; + argumentOIs = arguments; + return PrimitiveObjectInspectorFactory.writableIntObjectInspector; + } + + private final IntWritable result = new IntWritable(); + + @Override + public Object evaluate(DeferredObject[] arguments) throws HiveException { + + Object[] fieldValues = new Object[arguments.length]; + for(int i = 0; i < arguments.length; i++) { + fieldValues[i] = arguments[i].get(); + } + + if (!initialized) { + initialized = true; + vectorMapJoinSlotNumber = new VectorMapJoinSlotNumber(argumentOIs, fieldValues); + } + + // UNDONE + Integer slotNumber = vectorMapJoinSlotNumber.computeSlotNumber(fieldValues); + if (slotNumber == null) { + return null; + } + result.set(slotNumber); + return result; + } + + @Override + public String getDisplayString(String[] children) { + return getStandardDisplayString("vector_mapjoin_slot_number", children, ","); + } + +} diff --git ql/src/test/org/apache/hadoop/hive/ql/exec/vector/groupby/TestVectorGroupByAggrCol.java ql/src/test/org/apache/hadoop/hive/ql/exec/vector/groupby/TestVectorGroupByAggrCol.java new file mode 100644 index 0000000..f60d673 --- /dev/null +++ ql/src/test/org/apache/hadoop/hive/ql/exec/vector/groupby/TestVectorGroupByAggrCol.java @@ -0,0 +1,111 @@ +/** + * 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.exec.vector.groupby; + +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.util.Arrays; +import java.util.Random; + +import org.apache.hadoop.hive.ql.exec.JoinUtil; +import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; +import org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen.VectorGroupByAggrHashKeyLongColLongMax; +import org.apache.hadoop.hive.ql.exec.vector.mapjoin.fast.CheckFastHashTable.VerifyFastBytesHashMap; +import org.apache.hadoop.hive.ql.exec.vector.mapjoin.hashtable.VectorMapJoinHashMapResult; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.junit.Test; + +/* + * Test the generated VectorGroupByAggrCol* classes. + */ +public class TestVectorGroupByAggrCol { + + protected static Random random; + + @Test + public void testOneColumn() throws Exception { + random = new Random(8809); + + VectorizedRowBatch batch = new VectorizedRowBatch(2); + LongColumnVector keyColVector = new LongColumnVector(batch.DEFAULT_SIZE); + batch.cols[0] = keyColVector; + long[] keyVector = keyColVector.vector; + LongColumnVector valueColVector = new LongColumnVector(batch.DEFAULT_SIZE); + batch.cols[1] = valueColVector; + long[] valueVector = valueColVector.vector; + + batch.size = batch.DEFAULT_SIZE; + + keyVector[0] = -1259611508; + valueVector[0] = -7910019233726242816L; + keyVector[1] = -1261099087; + valueVector[1] = 663; + keyVector[2] = -1262842192; + valueVector[2] =-7797149520019062784L; + keyVector[3] = -1266138408; + valueVector[3] = 7054271419461812224L; + keyVector[4] = -1269216718; + valueVector[4] = 8367680396909404160L; + + batch.size = 5; + + int[] hashEleIndices = new int[5]; + int[] keyDuplicateCounts = new int[5]; + int longIndex = 3; + for (int i = 0; i < 5; i++) { + hashEleIndices[i] = longIndex; + keyDuplicateCounts[i] = 1; + longIndex += 3; + } + + long[] longs = new long[100]; + + VectorGroupByAggrHashKeyLongColLongMax aggrCol = + new VectorGroupByAggrHashKeyLongColLongMax( + /* inputColumnNum */ 1, + /* hasValueOffset */ 0, + /* hasValueMask */ 2, + /* groupingSetsIdMask */ 0, + /* keyOffset */ 1, + /* firstAggregationOffset */ 2, + /* countStarOffset */ -1, + /* fixedLenAllNonNullFlagsMask */ 0, + /* fixedKeyLength */ 0, + null); + /* + aggrCol.aggrLongColVectorOneLongKeyPhysicalForFirstCol( + 5, + hashEleIndices, + /~ oneLongKeys ~/ keyVector, + keyDuplicateCounts, + batch, + 1); + + // [0, 0, 0, + // 3, -1259611508, -7910019233726242816, + // 3, -1261099087, 663, + // 3, -1262842192, -7797149520019062784, + // 3, -1266138408, 7054271419461812224, + // 3, -1269216718, 8367680396909404160] + System.out.println("*DEBUG* " + Arrays.toString(longs)); + */ + } +} \ No newline at end of file diff --git ql/src/test/queries/clientpositive/vector_groupby_simple.q ql/src/test/queries/clientpositive/vector_groupby_simple.q new file mode 100644 index 0000000..0d6f175 --- /dev/null +++ ql/src/test/queries/clientpositive/vector_groupby_simple.q @@ -0,0 +1,100 @@ +set hive.mapred.mode=nonstrict; +set hive.explain.user=false; +SET hive.vectorized.execution.enabled=true; +set hive.vectorized.execution.groupby.native.enabled=true; +set hive.fetch.task.conversion=none; + +-- SORT_QUERY_RESULTS + +create table vectortab2k( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' +STORED AS TEXTFILE; + +LOAD DATA LOCAL INPATH '../../data/files/vectortab2k' OVERWRITE INTO TABLE vectortab2k; + +create table vectortab2korc( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +STORED AS ORC; + +INSERT INTO TABLE vectortab2korc SELECT * FROM vectortab2k; + + +explain vectorization detail +select i, max(b) from vectortab2korc group by i; + +select i, max(b) from vectortab2korc group by i; + +explain vectorization detail +select b, min(i), max(i) from vectortab2korc group by b; + +select b, min(i), max(i) from vectortab2korc group by b; + +explain vectorization detail +select b, min(i), max(i), sum(si) from vectortab2korc group by b; + +select b, min(i), max(i), sum(si) from vectortab2korc group by b; + +explain vectorization detail +select b, count(i), min(i), max(i), sum(si) from vectortab2korc group by b; + +select b, count(i), min(i), max(i), sum(si) from vectortab2korc group by b; + +explain vectorization detail +select b, count(b) from vectortab2korc group by b; + +select b, count(b) from vectortab2korc group by b; + +explain vectorization detail +select b, count(i) from vectortab2korc group by b; + +select b, count(i) from vectortab2korc group by b; + +explain vectorization detail +select b, count(*) from vectortab2korc group by b; + +select b, count(*) from vectortab2korc group by b; + +explain vectorization detail +select b from vectortab2korc group by b grouping sets ( (), (b)); + +select b from vectortab2korc group by b grouping sets ( (), (b)); + +explain vectorization detail +select b, count(*) from vectortab2korc group by b grouping sets ( (), (b)); + +select b, count(*) from vectortab2korc group by b grouping sets ( (), (b)); + +explain vectorization detail +select `grouping__id`, b from vectortab2korc group by b grouping sets ( (), (b)); + +select `grouping__id`, b from vectortab2korc group by b grouping sets ( (), (b)); + +explain vectorization detail +select `grouping__id`, b, count(*) from vectortab2korc group by b grouping sets ( (), (b)); + +select `grouping__id`, b, count(*) from vectortab2korc group by b grouping sets ( (), (b)); diff --git ql/src/test/queries/clientpositive/vector_mapjoin_slot_number.q ql/src/test/queries/clientpositive/vector_mapjoin_slot_number.q new file mode 100644 index 0000000..9d730e6 --- /dev/null +++ ql/src/test/queries/clientpositive/vector_mapjoin_slot_number.q @@ -0,0 +1,58 @@ +set hive.mapred.mode=nonstrict; +set hive.explain.user=false; +SET hive.vectorized.execution.enabled=false; +set hive.fetch.task.conversion=none; + +-- SORT_QUERY_RESULTS + +create table vectortab2k( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' +STORED AS TEXTFILE; + +LOAD DATA LOCAL INPATH '../../data/files/vectortab2k' OVERWRITE INTO TABLE vectortab2k; + +create table vectortab2korc( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +STORED AS ORC; + +INSERT INTO TABLE vectortab2korc SELECT * FROM vectortab2k; + +select b, count(*) as slot_count, vector_mapjoin_slot_number(10, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(10, b), b having count(*) > 1 order by slot_count desc, slot_number; + +select count(*) as slot_count, vector_mapjoin_slot_number(10, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(10, b) order by slot_count desc, slot_number; + +select b, count(*) as slot_count, vector_mapjoin_slot_number(10, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(10, b), b order by slot_count desc, slot_number; + + + +select b, count(*) as slot_count, vector_mapjoin_slot_number(20, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(20, b), b having count(*) > 1 order by slot_count desc, slot_number; + +select count(*) as slot_count, vector_mapjoin_slot_number(20, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(20, b) order by slot_count desc, slot_number; + +select b, count(*) as slot_count, vector_mapjoin_slot_number(20, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(20, b), b order by slot_count desc, slot_number; + diff --git ql/src/test/results/clientpositive/acid_table_stats.q.out ql/src/test/results/clientpositive/acid_table_stats.q.out index 6ab6b43..e52f7c5 100644 --- ql/src/test/results/clientpositive/acid_table_stats.q.out +++ ql/src/test/results/clientpositive/acid_table_stats.q.out @@ -98,7 +98,7 @@ Partition Parameters: numFiles 2 numRows 0 rawDataSize 0 - totalSize 3950 + totalSize 3978 #### A masked pattern was here #### # Storage Information @@ -136,9 +136,9 @@ STAGE PLANS: Map Operator Tree: TableScan alias: acid - Statistics: Num rows: 1 Data size: 3950 Basic stats: PARTIAL Column stats: NONE + Statistics: Num rows: 1 Data size: 3978 Basic stats: PARTIAL Column stats: NONE Select Operator - Statistics: Num rows: 1 Data size: 3950 Basic stats: PARTIAL Column stats: NONE + Statistics: Num rows: 1 Data size: 3978 Basic stats: PARTIAL Column stats: NONE Group By Operator aggregations: count() mode: hash @@ -215,7 +215,7 @@ Partition Parameters: numFiles 2 numRows 1000 rawDataSize 208000 - totalSize 3950 + totalSize 3978 #### A masked pattern was here #### # Storage Information @@ -264,7 +264,7 @@ Partition Parameters: numFiles 2 numRows 1000 rawDataSize 208000 - totalSize 3950 + totalSize 3978 #### A masked pattern was here #### # Storage Information @@ -391,7 +391,7 @@ Partition Parameters: numFiles 4 numRows 1000 rawDataSize 208000 - totalSize 7904 + totalSize 7958 #### A masked pattern was here #### # Storage Information @@ -440,7 +440,7 @@ Partition Parameters: numFiles 4 numRows 2000 rawDataSize 416000 - totalSize 7904 + totalSize 7958 #### A masked pattern was here #### # Storage Information diff --git ql/src/test/results/clientpositive/autoColumnStats_4.q.out ql/src/test/results/clientpositive/autoColumnStats_4.q.out index e844999..1e926a3 100644 --- ql/src/test/results/clientpositive/autoColumnStats_4.q.out +++ ql/src/test/results/clientpositive/autoColumnStats_4.q.out @@ -201,7 +201,7 @@ Table Parameters: numFiles 2 numRows 0 rawDataSize 0 - totalSize 1798 + totalSize 1852 transactional true #### A masked pattern was here #### @@ -244,7 +244,7 @@ Table Parameters: numFiles 4 numRows 0 rawDataSize 0 - totalSize 2909 + totalSize 3033 transactional true #### A masked pattern was here #### diff --git ql/src/test/results/clientpositive/insert_values_orig_table_use_metadata.q.out ql/src/test/results/clientpositive/insert_values_orig_table_use_metadata.q.out index 6df425f..2c84bdc 100644 --- ql/src/test/results/clientpositive/insert_values_orig_table_use_metadata.q.out +++ ql/src/test/results/clientpositive/insert_values_orig_table_use_metadata.q.out @@ -171,7 +171,7 @@ Table Parameters: numFiles 1 numRows 0 rawDataSize 0 - totalSize 295483 + totalSize 295503 transactional true #### A masked pattern was here #### @@ -199,9 +199,9 @@ STAGE PLANS: Map Operator Tree: TableScan alias: acid_ivot - Statistics: Num rows: 1 Data size: 295483 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 1 Data size: 295503 Basic stats: COMPLETE Column stats: COMPLETE Select Operator - Statistics: Num rows: 1 Data size: 295483 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 1 Data size: 295503 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator aggregations: count() mode: hash @@ -364,7 +364,7 @@ Table Parameters: numFiles 1 numRows 0 rawDataSize 0 - totalSize 1554 + totalSize 1580 transactional true #### A masked pattern was here #### @@ -392,9 +392,9 @@ STAGE PLANS: Map Operator Tree: TableScan alias: acid_ivot - Statistics: Num rows: 1 Data size: 1554 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 1 Data size: 1580 Basic stats: COMPLETE Column stats: COMPLETE Select Operator - Statistics: Num rows: 1 Data size: 1554 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 1 Data size: 1580 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator aggregations: count() mode: hash @@ -486,7 +486,7 @@ Table Parameters: numFiles 2 numRows 0 rawDataSize 0 - totalSize 3109 + totalSize 3162 transactional true #### A masked pattern was here #### @@ -514,9 +514,9 @@ STAGE PLANS: Map Operator Tree: TableScan alias: acid_ivot - Statistics: Num rows: 1 Data size: 3109 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 1 Data size: 3162 Basic stats: COMPLETE Column stats: COMPLETE Select Operator - Statistics: Num rows: 1 Data size: 3109 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 1 Data size: 3162 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator aggregations: count() mode: hash @@ -606,7 +606,7 @@ Table Parameters: numFiles 3 numRows 0 rawDataSize 0 - totalSize 298592 + totalSize 298664 transactional true #### A masked pattern was here #### @@ -634,9 +634,9 @@ STAGE PLANS: Map Operator Tree: TableScan alias: acid_ivot - Statistics: Num rows: 1 Data size: 298592 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 1 Data size: 298664 Basic stats: COMPLETE Column stats: COMPLETE Select Operator - Statistics: Num rows: 1 Data size: 298592 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 1 Data size: 298664 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator aggregations: count() mode: hash diff --git ql/src/test/results/clientpositive/llap/llap_vector_nohybridgrace.q.out ql/src/test/results/clientpositive/llap/llap_vector_nohybridgrace.q.out index 2c62dfb..71411c1 100644 --- ql/src/test/results/clientpositive/llap/llap_vector_nohybridgrace.q.out +++ ql/src/test/results/clientpositive/llap/llap_vector_nohybridgrace.q.out @@ -75,8 +75,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -158,8 +159,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -257,8 +259,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -340,8 +343,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE diff --git ql/src/test/results/clientpositive/llap/sysdb.q.out ql/src/test/results/clientpositive/llap/sysdb.q.out index d476b3b..16d5f0b 100644 --- ql/src/test/results/clientpositive/llap/sysdb.q.out +++ ql/src/test/results/clientpositive/llap/sysdb.q.out @@ -3195,7 +3195,7 @@ POSTHOOK: query: select count(*) from skewed_string_list POSTHOOK: type: QUERY POSTHOOK: Input: sys@skewed_string_list #### A masked pattern was here #### -3 +24 PREHOOK: query: select count(*) from skewed_string_list_values PREHOOK: type: QUERY PREHOOK: Input: sys@skewed_string_list_values @@ -3204,7 +3204,7 @@ POSTHOOK: query: select count(*) from skewed_string_list_values POSTHOOK: type: QUERY POSTHOOK: Input: sys@skewed_string_list_values #### A masked pattern was here #### -3 +24 PREHOOK: query: select count(*) from skewed_values PREHOOK: type: QUERY PREHOOK: Input: sys@skewed_values @@ -3346,11 +3346,11 @@ POSTHOOK: type: QUERY POSTHOOK: Input: sys@table_params POSTHOOK: Input: sys@table_stats_view #### A masked pattern was here #### -{"BASIC_STATS":"true","COLUMN_STATS":{"key":"true","value":"true"}} 0 0 0 0 -{"BASIC_STATS":"true","COLUMN_STATS":{"column_name":"true","create_time":"true","grant_option":"true","grantor":"true","grantor_type":"true","principal_name":"true","principal_type":"true","tbl_col_priv":"true","tbl_column_grant_id":"true","tbl_id":"true"}} 0 0 0 0 -{"BASIC_STATS":"true","COLUMN_STATS":{"next_val":"true","sequence_name":"true"}} 0 0 0 0 -{"BASIC_STATS":"true","COLUMN_STATS":{"key":"true","value":"true"}} 0 0 0 0 +{"BASIC_STATS":"true","COLUMN_STATS":{"key":"true"}} 0 0 0 0 +{"BASIC_STATS":"true","COLUMN_STATS":{"schema_version":"true","ver_id":"true","version_comment":"true"}} 0 0 0 0 #### A masked pattern was here #### +{"BASIC_STATS":"true","COLUMN_STATS":{"a":"true","b":"true","c":"true","d":"true","e":"true","f":"true","g":"true"}} 0 0 0 0 +{"BASIC_STATS":"true","COLUMN_STATS":{"cd_id":"true"}} 0 0 0 0 PREHOOK: query: select COLUMN_STATS_ACCURATE, NUM_FILES, NUM_ROWS, RAW_DATA_SIZE, TOTAL_SIZE FROM PARTITION_STATS_VIEW where COLUMN_STATS_ACCURATE is not null order by NUM_FILES, NUM_ROWS, RAW_DATA_SIZE limit 5 PREHOOK: type: QUERY PREHOOK: Input: sys@partition_params @@ -3604,13 +3604,13 @@ default default alltypesorc ctimestamp1 8 NULL YES timestamp NULL NULL NULL NULL default default alltypesorc ctimestamp2 9 NULL YES timestamp NULL NULL NULL NULL NULL 9 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 11 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES timestamp NULL NULL default default alltypesorc cboolean1 10 NULL YES boolean NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 11 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES boolean NULL NULL default default alltypesorc cboolean2 11 NULL YES boolean NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 11 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES boolean NULL NULL -default default moretypes a 0 NULL YES decimal(10,2) NULL NULL 10 10 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 27 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES decimal(10,2) 10 10 -default default moretypes b 1 NULL YES tinyint NULL NULL 3 10 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 27 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES tinyint 3 10 -default default moretypes c 2 NULL YES smallint NULL NULL 5 10 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 27 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES smallint 5 10 -default default moretypes d 3 NULL YES int NULL NULL 10 10 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 27 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES int 10 10 -default default moretypes e 4 NULL YES bigint NULL NULL 19 10 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 27 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES bigint 19 10 -default default moretypes f 5 NULL YES varchar(10) 10 10 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 27 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES varchar(10) NULL NULL -default default moretypes g 6 NULL YES char(3) 3 3 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 27 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES char(3) NULL NULL +default default moretypes a 0 NULL YES decimal(10,2) NULL NULL 10 10 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1192 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES decimal(10,2) 10 10 +default default moretypes b 1 NULL YES tinyint NULL NULL 3 10 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1192 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES tinyint 3 10 +default default moretypes c 2 NULL YES smallint NULL NULL 5 10 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1192 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES smallint 5 10 +default default moretypes d 3 NULL YES int NULL NULL 10 10 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1192 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES int 10 10 +default default moretypes e 4 NULL YES bigint NULL NULL 19 10 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1192 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES bigint 19 10 +default default moretypes f 5 NULL YES varchar(10) 10 10 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1192 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES varchar(10) NULL NULL +default default moretypes g 6 NULL YES char(3) 3 3 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1192 NO NO NULL NULL NULL NULL NULL NULL NEVER NULL NO NO NULL YES char(3) NULL NULL PREHOOK: query: select * from COLUMN_PRIVILEGES order by GRANTOR, GRANTEE, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME limit 10 PREHOOK: type: QUERY PREHOOK: Input: information_schema@column_privileges diff --git ql/src/test/results/clientpositive/llap/tez_join_hash.q.out ql/src/test/results/clientpositive/llap/tez_join_hash.q.out index e313bad..86f9c1a 100644 --- ql/src/test/results/clientpositive/llap/tez_join_hash.q.out +++ ql/src/test/results/clientpositive/llap/tez_join_hash.q.out @@ -156,19 +156,19 @@ STAGE PLANS: Map Operator Tree: TableScan alias: y - Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: PARTIAL Filter Operator predicate: (key is not null and value is not null) (type: boolean) - Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: PARTIAL Select Operator expressions: key (type: string), value (type: string) outputColumnNames: _col0, _col1 - Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: PARTIAL Reduce Output Operator key expressions: _col0 (type: string) sort order: + Map-reduce partition columns: _col0 (type: string) - Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: PARTIAL value expressions: _col1 (type: string) Execution mode: vectorized, llap LLAP IO: no inputs @@ -176,38 +176,38 @@ STAGE PLANS: Map Operator Tree: TableScan alias: x - Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: PARTIAL Filter Operator predicate: key is not null (type: boolean) - Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: PARTIAL Select Operator expressions: key (type: string) outputColumnNames: _col0 - Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: PARTIAL Reduce Output Operator key expressions: _col0 (type: string) sort order: + Map-reduce partition columns: _col0 (type: string) - Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: PARTIAL Execution mode: vectorized, llap LLAP IO: no inputs Map 7 Map Operator Tree: TableScan alias: z - Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: PARTIAL Filter Operator predicate: value is not null (type: boolean) - Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: PARTIAL Select Operator expressions: key (type: string), value (type: string) outputColumnNames: _col0, _col1 - Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: PARTIAL Reduce Output Operator key expressions: _col1 (type: string) sort order: + Map-reduce partition columns: _col1 (type: string) - Statistics: Num rows: 14944 Data size: 2660032 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 14944 Data size: 2660032 Basic stats: COMPLETE Column stats: PARTIAL value expressions: _col0 (type: string) Execution mode: vectorized, llap LLAP IO: no inputs @@ -240,16 +240,16 @@ STAGE PLANS: 0 _col0 (type: string) 1 _col0 (type: string) outputColumnNames: _col1, _col2 - Statistics: Num rows: 12944 Data size: 2304032 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 12944 Data size: 2304032 Basic stats: COMPLETE Column stats: PARTIAL Select Operator expressions: _col2 (type: string), _col1 (type: string) outputColumnNames: _col0, _col1 - Statistics: Num rows: 12944 Data size: 2304032 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 12944 Data size: 2304032 Basic stats: COMPLETE Column stats: PARTIAL Reduce Output Operator key expressions: _col1 (type: string) sort order: + Map-reduce partition columns: _col1 (type: string) - Statistics: Num rows: 14944 Data size: 2660032 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 14944 Data size: 2660032 Basic stats: COMPLETE Column stats: PARTIAL value expressions: _col0 (type: string) Reducer 4 Execution mode: llap @@ -261,18 +261,18 @@ STAGE PLANS: 0 _col1 (type: string) 1 _col0 (type: string) outputColumnNames: _col0, _col1 - Statistics: Num rows: 24181 Data size: 4304218 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 24181 Data size: 4304218 Basic stats: COMPLETE Column stats: PARTIAL Group By Operator aggregations: count() keys: _col0 (type: string), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 - Statistics: Num rows: 12090 Data size: 2248740 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 12090 Data size: 2248740 Basic stats: COMPLETE Column stats: PARTIAL Reduce Output Operator key expressions: _col0 (type: string), _col1 (type: string) sort order: ++ Map-reduce partition columns: _col0 (type: string), _col1 (type: string) - Statistics: Num rows: 12090 Data size: 2248740 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 12090 Data size: 2248740 Basic stats: COMPLETE Column stats: PARTIAL value expressions: _col2 (type: bigint) Reducer 5 Execution mode: vectorized, llap @@ -282,14 +282,14 @@ STAGE PLANS: keys: KEY._col0 (type: string), KEY._col1 (type: string) mode: mergepartial outputColumnNames: _col0, _col1, _col2 - Statistics: Num rows: 12090 Data size: 2248740 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 12090 Data size: 2248740 Basic stats: COMPLETE Column stats: PARTIAL Select Operator expressions: _col0 (type: string), _col2 (type: bigint) outputColumnNames: _col0, _col1 - Statistics: Num rows: 12090 Data size: 1148550 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 12090 Data size: 1148550 Basic stats: COMPLETE Column stats: PARTIAL File Output Operator compressed: false - Statistics: Num rows: 12090 Data size: 1148550 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 12090 Data size: 1148550 Basic stats: COMPLETE Column stats: PARTIAL table: input format: org.apache.hadoop.mapred.SequenceFileInputFormat output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat diff --git ql/src/test/results/clientpositive/llap/vector_adaptor_usage_mode.q.out ql/src/test/results/clientpositive/llap/vector_adaptor_usage_mode.q.out index e63cbf8..3efccb8 100644 --- ql/src/test/results/clientpositive/llap/vector_adaptor_usage_mode.q.out +++ ql/src/test/results/clientpositive/llap/vector_adaptor_usage_mode.q.out @@ -986,8 +986,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: _col0 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -1031,8 +1032,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: string) mode: mergepartial outputColumnNames: _col0, _col1 @@ -1115,8 +1117,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: _col0 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -1160,8 +1163,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: string) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/llap/vector_aggregate_9.q.out ql/src/test/results/clientpositive/llap/vector_aggregate_9.q.out index cf3dc23..a279dc2 100644 --- ql/src/test/results/clientpositive/llap/vector_aggregate_9.q.out +++ ql/src/test/results/clientpositive/llap/vector_aggregate_9.q.out @@ -147,8 +147,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type DECIMAL, Cannot specialize aggregation function max on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL, Cannot specialize aggregation function avg on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 624 Basic stats: COMPLETE Column stats: NONE @@ -201,6 +204,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type DECIMAL, Cannot specialize aggregation function max on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL, Cannot specialize aggregation function avg on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1, 2, 3] mode: mergepartial @@ -278,8 +283,12 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3] + runtimeHashAggrOutputInfos: {MIN_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 3, MAX_FUNC:1, PRIMITIVE, DOUBLE, aggrOffset: 4, SUM_FUNC:2, PRIMITIVE, DOUBLE, aggrOffset: 5, AVG_FUNC:3, AVERAGE_DOUBLE, countAggrOffset: 2, sumAggrOffset: 5} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 104 Basic stats: COMPLETE Column stats: NONE @@ -332,6 +341,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1, 2, 3] mode: mergepartial @@ -409,8 +420,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type TIMESTAMP, Cannot specialize aggregation function max on column vector type TIMESTAMP, Cannot specialize aggregation function sum on column vector type TIMESTAMP, Cannot specialize aggregation function avg on column vector type TIMESTAMP] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 200 Basic stats: COMPLETE Column stats: NONE @@ -463,6 +477,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type TIMESTAMP, Cannot specialize aggregation function max on column vector type TIMESTAMP, Cannot specialize aggregation function avg on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1, 2, 3] mode: mergepartial diff --git ql/src/test/results/clientpositive/llap/vector_auto_smb_mapjoin_14.q.out ql/src/test/results/clientpositive/llap/vector_auto_smb_mapjoin_14.q.out index b4386c8..084621c 100644 --- ql/src/test/results/clientpositive/llap/vector_auto_smb_mapjoin_14.q.out +++ ql/src/test/results/clientpositive/llap/vector_auto_smb_mapjoin_14.q.out @@ -101,7 +101,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -128,8 +127,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -239,7 +239,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -267,8 +266,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0 @@ -287,8 +287,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -318,8 +319,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -455,7 +457,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: _col0 (type: int) mode: hash outputColumnNames: _col0, _col1 @@ -505,7 +506,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: _col0 (type: int) mode: hash outputColumnNames: _col0, _col1 @@ -536,8 +536,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0, _col1 @@ -593,8 +593,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0, _col1 @@ -727,7 +727,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -754,8 +753,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -872,7 +872,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -899,8 +898,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1041,7 +1041,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1068,8 +1067,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1198,7 +1198,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1225,8 +1224,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1400,7 +1400,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1426,8 +1425,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1530,7 +1530,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1557,8 +1556,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1680,7 +1680,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1707,8 +1706,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1833,7 +1833,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1860,8 +1859,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -2231,7 +2231,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: _col0 (type: int) mode: hash outputColumnNames: _col0, _col1 @@ -2262,8 +2261,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/llap/vector_between_in.q.out ql/src/test/results/clientpositive/llap/vector_between_in.q.out index 664e342..c191f6b 100644 --- ql/src/test/results/clientpositive/llap/vector_between_in.q.out +++ ql/src/test/results/clientpositive/llap/vector_between_in.q.out @@ -157,8 +157,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -198,8 +199,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -365,8 +367,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -406,8 +409,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -765,8 +769,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -806,8 +811,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1114,14 +1120,13 @@ STAGE PLANS: Group By Operator aggregations: count() Group By Vectorization: - aggregators: VectorUDAFCountStar(*) -> bigint - className: VectorGroupByOperator + className: VectorGroupByHashOneLongKeyCountStarOperator groupByMode: HASH vectorOutput: true keyExpressions: col 4 - native: false + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: _col0 (type: boolean) mode: hash outputColumnNames: _col0, _col1 @@ -1143,7 +1148,7 @@ STAGE PLANS: enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true groupByVectorOutput: true inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat - allNative: false + allNative: true usesVectorUDFAdaptor: false vectorized: true Reducer 2 @@ -1165,8 +1170,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: boolean) mode: mergepartial outputColumnNames: _col0, _col1 @@ -1256,14 +1261,13 @@ STAGE PLANS: Group By Operator aggregations: count() Group By Vectorization: - aggregators: VectorUDAFCountStar(*) -> bigint - className: VectorGroupByOperator + className: VectorGroupByHashOneLongKeyCountStarOperator groupByMode: HASH vectorOutput: true keyExpressions: col 4 - native: false + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: _col0 (type: boolean) mode: hash outputColumnNames: _col0, _col1 @@ -1285,7 +1289,7 @@ STAGE PLANS: enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true groupByVectorOutput: true inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat - allNative: false + allNative: true usesVectorUDFAdaptor: false vectorized: true Reducer 2 @@ -1307,8 +1311,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: boolean) mode: mergepartial outputColumnNames: _col0, _col1 @@ -1398,14 +1402,13 @@ STAGE PLANS: Group By Operator aggregations: count() Group By Vectorization: - aggregators: VectorUDAFCountStar(*) -> bigint - className: VectorGroupByOperator + className: VectorGroupByHashOneLongKeyCountStarOperator groupByMode: HASH vectorOutput: true keyExpressions: col 4 - native: false + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: _col0 (type: boolean) mode: hash outputColumnNames: _col0, _col1 @@ -1427,7 +1430,7 @@ STAGE PLANS: enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true groupByVectorOutput: true inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat - allNative: false + allNative: true usesVectorUDFAdaptor: true vectorized: true Reducer 2 @@ -1449,8 +1452,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: boolean) mode: mergepartial outputColumnNames: _col0, _col1 @@ -1540,14 +1543,13 @@ STAGE PLANS: Group By Operator aggregations: count() Group By Vectorization: - aggregators: VectorUDAFCountStar(*) -> bigint - className: VectorGroupByOperator + className: VectorGroupByHashOneLongKeyCountStarOperator groupByMode: HASH vectorOutput: true keyExpressions: col 4 - native: false + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: _col0 (type: boolean) mode: hash outputColumnNames: _col0, _col1 @@ -1569,7 +1571,7 @@ STAGE PLANS: enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true groupByVectorOutput: true inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat - allNative: false + allNative: true usesVectorUDFAdaptor: true vectorized: true Reducer 2 @@ -1591,8 +1593,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: boolean) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/llap/vector_binary_join_groupby.q.out ql/src/test/results/clientpositive/llap/vector_binary_join_groupby.q.out index 9f059b9..55cdde9 100644 --- ql/src/test/results/clientpositive/llap/vector_binary_join_groupby.q.out +++ ql/src/test/results/clientpositive/llap/vector_binary_join_groupby.q.out @@ -177,8 +177,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -261,8 +262,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -376,8 +378,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 10 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: bin (type: binary) mode: hash outputColumnNames: _col0, _col1 @@ -421,8 +424,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: binary) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/llap/vector_cast_constant.q.out ql/src/test/results/clientpositive/llap/vector_cast_constant.q.out index 2b8aaaa..801e7e3 100644 --- ql/src/test/results/clientpositive/llap/vector_cast_constant.q.out +++ ql/src/test/results/clientpositive/llap/vector_cast_constant.q.out @@ -145,14 +145,15 @@ STAGE PLANS: Group By Operator aggregations: avg(50), avg(50.0), avg(50) Group By Vectorization: - aggregators: VectorUDAFAvgLong(ConstantVectorExpression(val 50) -> 11:long) -> struct, VectorUDAFAvgDouble(ConstantVectorExpression(val 50.0) -> 12:double) -> struct, VectorUDAFAvgDecimal(ConstantVectorExpression(val 50) -> 13:decimal(10,0)) -> struct + aggregators: VectorUDAFAvgLong(ConstantVectorExpression(val 50) -> 17:long) -> struct, VectorUDAFAvgDouble(ConstantVectorExpression(val 50.0) -> 18:double) -> struct, VectorUDAFAvgDecimal(ConstantVectorExpression(val 50) -> 19:decimal(10,0)) -> struct className: VectorGroupByOperator groupByMode: HASH vectorOutput: true keyExpressions: col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2] keys: _col0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 @@ -197,8 +198,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function avg on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0, 1, 2] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3 diff --git ql/src/test/results/clientpositive/llap/vector_char_2.q.out ql/src/test/results/clientpositive/llap/vector_char_2.q.out index 48c6281..e600828 100644 --- ql/src/test/results/clientpositive/llap/vector_char_2.q.out +++ ql/src/test/results/clientpositive/llap/vector_char_2.q.out @@ -102,8 +102,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1] keys: _col0 (type: char(20)) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -148,8 +149,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0, 1] keys: KEY._col0 (type: char(20)) mode: mergepartial outputColumnNames: _col0, _col1, _col2 @@ -302,8 +304,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1] keys: _col0 (type: char(20)) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -348,8 +351,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0, 1] keys: KEY._col0 (type: char(20)) mode: mergepartial outputColumnNames: _col0, _col1, _col2 diff --git ql/src/test/results/clientpositive/llap/vector_coalesce_2.q.out ql/src/test/results/clientpositive/llap/vector_coalesce_2.q.out index 55a1d42..482f336 100644 --- ql/src/test/results/clientpositive/llap/vector_coalesce_2.q.out +++ ql/src/test/results/clientpositive/llap/vector_coalesce_2.q.out @@ -58,7 +58,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: _col0 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -81,7 +80,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: string) mode: mergepartial outputColumnNames: _col0, _col1 @@ -234,8 +232,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: _col0 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -279,8 +278,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: string) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/llap/vector_complex_all.q.out ql/src/test/results/clientpositive/llap/vector_complex_all.q.out index 4503cc4..2d430f1 100644 --- ql/src/test/results/clientpositive/llap/vector_complex_all.q.out +++ ql/src/test/results/clientpositive/llap/vector_complex_all.q.out @@ -904,6 +904,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH projectedOutputColumns: [0] mode: hash @@ -957,6 +959,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0] mode: mergepartial @@ -1126,6 +1130,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function count on column vector type BYTES] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0] keys: str (type: string) @@ -1184,6 +1190,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0] keys: KEY._col0 (type: string) @@ -1297,6 +1305,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0] keys: KEY._col0 (type: string) diff --git ql/src/test/results/clientpositive/llap/vector_count_distinct.q.out ql/src/test/results/clientpositive/llap/vector_count_distinct.q.out index d45a15f..c033418 100644 --- ql/src/test/results/clientpositive/llap/vector_count_distinct.q.out +++ ql/src/test/results/clientpositive/llap/vector_count_distinct.q.out @@ -1271,8 +1271,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 16 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: ws_order_number (type: int) mode: hash outputColumnNames: _col0 @@ -1313,8 +1314,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0 @@ -1327,8 +1329,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1358,8 +1361,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/llap/vector_decimal_aggregate.q.out ql/src/test/results/clientpositive/llap/vector_decimal_aggregate.q.out index 8ea03f7..9d57be9 100644 --- ql/src/test/results/clientpositive/llap/vector_decimal_aggregate.q.out +++ ql/src/test/results/clientpositive/llap/vector_decimal_aggregate.q.out @@ -75,8 +75,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 3 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function count on column vector type DECIMAL, Cannot specialize aggregation function max on column vector type DECIMAL, Cannot specialize aggregation function min on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL, Cannot specialize aggregation function count on column vector type DECIMAL, Cannot specialize aggregation function max on column vector type DECIMAL, Cannot specialize aggregation function min on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8] keys: cint (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9 @@ -120,8 +121,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [Cannot specialize aggregation function max on column vector type DECIMAL, Cannot specialize aggregation function min on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL, Cannot specialize aggregation function max on column vector type DECIMAL, Cannot specialize aggregation function min on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9 @@ -239,8 +241,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 3 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function count on column vector type DECIMAL, Cannot specialize aggregation function max on column vector type DECIMAL, Cannot specialize aggregation function min on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL, Cannot specialize aggregation function avg on column vector type DECIMAL, Cannot specialize aggregation function stddev_pop on column vector type DECIMAL, Cannot specialize aggregation function stddev_samp on column vector type DECIMAL, Cannot specialize aggregation function count on column vector type DECIMAL, Cannot specialize aggregation function max on column vector type DECIMAL, Cannot specialize aggregation function min on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL, Cannot specialize aggregation function avg on column vector type DECIMAL, Cannot specialize aggregation function stddev_pop on column vector type DECIMAL, Cannot specialize aggregation function stddev_samp on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] keys: cint (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15 @@ -284,8 +287,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [Cannot specialize aggregation function max on column vector type DECIMAL, Cannot specialize aggregation function min on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL, Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function stddev_samp on column vector type STRUCT, Cannot specialize aggregation function max on column vector type DECIMAL, Cannot specialize aggregation function min on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL, Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function stddev_samp on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15 diff --git ql/src/test/results/clientpositive/llap/vector_decimal_precision.q.out ql/src/test/results/clientpositive/llap/vector_decimal_precision.q.out index 3f32eb2..473a884 100644 --- ql/src/test/results/clientpositive/llap/vector_decimal_precision.q.out +++ ql/src/test/results/clientpositive/llap/vector_decimal_precision.q.out @@ -589,8 +589,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1] mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 400 Basic stats: COMPLETE Column stats: NONE @@ -630,8 +631,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function sum on column vector type DECIMAL, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0, 1] mode: mergepartial outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 400 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/llap/vector_distinct_2.q.out ql/src/test/results/clientpositive/llap/vector_distinct_2.q.out index b7f6a80..5f7b6da 100644 --- ql/src/test/results/clientpositive/llap/vector_distinct_2.q.out +++ ql/src/test/results/clientpositive/llap/vector_distinct_2.q.out @@ -146,8 +146,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 8 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: t (type: tinyint), s (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -188,8 +189,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [] keys: KEY._col0 (type: tinyint), KEY._col1 (type: string) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/llap/vector_empty_where.q.out ql/src/test/results/clientpositive/llap/vector_empty_where.q.out index b250332..9e392b4 100644 --- ql/src/test/results/clientpositive/llap/vector_empty_where.q.out +++ ql/src/test/results/clientpositive/llap/vector_empty_where.q.out @@ -51,12 +51,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: cint (type: int) mode: hash outputColumnNames: _col0 - Statistics: Num rows: 2888 Data size: 8628 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 3016 Data size: 9008 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: int) sort order: + @@ -65,7 +66,7 @@ STAGE PLANS: className: VectorReduceSinkLongOperator native: true nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true - Statistics: Num rows: 2888 Data size: 8628 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 3016 Data size: 9008 Basic stats: COMPLETE Column stats: COMPLETE Execution mode: vectorized, llap LLAP IO: all inputs Map Vectorization: @@ -93,12 +94,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0 - Statistics: Num rows: 2888 Data size: 8628 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 3016 Data size: 9008 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator aggregations: count(_col0) Group By Vectorization: @@ -107,8 +109,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -138,8 +141,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -214,12 +218,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: cint (type: int) mode: hash outputColumnNames: _col0 - Statistics: Num rows: 2888 Data size: 8628 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 3016 Data size: 9008 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: int) sort order: + @@ -228,7 +233,7 @@ STAGE PLANS: className: VectorReduceSinkLongOperator native: true nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true - Statistics: Num rows: 2888 Data size: 8628 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 3016 Data size: 9008 Basic stats: COMPLETE Column stats: COMPLETE Execution mode: vectorized, llap LLAP IO: all inputs Map Vectorization: @@ -256,12 +261,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0 - Statistics: Num rows: 2888 Data size: 8628 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 3016 Data size: 9008 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator aggregations: count(_col0) Group By Vectorization: @@ -270,8 +276,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -301,8 +308,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -385,12 +393,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: cint (type: int) mode: hash outputColumnNames: _col0 - Statistics: Num rows: 2888 Data size: 8628 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 3016 Data size: 9008 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: int) sort order: + @@ -399,7 +408,7 @@ STAGE PLANS: className: VectorReduceSinkLongOperator native: true nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true - Statistics: Num rows: 2888 Data size: 8628 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 3016 Data size: 9008 Basic stats: COMPLETE Column stats: COMPLETE Execution mode: vectorized, llap LLAP IO: all inputs Map Vectorization: @@ -427,12 +436,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0 - Statistics: Num rows: 2888 Data size: 8628 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 3016 Data size: 9008 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator aggregations: count(_col0) Group By Vectorization: @@ -441,8 +451,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -472,8 +483,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -556,12 +568,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: cint (type: int) mode: hash outputColumnNames: _col0 - Statistics: Num rows: 2888 Data size: 8628 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 3016 Data size: 9008 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: int) sort order: + @@ -570,7 +583,7 @@ STAGE PLANS: className: VectorReduceSinkLongOperator native: true nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true - Statistics: Num rows: 2888 Data size: 8628 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 3016 Data size: 9008 Basic stats: COMPLETE Column stats: COMPLETE Execution mode: vectorized, llap LLAP IO: all inputs Map Vectorization: @@ -598,12 +611,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0 - Statistics: Num rows: 2888 Data size: 8628 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 3016 Data size: 9008 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator aggregations: count(_col0) Group By Vectorization: @@ -612,8 +626,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -643,8 +658,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE diff --git ql/src/test/results/clientpositive/llap/vector_groupby4.q.out ql/src/test/results/clientpositive/llap/vector_groupby4.q.out index 4399554..97ea260 100644 --- ql/src/test/results/clientpositive/llap/vector_groupby4.q.out +++ ql/src/test/results/clientpositive/llap/vector_groupby4.q.out @@ -98,8 +98,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [PARTIAL1/PARTIAL2/PARTIALS mode not supported] empty IS false vectorProcessingMode: STREAMING - projectedOutputColumns: [] keys: KEY._col0 (type: string) mode: partial1 outputColumnNames: _col0 @@ -130,8 +131,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING - projectedOutputColumns: [] keys: KEY._col0 (type: string) mode: final outputColumnNames: _col0 diff --git ql/src/test/results/clientpositive/llap/vector_groupby6.q.out ql/src/test/results/clientpositive/llap/vector_groupby6.q.out index a91b715..fca198b 100644 --- ql/src/test/results/clientpositive/llap/vector_groupby6.q.out +++ ql/src/test/results/clientpositive/llap/vector_groupby6.q.out @@ -98,8 +98,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [PARTIAL1/PARTIAL2/PARTIALS mode not supported] empty IS false vectorProcessingMode: STREAMING - projectedOutputColumns: [] keys: KEY._col0 (type: string) mode: partial1 outputColumnNames: _col0 @@ -130,8 +131,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING - projectedOutputColumns: [] keys: KEY._col0 (type: string) mode: final outputColumnNames: _col0 diff --git ql/src/test/results/clientpositive/llap/vector_groupby_3.q.out ql/src/test/results/clientpositive/llap/vector_groupby_3.q.out index cd9ff27..81d0f64 100644 --- ql/src/test/results/clientpositive/llap/vector_groupby_3.q.out +++ ql/src/test/results/clientpositive/llap/vector_groupby_3.q.out @@ -148,8 +148,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 8 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: t (type: tinyint), s (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -193,8 +194,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: tinyint), KEY._col1 (type: string) mode: mergepartial outputColumnNames: _col0, _col1, _col2 diff --git ql/src/test/results/clientpositive/llap/vector_groupby_grouping_id1.q.out ql/src/test/results/clientpositive/llap/vector_groupby_grouping_id1.q.out index aabe7d6..cdf3a50 100644 --- ql/src/test/results/clientpositive/llap/vector_groupby_grouping_id1.q.out +++ ql/src/test/results/clientpositive/llap/vector_groupby_grouping_id1.q.out @@ -71,10 +71,15 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: string), _col1 (type: string), 0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -105,7 +110,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:string, val:string partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -129,6 +134,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [] keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: int) @@ -231,10 +238,15 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: string), _col1 (type: string), 0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -265,7 +277,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:string, val:string partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -289,6 +301,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [] keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: int) @@ -391,10 +405,15 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: string), _col1 (type: string), 0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -425,7 +444,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:string, val:string partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -449,6 +468,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [] keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: int) @@ -545,10 +566,15 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: string), _col1 (type: string), 0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -579,7 +605,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:string, val:string partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -603,6 +629,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [] keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: int) @@ -699,10 +727,15 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: string), _col1 (type: string), 0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -733,7 +766,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:string, val:string partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -757,6 +790,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [] keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: int) @@ -860,10 +895,15 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: string), _col1 (type: string), 0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -894,7 +934,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:string, val:string partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -918,6 +958,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [] keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: int) diff --git ql/src/test/results/clientpositive/llap/vector_groupby_grouping_id2.q.out ql/src/test/results/clientpositive/llap/vector_groupby_grouping_id2.q.out index d16044c..ef2437f 100644 --- ql/src/test/results/clientpositive/llap/vector_groupby_grouping_id2.q.out +++ ql/src/test/results/clientpositive/llap/vector_groupby_grouping_id2.q.out @@ -74,8 +74,10 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: HASH projectedOutputColumns: [0] keys: _col0 (type: int), _col1 (type: int), 0 (type: int) @@ -110,7 +112,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:int, value:int partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -136,6 +138,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: STREAMING projectedOutputColumns: [0] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -180,6 +184,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: STREAMING projectedOutputColumns: [0] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -278,8 +284,10 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: HASH projectedOutputColumns: [0] keys: _col0 (type: int), _col1 (type: int), 0 (type: int) @@ -314,7 +322,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:int, value:int partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -340,6 +348,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: STREAMING projectedOutputColumns: [0] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -384,6 +394,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: STREAMING projectedOutputColumns: [0] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -492,10 +504,15 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int), _col1 (type: int), 0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -527,7 +544,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:int, value:int partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -551,6 +568,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [PARTIAL1/PARTIAL2/PARTIALS mode not supported] empty IS false vectorProcessingMode: STREAMING projectedOutputColumns: [] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -592,6 +611,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING projectedOutputColumns: [] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -609,14 +630,15 @@ STAGE PLANS: Group By Operator aggregations: count() Group By Vectorization: - aggregators: VectorUDAFCountStar(*) -> bigint - className: VectorGroupByOperator + className: VectorGroupByHashOneLongKeyCountStarOperator groupByMode: HASH vectorOutput: true keyExpressions: col 2 - native: false + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: HASH projectedOutputColumns: [0] + singleCountAggreation: COUNT_STAR keys: _col4 (type: int) mode: hash outputColumnNames: _col0, _col1 @@ -659,6 +681,7 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: STREAMING projectedOutputColumns: [0] keys: KEY._col0 (type: int) @@ -702,6 +725,7 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: STREAMING projectedOutputColumns: [0] keys: KEY._col0 (type: int) @@ -804,10 +828,15 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int), _col1 (type: int), 0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -839,7 +868,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:int, value:int partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -863,6 +892,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [PARTIAL1/PARTIAL2/PARTIALS mode not supported] empty IS false vectorProcessingMode: STREAMING projectedOutputColumns: [] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -904,6 +935,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING projectedOutputColumns: [] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -921,14 +954,15 @@ STAGE PLANS: Group By Operator aggregations: count() Group By Vectorization: - aggregators: VectorUDAFCountStar(*) -> bigint - className: VectorGroupByOperator + className: VectorGroupByHashOneLongKeyCountStarOperator groupByMode: HASH vectorOutput: true keyExpressions: col 2 - native: false + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: HASH projectedOutputColumns: [0] + singleCountAggreation: COUNT_STAR keys: _col4 (type: int) mode: hash outputColumnNames: _col0, _col1 @@ -971,6 +1005,7 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: STREAMING projectedOutputColumns: [0] keys: KEY._col0 (type: int) @@ -1014,6 +1049,7 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: STREAMING projectedOutputColumns: [0] keys: KEY._col0 (type: int) @@ -1113,10 +1149,15 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int), _col1 (type: int), 0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -1160,7 +1201,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:int, value:int partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -1184,6 +1225,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [PARTIAL1/PARTIAL2/PARTIALS mode not supported] empty IS false vectorProcessingMode: STREAMING projectedOutputColumns: [] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -1225,6 +1268,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING projectedOutputColumns: [] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -1291,6 +1336,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [PARTIAL1/PARTIAL2/PARTIALS mode not supported] empty IS false vectorProcessingMode: STREAMING projectedOutputColumns: [] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -1332,6 +1379,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING projectedOutputColumns: [] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -1486,10 +1535,15 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int), _col1 (type: int), 0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -1533,7 +1587,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:int, value:int partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -1557,6 +1611,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [PARTIAL1/PARTIAL2/PARTIALS mode not supported] empty IS false vectorProcessingMode: STREAMING projectedOutputColumns: [] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -1598,6 +1654,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING projectedOutputColumns: [] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -1664,6 +1722,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [PARTIAL1/PARTIAL2/PARTIALS mode not supported] empty IS false vectorProcessingMode: STREAMING projectedOutputColumns: [] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -1705,6 +1765,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING projectedOutputColumns: [] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -1851,8 +1913,10 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: HASH projectedOutputColumns: [0] keys: _col0 (type: int), _col1 (type: int), 0 (type: int) @@ -1886,7 +1950,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:int, value:int partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -1912,6 +1976,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -2018,10 +2084,15 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int), _col1 (type: int), 0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -2052,7 +2123,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:int, value:int partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -2076,6 +2147,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -2093,14 +2166,15 @@ STAGE PLANS: Group By Operator aggregations: count() Group By Vectorization: - aggregators: VectorUDAFCountStar(*) -> bigint - className: VectorGroupByOperator + className: VectorGroupByHashOneLongKeyCountStarOperator groupByMode: HASH vectorOutput: true keyExpressions: col 2 - native: false + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: HASH projectedOutputColumns: [0] + singleCountAggreation: COUNT_STAR keys: _col4 (type: int) mode: hash outputColumnNames: _col0, _col1 @@ -2142,6 +2216,7 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0] keys: KEY._col0 (type: int) @@ -2239,10 +2314,15 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int), _col1 (type: int), 0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -2284,7 +2364,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:int, value:int partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -2308,6 +2388,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) @@ -2374,6 +2456,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) diff --git ql/src/test/results/clientpositive/llap/vector_groupby_grouping_id3.q.out ql/src/test/results/clientpositive/llap/vector_groupby_grouping_id3.q.out index 22a71e4..4a379c3 100644 --- ql/src/test/results/clientpositive/llap/vector_groupby_grouping_id3.q.out +++ ql/src/test/results/clientpositive/llap/vector_groupby_grouping_id3.q.out @@ -81,8 +81,10 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: HASH projectedOutputColumns: [0] keys: key (type: int), value (type: int), 0 (type: int) @@ -124,7 +126,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:int, value:int partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -140,7 +142,7 @@ STAGE PLANS: dataColumnCount: 4 dataColumns: KEY._col0:int, KEY._col1:int, KEY._col2:int, VALUE._col0:bigint partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reduce Operator Tree: Group By Operator aggregations: count(VALUE._col0) @@ -149,8 +151,10 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: MERGEPARTIAL vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 1) -> 4:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 1) -> 6:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0] keys: KEY._col0 (type: int), KEY._col1 (type: int), 1 (type: int) @@ -259,8 +263,10 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 2:long + keyExpressions: col 0, col 1, ConstantVectorExpression(val 0) -> 4:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: HASH projectedOutputColumns: [0] keys: _col0 (type: int), _col1 (type: int), 0 (type: int) @@ -294,7 +300,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: key:int, value:int partitionColumnCount: 0 - scratchColumnTypeNames: bigint + scratchColumnTypeNames: bigint, bigint, bigint Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -320,6 +326,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0] keys: KEY._col0 (type: int), KEY._col1 (type: int), KEY._col2 (type: int) diff --git ql/src/test/results/clientpositive/llap/vector_groupby_mapjoin.q.out ql/src/test/results/clientpositive/llap/vector_groupby_mapjoin.q.out index e43b4d1..e5be936 100644 --- ql/src/test/results/clientpositive/llap/vector_groupby_mapjoin.q.out +++ ql/src/test/results/clientpositive/llap/vector_groupby_mapjoin.q.out @@ -134,8 +134,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function count on column vector type BYTES] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1] mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE @@ -154,8 +155,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: key (type: string) mode: hash outputColumnNames: _col0 @@ -225,8 +227,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0, 1] mode: mergepartial outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE @@ -255,8 +258,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [] keys: KEY._col0 (type: string) mode: mergepartial outputColumnNames: _col0 diff --git ql/src/test/results/clientpositive/llap/vector_groupby_reduce.q.out ql/src/test/results/clientpositive/llap/vector_groupby_reduce.q.out index 56afa70..eefedb8 100644 --- ql/src/test/results/clientpositive/llap/vector_groupby_reduce.q.out +++ ql/src/test/results/clientpositive/llap/vector_groupby_reduce.q.out @@ -274,8 +274,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 9 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: ss_ticket_number (type: int) mode: hash outputColumnNames: _col0 @@ -317,8 +318,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0 @@ -477,8 +479,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 9 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: ss_ticket_number (type: int) mode: hash outputColumnNames: _col0 @@ -519,8 +522,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0 @@ -534,8 +538,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [COMPLETE mode not supported] empty IS false vectorProcessingMode: STREAMING - projectedOutputColumns: [0] keys: _col0 (type: int) mode: complete outputColumnNames: _col0, _col1 @@ -774,8 +779,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function max on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2] keys: ss_item_sk (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 @@ -819,8 +825,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [Cannot specialize aggregation function max on column vector type DECIMAL, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0, 1, 2] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3 @@ -840,10 +847,11 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: ConstantVectorExpression(val 1) -> 4:long + keyExpressions: ConstantVectorExpression(val 1) -> 6:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function sum on column vector type DECIMAL, Cannot specialize aggregation function avg on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6] keys: 1 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 @@ -877,8 +885,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function sum on column vector type DECIMAL, Cannot specialize aggregation function avg on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 @@ -1004,8 +1013,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 9, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function max on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2] keys: ss_ticket_number (type: int), ss_item_sk (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4 @@ -1049,8 +1059,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function max on column vector type DECIMAL, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0, 1, 2] keys: KEY._col0 (type: int), KEY._col1 (type: int) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4 @@ -1072,8 +1083,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function sum on column vector type DECIMAL, Cannot specialize aggregation function avg on column vector type DECIMAL, COMPLETE mode not supported] empty IS false vectorProcessingMode: STREAMING - projectedOutputColumns: [0, 1, 2, 3, 4, 5] keys: _col1 (type: int), _col0 (type: int) mode: complete outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 diff --git ql/src/test/results/clientpositive/llap/vector_groupby_simple.q.out ql/src/test/results/clientpositive/llap/vector_groupby_simple.q.out new file mode 100644 index 0000000..6a13196 --- /dev/null +++ ql/src/test/results/clientpositive/llap/vector_groupby_simple.q.out @@ -0,0 +1,22096 @@ +PREHOOK: query: create table vectortab2k( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' +STORED AS TEXTFILE +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@vectortab2k +POSTHOOK: query: create table vectortab2k( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' +STORED AS TEXTFILE +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@vectortab2k +PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/vectortab2k' OVERWRITE INTO TABLE vectortab2k +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@vectortab2k +POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/vectortab2k' OVERWRITE INTO TABLE vectortab2k +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@vectortab2k +PREHOOK: query: create table vectortab2korc( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +STORED AS ORC +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@vectortab2korc +POSTHOOK: query: create table vectortab2korc( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +STORED AS ORC +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@vectortab2korc +PREHOOK: query: INSERT INTO TABLE vectortab2korc SELECT * FROM vectortab2k +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2k +PREHOOK: Output: default@vectortab2korc +POSTHOOK: query: INSERT INTO TABLE vectortab2korc SELECT * FROM vectortab2k +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2k +POSTHOOK: Output: default@vectortab2korc +POSTHOOK: Lineage: vectortab2korc.b SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:b, type:bigint, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.bo SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:bo, type:boolean, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.d SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:d, type:double, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.dc SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:dc, type:decimal(38,18), comment:null), ] +POSTHOOK: Lineage: vectortab2korc.dt SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:dt, type:date, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.f SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:f, type:float, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.i SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:i, type:int, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.s SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:s, type:string, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.s2 SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:s2, type:string, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.si SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:si, type:smallint, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.t SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:t, type:tinyint, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.ts SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:ts, type:timestamp, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.ts2 SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:ts2, type:timestamp, comment:null), ] +PREHOOK: query: explain vectorization detail +select i, max(b) from vectortab2korc group by i +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select i, max(b) from vectortab2korc group by i +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: true + enabledConditionsMet: [hive.vectorized.execution.enabled IS true] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez +#### A masked pattern was here #### + Edges: + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + TableScan Vectorization: + native: true + projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + Select Operator + expressions: i (type: int), b (type: bigint) + outputColumnNames: i, b + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [2, 3] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: max(b) + Group By Vectorization: + className: VectorGroupByHashOneLongKeyOperator + groupByMode: HASH + vectorOutput: true + keyExpressions: col 2 + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + vectorProcessingMode: HASH + projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {MAX_FUNC:0, PRIMITIVE, LONG, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 + keys: i (type: int) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Map-reduce partition columns: _col0 (type: int) + Reduce Sink Vectorization: + className: VectorReduceSinkLongOperator + keyColumns: [0] + native: true + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + valueColumns: [1] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Execution mode: vectorized, llap + LLAP IO: all inputs + Map Vectorization: + enabled: true + enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true + groupByVectorOutput: true + inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + allNative: true + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 13 + includeColumns: [2, 3] + dataColumns: t:tinyint, si:smallint, i:int, b:bigint, f:float, d:double, dc:decimal(38,18), bo:boolean, s:string, s2:string, ts:timestamp, ts2:timestamp, dt:date + partitionColumnCount: 0 + Reducer 2 + Execution mode: vectorized, llap + Reduce Vectorization: + enabled: true + enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true + reduceColumnNullOrder: a + reduceColumnSortOrder: + + groupByVectorOutput: true + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 2 + dataColumns: KEY._col0:int, VALUE._col0:bigint + partitionColumnCount: 0 + Reduce Operator Tree: + Group By Operator + aggregations: max(VALUE._col0) + Group By Vectorization: + aggregators: VectorUDAFMaxLong(col 1) -> bigint + className: VectorGroupByOperator + groupByMode: MERGEPARTIAL + vectorOutput: true + keyExpressions: col 0 + native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false + vectorProcessingMode: MERGE_PARTIAL + projectedOutputColumns: [0] + keys: KEY._col0 (type: int) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + File Sink Vectorization: + className: VectorFileSinkOperator + native: false + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select i, max(b) from vectortab2korc group by i +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select i, max(b) from vectortab2korc group by i +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-1001529082 1458 +-1004204053 7223569671814987776 +-1006768637 3443 +-1009249550 1786 +-1011125931 9185458640237641728 +-1012329052 9182828596851990528 +-1017027298 1863 +-1017629298 -7328087811698909184 +-101960322 -8572823448513445888 +-1021859098 -8302817097848307712 +-1024500955 8987827141270880256 +-1026458834 8515682078777081856 +-1026746699 845 +-1030565036 7921639119138070528 +-1031592590 -8665218198816497664 +-103219371 -7881262505761710080 +-1032306832 3606 +-1036720157 NULL +-1038565721 677 +-1039040287 NULL +-1043413503 3810 +-1045771991 -8789178184387641344 +-1048181367 2138 +-1050029724 -7623047151287754752 +-1052493316 -9013952631912325120 +-1054609414 835 +-1057522129 -7429331808102899712 +-1058166020 8793387410919038976 +-1058356124 8900180888218329088 +-1061222139 7933040277013962752 +-1061859761 7237310132329488384 +-1062159435 -6935548339131138048 +-1063673827 5 +-1065248998 -7330203470474985472 +-1066775085 -6921654334727036928 +-1067083033 7212090742612467712 +-1070951602 7697541332524376064 +-1078214868 3286 +-1078397698 -8948335470186373120 +-1078579367 -7867219225874571264 +-1079086534 8643198489997254656 +-1079231269 9048002942653710336 +-1079633326 -8866442231663067136 +-1081328752 213 +-1081766449 2524 +-1091003492 -8104684579106914304 +-1092872261 7731443941834678272 +-1095938490 6923604860394528768 +-1096013673 7022349041913978880 +-1096771844 9199741683232399360 +-1098379914 1789 +-1100641049 -8518060755719585792 +-1104268719 1678 +-1106469823 255 +-1106685577 7086206629592252416 +-1108723753 -7287583262310350848 +-1109134719 8613562211893919744 +-1111814111 NULL +-1111937842 -8607195685207408640 +-1112062809 690 +-1114208576 -7380731416973295616 +-1116100266 2475 +-1117019030 -8858063395050110976 +-1117358187 -7052619594823221248 +-1124028213 8489735221193138176 +-1125605439 2587 +-1126628450 8920344895701393408 +-1127100849 -8203008052020879360 +-1128317466 3307 +-1129489281 7581614118458335232 +-1131684944 -8431492599012163584 +-113253627 -8172827216441573376 +-1134786190 3467 +-1138530007 7961909238130270208 +-1140071443 1282 +-1141652793 2563 +-1141801925 -8395998375405912064 +-1144920802 3058 +-1144976744 289 +-1146055387 1914 +-1146649990 -7804116532814151680 +-1147471772 -6962292590214234112 +-1153978907 7164349895861829632 +-1155174991 -7420448501073051648 +-1156193121 691 +-1164833898 2512 +-116484575 7801697837312884736 +-1168823523 -7037375807670501376 +-1171326281 3213 +-117723745 -7046180371529351168 +-1179668872 2085 +-1180153422 -7512297136103800832 +-1183469360 736 +-1184620079 7947544013461512192 +-1196101029 -8300764106868350976 +-1196808950 -8585134536083660800 +-1197602595 -9058029636530003968 +-1198036877 3029 +-1198465530 3055 +-1201785350 -7772064021830574080 +-1202975006 1556 +-1205034356 -7079898537463537664 +-120692484 8979012655944220672 +-120704505 2180 +-1210261177 2476 +-1210550573 8557218322962644992 +-1210907929 -7784419454650843136 +-121162464 2846 +-1212433954 3255 +-1212524805 -8322751250650218496 +-1213081886 -7782344916178796544 +-1216166764 -8965578088652095488 +-1216206795 -9213132862973829120 +-1218581850 -7624057992767782912 +-1218592418 8644602243484803072 +-1218871391 3253 +-1222897252 1495 +-122391516 -8358130693961195520 +-1226425562 7718825401976684544 +-1227085134 454 +-1228063838 7779735136559579136 +-1230459100 -6988970700649168896 +-1231821948 7232273749940838400 +-1232183416 2905 +-1234163924 9131533983989358592 +-123529324 2700 +-1236536142 -8546758906409312256 +-1240048334 9050032047355125760 +-1240208945 967 +-1240912824 8407869317250220032 +-1242677422 -7779270198785875968 +-1244527286 8631515095562887168 +-1247229632 NULL +-1247325089 -8445801063348281344 +-1248781172 9188173682239275008 +-1249011023 -8760655406971863040 +-1249134513 2688 +-1254129998 658 +-125419186 -8754966081778565120 +-1257859205 914 +-1259611508 -7910019233726242816 +-1261099087 663 +-1262842192 -7797149520019062784 +-1266138408 7054271419461812224 +-1269216718 8367680396909404160 +-1270523286 378 +-1272838092 7165364563962191872 +-1274158260 8220104397160169472 +-1280919769 -8525212657458348032 +-1283465451 3911 +-1288198020 91 +-1289501869 -7536330682873937920 +-1289665817 7909645665163804672 +-1299159155 3111 +-1302592941 2565 +-1305139473 8936639033158410240 +-1312782341 8551446856960942080 +-1313618168 7678790769408172032 +-1318045616 -8704234107608203264 +-1319686435 2140 +-1319753324 -7661192563533062144 +-1322736153 3722 +-1324624386 367 +-1326025787 524 +-1333770335 7922443154272395264 +-1339495001 -8047774491688255488 +-1340213051 6963217546192322560 +-1341627565 1086 +-1343327 2689 +-1343425152 -7461750143936897024 +-1344287228 -8683802826440105984 +-1345085327 6991316084916879360 +-1345391395 -7138415011665043456 +-134686276 -7245872320493322240 +-1348149160 296 +-1349876582 -7404052043914526720 +-1351437382 -7511952204985049088 +-1352545619 7149417430082027520 +-1353470095 7210160489915236352 +-1356601829 -7201085131997011968 +-1358159222 -8845239510002753536 +-1359838019 9083704659251798016 +-1362178985 1287 +-1364322216 -8555709701170552832 +-136514115 -7998947380180819968 +-1366059787 7720187583697502208 +-1369253050 -6986178228432322560 +-1369302744 1053 +-1371840597 8822384228057604096 +-1379039356 8120593157178228736 +-1380191654 3609 +-1380678829 7545689659010949120 +-1391183008 -8013397854633648128 +-1392487784 3990 +-139448716 3789 +-1402821064 1422 +-1403154847 NULL +-1404921781 1972 +-1406691044 -7824788571789279232 +-1407817977 -9178166810751909888 +-1409508377 -8566940231897874432 +-1411407810 8782900615468302336 +-1412187081 2279 +-1419573027 7195454019231834112 +-1421396891 8454154705460666368 +-1421860505 -7221474017515347968 +-1422780798 1613 +-1423467446 3702 +-1423477356 7308289763456000000 +-1424027104 8290014929764040704 +-1424770359 -7198372044947275776 +-1425942083 7440265908266827776 +-1426893312 3579 +-1429346144 2270 +-1430903652 1541 +-1431196400 3769 +-1432316859 -7712425776235274240 +-1434562279 -8731068123910987776 +-1437126017 7517159036469575680 +-1439293109 -7464270453557993472 +-1439424023 7473537548003352576 +-1442424087 -8623238306523824128 +-1444011944 NULL +-1446132523 1948 +-1447140800 4020 +-1447263708 2277 +-144862954 1115 +-1454941039 2026 +-1458382451 -7003696402314215424 +-1459528251 8135164922674872320 +-1460613213 8875745082589929472 +-1462331586 1914 +-1462604138 -7276111129363046400 +-1463884101 -7409317158045442048 +-1464514590 -8293833565967810560 +-1464762852 NULL +-1469463456 501 +-146961490 8100036735858401280 +-1471147786 2009 +-1477897348 1719 +-1478812842 -7663293054873812992 +-1484033125 -7669169138124275712 +-1484787952 2933 +-1489628668 -7878145001776152576 +-1491722659 8017403886247927808 +-1493282775 2560 +-1497098905 1058 +-1502924486 8752150411997356032 +-1505397109 8853989376829833216 +-1506324615 923 +-1511162508 8928133990107881472 +-1516259168 4056 +-1517536924 9054887854393950208 +-1524081566 8302473563519950848 +-1524554771 8323460620425330688 +-1527024213 9043089884440068096 +-1528033060 -8485389240529354752 +-1531040609 8641221723991433216 +-1533934649 -8651641150831362048 +-1534238977 NULL +-1534307678 9048297564833079296 +-1538558250 3002 +-1538978853 1752 +-1541281934 950 +-1544877665 3322 +-1545388906 8579974641030365184 +-1545572711 1693 +-1552053883 782 +-1554130090 883 +-1554325042 583 +-1556127172 -7139677575412686848 +-1561738723 2255 +-1562552002 -8335810316927213568 +-1563676282 976 +-1565671389 8984935029383389184 +-1565785026 8666178591503564800 +-1568536214 -9148197394287779840 +-1568646283 8411494452500930560 +-1575588203 1651 +-1578387726 8508401924853850112 +-158233823 1346 +-1583445177 3622 +-158420748 -8756989568739835904 +-158848747 7784489776013295616 +-1594957608 NULL +-1599905147 -7753051494275432448 +-1602792666 2373 +-1603071732 3874 +-1603374745 7471208109437304832 +-1605045257 NULL +-1606567895 8410599906334097408 +-16094879 -8430283518005846016 +-1609864597 -8084716955963252736 +-1614194712 7062605127422894080 +-1616030844 NULL +-161884324 3781 +-1620148746 -8870673219965001728 +-1621721177 2843 +-1621814212 3352 +-1622653291 3103 +-1625062942 1796 +-1625800024 -9203942396257984512 +-1626062014 8221561626658881536 +-1627366321 3770 +-1628799508 7775034125776363520 +-1635301453 9040958359122640896 +-163859725 8142241016679735296 +-1642207005 -8117838333114212352 +-1643714866 8463868417649524736 +-1644966759 NULL +-1648991909 -9051477157204770816 +-1651993300 8156782979767238656 +-1652600376 2072 +-1655030261 -7629401308029976576 +-1655396452 2186 +-1656822229 3625 +-1660344634 1890 +-1665164127 8368012468775608320 +-1668736016 -7488345684795342848 +-1668974292 2461 +-1669227632 7045967493826387968 +-1669848306 7344029858387820544 +-1674623501 2933 +-1676261015 2274 +-1679120527 2824 +-1688105985 -7845896959112658944 +-1699044525 7625728883085025280 +-1699049982 2244 +-1700451326 -8269917980278980608 +-1701492480 -9175038118837149696 +-1701502632 8815398225009967104 +-1702587308 7778936842502275072 +-1703620970 -8387536830476820480 +-170643477 2811 +-1706867123 8808467247666241536 +-1709117770 6924820982050758656 +-1709246310 279 +-1716506227 3462 +-1718163874 3682 +-1719427168 7204802700490858496 +-1721368386 -8240684139569233920 +-1721763321 -8016589197379289088 +-1726479726 -7831320202242228224 +-1726585032 8532016240026279936 +-1727003541 3770 +-1728171376 -8654433008222797824 +-1730740504 302 +-1731820254 -7989766326847807488 +-1733560816 NULL +-1735287250 7746402369011277824 +-1738775004 6996686091335884800 +-1741895392 -8688153842294595584 +-1743938290 7741854854673367040 +-1744964279 8649296591032172544 +-1745449855 8519937082746634240 +-1749415887 -8509547439040757760 +-1749841790 2412 +-1754203978 8004633750273925120 +-1754347372 375 +-1755088362 8698055291501543424 +-175727228 7662037650719850496 +-1758125445 3945 +-1759354458 169 +-1762037754 2551 +-1765795567 -7611584069753552896 +-1769037737 -8996954350906294272 +-1769423338 -7303847963918393344 +-1770229099 7238339720750948352 +-1770250407 2855 +-177025818 7411793502161182720 +-1784633305 -7507578199583694848 +-178568841 8325227661920133120 +-1798573685 -8604758220106014720 +-1800413845 7347732772348870656 +-1801684055 2776 +-1802746460 1217 +-180280420 8396433451610652672 +-1804244259 579 +-1805915233 -9075486079396069376 +-1808960215 8160569434550403072 +-181122344 -8379964450833367040 +-1811563127 -7593363318079610880 +-181523892 470 +-1817096156 294 +-1817564067 8287522765741301760 +-1817938378 -8710298418608619520 +-1818380492 7229607057201127424 +-1818456584 -8384695077413412864 +-1819075185 2465 +-1820436871 -8853553406533894144 +-1822850051 7368920486374989824 +-1826997220 7997694023324975104 +-1829691116 7490717730239250432 +-1830870295 2494 +-1831957182 7701723309715685376 +-1832606512 -8831091081349758976 +-1836166334 808 +-1838281337 7166263463731421184 +-1849091666 9064847977742032896 +-1850492820 311 +-1851280202 1524 +-1851680302 530 +-1856034030 9132009829414584320 +-1857500489 1198 +-1858443953 7060236714847412224 +-1862095575 2941 +-186600427 3664 +-1867014618 NULL +-186764959 590 +-1870912732 -7199983995864711168 +-1871209811 7068517339681259520 +-1871446009 3174 +-1873004551 1856 +-1875699183 -7572262898020278272 +-187804718 NULL +-1878572820 3421 +-1878838836 -8082793390939193344 +-1880783574 NULL +-1880877824 346 +-1881263242 7065344324692443136 +-1884780525 1021 +-1889139541 NULL +-1890963712 NULL +-18917438 -9088239683374350336 +-1892816721 -8182421179156905984 +-189393743 -8833019327569510400 +-1897998366 2625 +-1900369503 1791 +-1900894010 19 +-1901806083 1606 +-1903090602 2599 +-1904737684 NULL +-1908696083 -7524170566881329152 +-1909635960 3901 +-19116270 -8584520406368493568 +-1914072976 2295 +-1914210382 1032 +-191434898 383 +-191704948 -8887058200926093312 +-1918651448 -8675661101615489024 +-1918847735 -9101953184875757568 +-191899537 -7792903881635938304 +-1919939921 2320 +-192181579 3739 +-1921909135 1234 +-1924909143 301 +-1928197479 -7104310188119834624 +-1933192293 -7036607470351654912 +-1933374662 763 +-1937640350 -8028275725610909696 +-1938290238 -7140008543769042944 +-1939362279 779 +-1940205653 7348598907182800896 +-194270271 -8369487968903897088 +-1945738830 8295110846998233088 +-1946023520 2560 +-1947868215 2183 +-1948257321 1337 +-1949359208 -7172594404186693632 +-1949698319 -9004892183139811328 +-1952235832 7569249672628789248 +-1953605752 7500716020874674176 +-1954890941 1983 +-1955545912 -9189155542884474880 +-1955647385 3961 +-1960344717 2177 +-1967660827 7620183559667081216 +-1968097621 -6988811476286873600 +-1969235238 -7612466483992051712 +-1969751342 -7081500255163727872 +-1974257754 9001907486943993856 +-1974777102 1774 +-1974972123 8736061027343859712 +-1977762695 -7195217207163166720 +-1979314577 8779073705407963136 +-1983567458 7394967727502467072 +-1984079412 -7270034223527993344 +-1988508336 7027529814236192768 +-1989378509 1620 +-1989778424 -7687052294777208832 +-1992388855 NULL +-199587670 NULL +-1998652546 7779486624537370624 +-2007662579 2977 +-2009569943 7452756603516190720 +-2011708220 -8387347109404286976 +-201554470 491 +-2015780444 694 +-2016985611 7242751359672631296 +-2017279089 584 +-2019287179 2619 +-202035134 4024 +-2022383454 NULL +-2024003241 -7330413050756235264 +-202409329 -9145593811310010368 +-2027812975 3764 +-2028355450 2323 +-2032576637 2938 +-203416622 268 +-2037628236 2193 +-203911033 41 +-2041825946 1371 +-2042647152 -7511202710200885248 +-2042831105 6969599299897163776 +-2043805661 8365058996333953024 +-2052386812 -7849504559236210688 +-2053551539 6987889924212203520 +-2057666812 -8017791189288869888 +-206177972 1559 +-20639382 71 +-2065080832 950 +-2065287410 -7759238919361888256 +-20660936 1537 +-2066134281 3397 +-2069439395 NULL +-2071851852 -7209060152494817280 +-2074079977 -8619303037130301440 +-207546600 3462 +-2076460151 917 +-2076886223 -7805985795815342080 +-2077771325 1604 +-207899360 471 +-2081501748 130 +-2081809883 8435912708683087872 +-2086352100 3199 +-2087815643 -8892963883085578240 +-2096425960 803 +-2098078720 7235109456886816768 +-2111312205 7125231541858205696 +-2112149052 7599019810193211392 +-211669740 3208 +-2117280385 2786 +-2119539915 3725 +-2119724898 7818464507324121088 +-2122509553 3060 +-2124994385 7690986322714066944 +-213198503 8775009214012456960 +-2133145181 868 +-2136052026 -7916510129632296960 +-2137168636 8087737899452432384 +-2138343289 3401 +-214166042 8996824426131390464 +-2144138362 -7868306678534193152 +-2144241640 9073672806863790080 +-2146432765 8899122608190930944 +-2147071655 112 +-215703544 7370078518278397952 +-216495498 4030 +-217785690 1343 +-217930632 -7903158849011843072 +-223311809 1368 +-224865887 -7456869587112255488 +-226635871 NULL +-234278308 898 +-234758376 8111757081791733760 +-235238928 -7319315187617587200 +-235819331 -9078662294976061440 +-236700442 9116137265342169088 +-23865350 7461153404961128448 +-240529113 9085381906890203136 +-244778184 2020 +-249150336 1048 +-251576563 8059284960252731392 +-253084551 3974 +-267130580 -8034414142083170304 +-267554590 7454442625055145984 +-269702086 7696737688942567424 +-270683864 2492 +-273937943 8688483860094599168 +-283378057 7128222874437238784 +-287400633 3235 +-290558484 7061498706968428544 +-291577538 -7109790267244814336 +-292588406 NULL +-295186284 -9075302542655684608 +-295751373 2805 +-296195507 1614 +-297664578 9117063974299148288 +-298221893 9078604269481148416 +-300429552 1030 +-300717684 -7840338174858199040 +-303747347 8168742078705262592 +-306214368 -7679894005808693248 +-308225568 8472429318602268672 +-309571354 7871554728617025536 +-310343273 586 +-310584775 8160662610166194176 +-311437801 -8990843030306717696 +-314935936 8332670681629106176 +-316678117 1955 +-318206520 NULL +-318380015 8222714144797368320 +-327648289 -8719510423723155456 +-329336519 8374321007870836736 +-329695030 8962097525980225536 +-332125121 7333512171174223872 +-336625622 2502 +-337073639 7080269176324218880 +-337586880 3409 +-337829479 NULL +-340462064 -8086577583338061824 +-340951385 -7344947507044466688 +-343173797 1261 +-345542922 -7155539549555105792 +-346607939 999 +-348628614 7376467688511455232 +-352146259 7054938591408996352 +-357680544 919 +-359194591 1094 +-359943425 7310869618402910208 +-360113158 3021 +-36038293 7157247449513484288 +-361944328 213 +-362603422 3673 +-36682325 -7827420207675105280 +-369183838 -7329807949048193024 +-370093295 -7819437864839495680 +-370798230 2358 +-370901197 8558000156325707776 +-371779520 7892281003266408448 +-373034494 -8521578237232529408 +-373038706 3907 +-373541958 2971 +-374337252 -7185369278665605120 +-37773326 -7152177800841502720 +-37876543 -8859107121649893376 +-379174037 8518454006987948032 +-379643543 2485 +-38458614 NULL +-385247581 3083 +-387395264 -9142610685888192512 +-392713245 -8099313480512716800 +-393723522 1676 +-395499919 3430 +-396852483 4018 +-397683105 -8703026916864802816 +-397951021 7843804446688264192 +-399643110 -9215144824304721920 +-400501472 1866 +-402441123 8282648443538710528 +-40284975 1806 +-40407627 2348 +-406264741 8048726769133592576 +-407089271 661 +-409404534 -8330233444291084288 +-409673169 820 +-412333994 618 +-41242237 NULL +-414207254 347 +-41864614 -8418913260807217152 +-419335927 3263 +-42151403 281 +-423074450 -7500200359698907136 +-423190290 -7262798781688651776 +-423378447 1127 +-423945469 3860 +-425103007 2264 +-425196209 -9066993118333706240 +-432218419 7570474972934488064 +-434656160 7432998950057975808 +-434747475 361 +-436386350 19 +-43858652 8294315622451740672 +-4393552 -7419068456205385728 +-442732016 8333523087360901120 +-442839889 -7904188195431661568 +-44426049 7014537632150224896 +-445353909 154 +-44559184 NULL +-448060992 -7329767178250018816 +-449333854 3036 +-453739759 738 +-45439614 -7192529627893858304 +-454598288 -8763062627136864256 +-45460011 -8665764757143658496 +-455114104 -7041362811802148864 +-457341338 -8131997716860526592 +-462541618 3333 +-463071187 NULL +-464804906 2131 +-469749219 -8051395538179063808 +-469870330 7061809776248545280 +-470798506 2915 +-472303419 -7879864376629567488 +-47662800 2897 +-480058682 1286 +-483740394 7039820685967343616 +-490337498 1926 +-491377296 3203 +-491882534 8554899472487596032 +-4943292 8856674723376668672 +-496870819 1648 +-496915240 -7362189611124563968 +-499533481 1667 +-500921094 -8649711322250362880 +-504529358 7401968422230032384 +-505879576 412 +-507015439 -7413317118463164416 +-507250351 -7063777488249085952 +-507955215 -7797151404935618560 +-511198293 -7506254246954500096 +-512198016 7528211148397944832 +-514010922 -8232763638546694144 +-51612681 7249443195032985600 +-519978947 3566 +-520725912 -7444070205513138176 +-521886983 695 +-522450861 8895174927321243648 +-524189419 1785 +-532755480 7534145866886782976 +-533227056 -8103788088118018048 +-533281137 7370803940448305152 +-534894953 1075 +-534991774 8547243497773457408 +-535056977 8897901899039473664 +-53587991 168 +-536315467 -8922409715403112448 +-538812082 7792036342592348160 +-540401598 7748799008146366464 +-540820650 1141 +-54793232 1941 +-549167249 NULL +-553349593 7621013099259527168 +-558456218 6960137166475911168 +-559270035 -7818454479651135488 +-560322190 NULL +-561932449 -9002912355472736256 +-564495517 3980 +-570632618 -7526793959592140800 +-571587579 7265141874315517952 +-573787626 8760285623204290560 +-574475259 8991071342495531008 +-575513309 -8856151919723003904 +-579916775 8184799300477943808 +-583908704 7710447533880614912 +-588160623 -8280276629934981120 +-588547970 NULL +-590374062 -8523434203900674048 +-591879497 8473699639908261888 +-592568201 601 +-595769210 9191943992860327936 +-596963345 -7707867749256445952 +-598552521 2193 +-599396052 8223732800007864320 +-600315936 1345 +-601946913 2515 +-603273425 -6917607783359897600 +-604362582 2306 +-605370177 1704 +-606214770 3366 +-607285491 8780196485890555904 +-607667405 -8543982423727128576 +-616724730 724 +-618505946 8995562121346260992 +-619311578 -7603467428164009984 +-621365995 -8161047750470279168 +-624029057 -7409653086454030336 +-625788713 -7541860097718902784 +-626484313 -8203075743525806080 +-628446314 1948 +-628790799 -7093825013581979648 +-630900418 8391785334471589888 +-632803945 -7094827141662539776 +-641062448 9000633029632499712 +-648766606 1701 +-655118881 2463 +-656478771 -8425998949410889728 +-66010816 -8832750849949892608 +-66112513 388 +-664111469 3691 +-664856187 7524958388842078208 +-665623523 -8240034910581153792 +-667383951 1751 +-670925379 -8317591428117274624 +-671853199 -9203804401302323200 +-674478103 -8581979259158929408 +-675125724 2682 +-677778959 8871707618793996288 +-679230165 3763 +-682333536 809 +-684022323 83 +-688296901 7375521127126089728 +-693207128 NULL +-693249555 -7661250850555633664 +-694520014 9149216169284091904 +-695775663 NULL +-705887590 -9079801920509001728 +-707108808 8388363436324085760 +-707228984 1477 +-71305062 -7158472098920390656 +-714270951 8783241818558193664 +-71433796 1780 +-71449585 -7057750467944931328 +-714594143 2791 +-722294882 -7600138468036386816 +-726879427 -8768744394742235136 +-728015067 8146288732715196416 +-728541537 NULL +-733239404 8583916402383601664 +-733756717 3206 +-734921821 3941 +-737624128 780 +-738157651 1813 +-742707249 997 +-743680989 7391208370547269632 +-745678338 8792059919353348096 +-749042352 -8570933074545745920 +-752222556 -8030058711611629568 +-758231588 3144 +-758973175 9030480306789818368 +-759911896 -8946656952763777024 +-76430653 -7159700138947862528 +-764412063 -6920172215209426944 +-765102534 -7425160895830573056 +-765190882 9207107990561972224 +-76654979 -6997233584896229376 +-768305191 NULL +-772236518 7250237407877382144 +-774406989 8201303040648052736 +-779743333 -7892780594910871552 +-78240945 3159 +-785261879 -7292078334519894016 +-789126455 8716401555586727936 +-7929246 3755 +-797889292 -7194281951646187520 +-799249885 8014986215157530624 +-800799595 3728 +-800975421 -7928440849566146560 +-805288503 7432428551399669760 +-807242371 -7778829032042790912 +-809805200 -8518258741831680000 +-812431220 NULL +-816661030 7753359568986636288 +-817093900 -7145585429014888448 +-817383093 3231 +-828522499 -7507424948896415744 +-828724467 7017956982081404928 +-829717122 7414865343000322048 +-835002549 -7333362172439035904 +-835107230 108 +-835198551 982 +-837503491 2569 +-837506172 7130159794259353600 +-838656526 -7055619148037554176 +-839176151 -8916987977485312000 +-839512271 8994608999945125888 +-841268868 -7572962089372991488 +-841634659 -7240213957902663680 +-846450672 -8544299740525461504 +-847235873 9107991000536498176 +-849551464 7393308503950548992 +-851663638 -7220731681653604352 +-853606287 522 +-853967587 2194 +-856843296 2073 +-858439361 -8940944155843461120 +-859535015 8779711700787298304 +-866304147 1247 +-870624802 8687042963221159936 +-870900240 3812 +-87470856 -7835907977757245440 +-876122064 -7144791190333546496 +-882028850 3079 +-884109192 -7966960765508280320 +-884796655 342 +-88576126 3866 +-886741158 3663 +-887663189 2412 +-887790938 2843 +-890374552 -8581765103969312768 +-890552359 3493 +-891543038 3024 +-892839693 -7686220526274502656 +-893863493 681 +-896261100 -8108693586698706944 +-896274896 947 +-897586947 -8545239748068941824 +-897622427 7686992843032010752 +-90029636 7217123582035116032 +-901079162 3841 +-901778330 2712 +-906545548 2878 +-906986958 2187 +-909024258 1845 +-909127123 7689489436826804224 +-912429611 2816 +-913906252 85 +-914329027 -7483435388852559872 +-915104901 NULL +-916344293 7410872053689794560 +-916495008 8286706213485297664 +-917062754 8927691194719174656 +-922200749 1811 +-922875124 259 +-928013434 489 +-932525608 1128 +-932921363 -7399631791131074560 +-933324607 2986 +-934008333 8939431770838810624 +-935723237 7226360892091416576 +-938112972 -8835408234247168000 +-938342473 3728 +-938756287 346 +-938762477 -7759425383684849664 +-939348081 -6968771079156654080 +-940504641 3418 +-941433219 6982145326341423104 +-946349935 NULL +-946830673 8734584858442498048 +-94709066 7271887863395459072 +-950738312 -7902517224300036096 +-951728053 -8115963579415650304 +-954480325 812 +-956668825 1827 +-958165276 7784169796350730240 +-966979668 -8930307926221807616 +-968377273 -6974654664348033024 +-971203543 8451612303224520704 +-971615370 NULL +-971698865 -7873753603299540992 +-973128166 3054 +-978892011 -7049618574399692800 +-980869630 1981 +-982238309 939 +-983874694 -7598782894648565760 +-985817478 2848 +-987995271 1937 +-990781312 1046 +-99205196 -8535957064499879936 +-993029335 1521 +-9958400 1999 +-996953616 3541 +-997463353 1788 +-99916247 8419958579638157312 +1000106109 8900351886974279680 +1001732850 3747 +1002132158 2919 +1002519329 9194388393453060096 +100270148 9096395849845194752 +1003667927 4037 +1004241194 743 +1008698636 1719 +1012230484 1995 +1012696613 888 +1012843193 -7939634346485858304 +1013517056 NULL +1017953606 7220131672176058368 +1022214896 979 +1022707418 1481 +1027147837 3749 +1028092807 8785153741735616512 +1028204648 -7838598833900584960 +1033609549 -8318886086186213376 +1033836308 -8927968289860370432 +1036391201 7319711402123149312 +104004730 NULL +1042184256 -7571957778022178816 +1042237722 2962 +1044196568 927 +1045719941 661 +1050809633 1990 +1052255272 4051 +1054864168 2227 +1056997296 -7395553021620731904 +1059212450 -8664374244449050624 +1061043704 -8857335871148171264 +1061638369 1777 +1063524922 383 +106847364 8457906374051020800 +1069486136 NULL +1070989126 1906 +1074488452 7765456790394871808 +1075444504 9053187076403060736 +1076088102 3533 +107680423 8455496814886002688 +107941738 8555948987770511360 +1081187102 -7540104552219860992 +1081920048 1501 +1082837515 7359004378440146944 +1083855659 -7476082621253402624 +1090344463 2539 +1091736925 -8962547695651323904 +1094778643 263 +1102069050 3147 +1102561039 -9032650742739836928 +1103797891 7077311975029555200 +1103878879 2540 +1106995930 -6962271229404348416 +1107258026 391 +1107502179 NULL +1107757211 8509508263705477120 +1109664665 -9105701280936501248 +1111985530 9112400579327483904 +1112783661 2553 +1114521964 -8603817012434198528 +1115197541 -7030489936116252672 +1117805438 8945302550165004288 +1119976718 7052226236896256000 +1121512594 9136548192574529536 +1124269631 3680 +1126157283 2155 +1127080164 3159 +1129173487 3071 +1130043800 -9022154842129547264 +1130840708 2463 +1131663263 612 +1134416796 2745 +1136548971 -7883252982752665600 +1136976809 -6960947572095770624 +1137950964 -7470307155642245120 +1141303816 -7673901622181953536 +1141595012 6947488599548215296 +1142098316 2013 +1142481557 3648 +1145627305 9023663198045544448 +1148500740 -8923529803981905920 +115111911 735 +1151752586 -6975459232300236800 +1153089364 1165 +1153811197 -8243487285852766208 +115470151 8677794924343164928 +1159353899 455 +1164895226 7647481735646363648 +1166237779 8910706980937261056 +1173098061 1965 +117620760 2144 +1179528290 -7551394356730339328 +1182390248 7031339012080549888 +1182595271 1177 +1182646662 7295926343524163584 +1184001017 1142 +1187495452 8571268359622172672 +1190302173 7753882935005880320 +1190554937 8806507556248731648 +1191238870 3613 +1194089079 1065 +1194243726 -8022573309127000064 +1196151988 -7793447076762345472 +1198172036 320 +1198701102 7762823913046556672 +1202593021 7418271723644403712 +1202720813 3248 +1203482872 1342 +1204325852 3460 +1204834275 -8659643752269242368 +1205391962 8761174805938331648 +1211873318 2897 +1216016081 500 +1216287232 8525894870444638208 +121663320 -6941777546186579968 +1219616145 -8007017894942638080 +1222217404 650 +1222935237 -7213775605408178176 +1224662770 -8881446757271846912 +1225312439 -7695491171376291840 +1228837108 -8696162322976997376 +1229172951 490 +1238986437 921 +1240875512 -7571293705217687552 +1251556414 8000440057238052864 +1256676429 3067 +1257621270 9104574294205636608 +1258721737 355 +1260101584 9062227900376203264 +1260480653 7593521922173419520 +1265528735 7491898395977523200 +127051381 8269730157217062912 +1271280812 8268875586442256384 +1273798925 8983857919580209152 +1273877405 7761834341179375616 +1275228381 8145750910080745472 +127917714 -8136227554401107968 +1281159709 7255302164215013376 +1281277970 2335 +1283898734 2262 +128430191 -9084940280061485056 +1284956108 2714 +1286367391 -7488415863027367936 +1290381132 NULL +1293876597 1880 +1295073553 -7262049693594943488 +129675822 8113585123802529792 +1300798829 6928080429732536320 +1301426600 7794244032613703680 +1301997393 8854715632851345408 +1303632852 3244 +1304431147 7309156463509061632 +1304812803 1509 +1305668933 2675 +1307148254 2735 +1309976380 7212016545671348224 +131031898 2979 +1310360849 -8989473881707921408 +1312270193 -7703540456272994304 +1314531900 -8300526097982226432 +1316369941 8146492373537660928 +1316931 NULL +1317690178 -8660149447361404928 +1318606691 -8938849835283677184 +1318956413 -8959796625322680320 +1319589591 -7356685674003021824 +1321678350 8372588378498777088 +1328225044 3006 +1330219997 -9080956291212132352 +1332042427 -8914039133569400832 +1332181668 3563 +133276416 3835 +1333148555 3084 +1333214263 NULL +1335803002 3094 +1336194583 425 +1336365018 364 +1336842978 9174894805640142848 +1336951982 965 +1338047392 -7451660755269853184 +1342923026 -6951350560260784128 +1343581455 707 +1346627771 1643 +1347876055 -8465978403747037184 +1352649032 -7161165959057334272 +1352739140 -7800879252150779904 +135341845 2016 +1359437295 918 +1362740312 -9157613004431998976 +1363459426 3183 +1363568842 7871189141676998656 +1366402722 8795069490394882048 +1367179645 -8503342882470019072 +1370723240 9148071980848742400 +1372224352 3824 +1372705672 8652485812846567424 +1372982791 8665969966920990720 +1373871781 -7255010240787030016 +1376818328 336 +1377144283 8208354137450766336 +1377359511 3707 +1384071499 8156018594610790400 +1385883394 3245 +1386071996 3059 +1390704286 1099 +1392980712 -8896045754034978816 +1393262450 7450416810848313344 +1393506704 -7333278178640953344 +1394370866 2179 +1395450272 -8054581198284668928 +139661585 8210813831744118784 +1398486099 1291 +1404346934 1701 +1406029775 1470 +1409872356 -7512289590991544320 +1410516523 7584007864107778048 +1412102605 7296164580491075584 +141492068 3781 +1415647436 -7497303453253402624 +1416850873 8489584373231919104 +1418228573 8190539859890601984 +1420099773 -8021859935185928192 +1421779455 7575087487730196480 +1425362689 2201 +1425456189 -8122639684164501504 +1426152053 7354813692542304256 +142722637 1608 +1430614653 7186401810812059648 +1434588588 3232 +1436480682 3848 +1437057145 -7265998318110711808 +1440427914 2984 +1443426396 3830 +144428297 2835 +144499388 8723248113030782976 +1447438548 7955126053367119872 +1447462863 7384150968511315968 +1450881368 8183233196086214656 +1452244326 -8219876839318716416 +1456367662 -8260340354454503424 +14573904 -7037638331316469760 +1458051497 8417381121663746048 +1464695860 NULL +1464703053 2004 +1467284000 -7895991410072928256 +1469775272 -8615168537390571520 +1471913583 2325 +1472487454 -6992217501957169152 +1473503196 3904 +1475025489 NULL +1478365409 -8675892979328212992 +1482983157 -8194062064124362752 +1483580941 2911 +1485934602 587 +1488440165 1674 +1489169773 2398 +1493152791 7581052107944361984 +1493555718 6974475559697768448 +1495575878 -7542857121910046720 +149701884 523 +1499399891 8836228556823977984 +1500437122 3690 +15020431 8195103847607967744 +1503176016 8850055384477401088 +1504919241 1671 +1505168716 -6957946688477274112 +1505665168 -7453525026342617088 +1506907734 3913 +1509573831 3960 +1513689502 -7811060170911375360 +1516149502 2719 +1516165279 7691062622443044864 +1516236846 7486884806277611520 +1517488324 275 +1517915751 -8357136656913686528 +1519993904 -8270479187688816640 +1520375588 8660248367767076864 +1522208504 2637 +1523657918 -8400045653258444800 +1524010024 -8453491903284994048 +152654715 -7928062266382778368 +152891873 417 +1533817551 2285 +1535954353 2002 +1540680149 8896237972875370496 +1541249928 7659279803863146496 +1543611951 7497276415392407552 +1544482684 -7455898404374921216 +1550112473 2105 +1550375386 8817665768680906752 +1552351592 2903 +1556919269 2968 +156101201 -8368487814665895936 +1563120121 3823 +1565313938 -8782213262837530624 +1566607834 -8379109122834997248 +1566958573 9169248521377374208 +1568180994 -7707242953271500800 +1569269522 2715 +1570238232 7291432593139507200 +1571267481 9114850402293882880 +1572563948 -8359839265974165504 +1575091509 7790728456522784768 +1575300276 -8813211231120031744 +1577999613 597 +1579460630 8501910015960735744 +1582537271 7926898770090491904 +1583280136 8573305425181941760 +1590744669 -7263060340185194496 +1592153312 -7366430883634929664 +1592467112 8560526613401714688 +1594107168 2485 +1595326878 -7494411162675691520 +1597303154 2106 +1602631923 2214 +160290374 -7296096276653391872 +1603612975 8935252708196999168 +1604076720 9119046173224370176 +1605596441 2223 +161210995 1074 +1614297403 7006803044329021440 +1616782308 723 +1618123796 2850 +1620529246 2626 +1621606222 2434 +1625699061 379 +1625751062 3724 +1626868156 7735566678126616576 +1626884085 -7831595638727565312 +1632769786 1508 +1634441052 2847 +1636364987 8461498293348065280 +1637295757 -8623965248051789824 +1638471881 2942 +1640192895 -7085247548404178944 +1640445482 2579 +1645067708 2325 +1645753684 7534042483076857856 +1646811064 1153 +1647411522 -7262384251828518912 +1650573576 1368 +1650676897 -8877431933441327104 +1652349607 NULL +1660088606 823 +1660278264 8230371298967609344 +166320811 9211455920344088576 +1664736741 392 +1665724041 8376440110255243264 +1667594394 -7848043121524228096 +1668094749 6927260280037097472 +1668446119 8002769767000145920 +1669519977 8637720762289659904 +1673218677 49 +167432368 228 +1677197847 8201491077550874624 +1677444379 462 +1677494300 -8992599250893979648 +1678220496 NULL +1678261510 2092 +1679381813 -9105358806324035584 +1686537335 -7246123871306244096 +1687784247 -9095689235523264512 +1695098246 -7949445503604604928 +1701761102 -8426531414463545344 +1701817607 -8127494999848919040 +170870820 837 +1709983738 8972161729142095872 +1712411993 3365 +1718167702 -7106210529681350656 +172075892 7299197687217856512 +1723691683 8536948829863198720 +1731764471 8811693967537774592 +1739911574 8920533610804609024 +1742536084 181 +174310705 -6935038507792801792 +1743671220 8569030475428511744 +1743696703 3300 +1747664003 -9049720998034137088 +1750433588 -7345562788132315136 +1751468853 -7120456708338688000 +1752520642 -7532751268425261056 +1754025802 NULL +1756592797 2855 +1759741857 -7147490721376591872 +1765173148 1436 +1765874562 8169878743136043008 +1766517223 7948803266578161664 +1767019352 1066 +1767359228 -8746702976270385152 +176792505 22 +1768399622 1835 +1769324649 7936149988210212864 +1772349172 -7884460946615984128 +1772545157 3478 +177294487 3021 +1773417290 8011181697250631680 +177391521 7266437490436341760 +1775355987 -8562524688907485184 +1776456512 6933451028794925056 +177837042 1290 +1783034168 -8961059046745669632 +1784291853 -7547245548870025216 +1785455842 -8754992450211692544 +1787826883 -8572949572756774912 +1796013407 9086905513121890304 +1796486238 -7094189393339678720 +1796950944 3703 +1797164732 3949 +1802498539 -8488247955875618816 +1805139501 961 +1805308672 -7700203302632210432 +1807358029 263 +1807877618 987 +1809795770 -7501803640821456896 +1813010930 -7162299524557471744 +1814570016 -7915999634274369536 +1815882183 8073733016154431488 +1817671655 7412924364686458880 +1818213677 -7888051992910274560 +1825828852 3672 +1829544791 -7623359796281999360 +1830870769 8868529429494071296 +1832650234 -7894382303337832448 +1835749815 2772 +1836499981 7548958830580563968 +1844415080 2810 +1845797092 913 +1846184880 -7535857766791577600 +1847210729 8424515140664360960 +184879574 NULL +1848935036 7989160253372817408 +1851654062 7752740515534422016 +1851805558 -7442593976514420736 +1852725744 2393 +1860113703 8708845895460577280 +1861276585 -9091113592821972992 +1870464222 7378993334503694336 +187718349 1134 +187893585 8235179243092090880 +1880017800 7637152193832886272 +1882932986 9123116008004288512 +1883400319 8854677881758162944 +1888675011 687 +1891680787 -8471480409335513088 +1893512909 -8244116388227104768 +1893632113 1506 +1895282160 8487573502287478784 +1895751360 2619 +1902676205 8514979402185596928 +1905812339 7626715182847090688 +1910930064 815 +1911809937 7254710367022645248 +1911834442 3725 +1912175355 -8879742387365429248 +1914993018 8116738401948377088 +1916363472 7555301305375858688 +1918230406 9190466190353661952 +1920662116 1509 +1920863389 -8552393882631389184 +1924741890 -7616522969329262592 +1925283040 3858 +1928365430 1775 +1933545427 2580 +1934970004 1530 +1938788165 1243 +1941527322 2056 +1942004879 -7058986555327307776 +194754262 7700734109530767360 +1949494660 7107604675626008576 +1950882901 9180098147855769600 +1951869763 2341 +195281533 -7557017910095650816 +1956887369 2862 +1958701268 -7228589258642194432 +1961954939 7304839835188609024 +196581473 -7040248820505149440 +1968813171 8163948965373386752 +1969239701 1270 +1969650228 34 +196980893 -7866079955473989632 +197056787 3510 +1972940844 8759089349412847616 +1974939899 7487338208419823616 +1978171687 8069531888205086720 +1978200605 1910 +198017473 135 +198539698 -8023708819947323392 +198624903 2517 +1987336880 7410096605330227200 +1990792684 7231399302953377792 +1991072829 NULL +1992977592 7885697257930588160 +1996235654 8171188598958407680 +1998185704 4054 +2005560498 -7637494527844343808 +2008211296 -8843859708698583040 +2009215103 8682955459667951616 +2009890220 -7273694358642851840 +2013178181 -7078068944081002496 +2013376408 2205 +2013444562 66 +2017314998 -8076479329071955968 +2018249426 204 +2018442973 -8566856504746352640 +2022944702 8109381965028548608 +2029657999 -7744462446680375296 +2031604236 2463 +2032271149 3507 +203688965 7436133434239229952 +2038381675 7386087924003676160 +2040926345 8677632093825916928 +2042816480 NULL +2044130430 7534549597202194432 +2045579147 NULL +2048533360 8543177193114779648 +2051470532 6962726713896484864 +2052773366 8837420822750314496 +2057486961 3622 +2058640744 -9071565764086521856 +206121314 -8705403811649355776 +2064448036 8219326436390821888 +206454818 -8714995808835444736 +2065408093 8854495099223375872 +2066707767 9207927479837319168 +2068018858 -8503573595507761152 +2068538934 7487538600082554880 +2069258195 3599 +206942178 3249 +2070969353 203 +2075919195 NULL +2076370203 7917494645725765632 +2080249726 -7576194692683563008 +2080412555 -9175279464813223936 +2081152819 1386 +2081243058 8991442360387584000 +2083836439 8144552446127972352 +2084666529 -9206329156028112896 +2089198703 6933001829416034304 +2090044777 -9219066990552760320 +2090496825 8693036785094565888 +209430502 2662 +2097519027 615 +210003006 -8275337702906757120 +2100377172 8769199243315814400 +2100839074 -7255686273677328384 +2102440065 9089435102788009984 +210728566 7295502697317097472 +2111462911 9083076230151864320 +2114363167 2900 +2124297747 -8088337436168830976 +2125311222 7919597361814577152 +2125479431 -7528526815026692096 +2126491387 9094945190752903168 +2127682701 7874764415950176256 +2133492883 8279056098670198784 +2133950868 187 +2134433675 8523972434954510336 +2140632003 -6970396058557005824 +214068706 -8067243114610532352 +2142592987 NULL +2144365072 1075 +2144454927 412 +2145269593 3932 +2146312499 6964585306125008896 +215508794 1189 +215759857 -7802538500225777664 +217476429 2001 +217823040 8773222500321361920 +218917585 -7378096180613840896 +219415594 945 +22308780 -7953426740065312768 +229688868 NULL +230954385 7983789401706094592 +232405034 -8438554249514491904 +234452496 -9149719074367946752 +239078089 1132 +252169185 8945004737083555840 +253621570 -8411282676082565120 +25400543 -8659692318743314432 +254921167 9091085792947666944 +25644069 1870 +257821327 2725 +259204652 -8559252110266564608 +259524903 NULL +260463232 -7127548949860818944 +26270580 3163 +266601601 908 +268888160 -7893577088764174336 +270090617 -7773957003968675840 +272086526 8625937019655200768 +273256071 -9014145341570203648 +277582670 2232 +278601840 1537 +278643258 341 +283322761 -7623405558242500608 +283618733 -8297230235506343936 +284646137 -8797972842900307968 +287239980 1462 +290601612 878 +290921475 1837 +291866793 1095 +29680001 120 +297577612 3190 +30036142 1252 +304860245 -7017212700635545600 +307333276 -7708932208121225216 +311478497 -8852770376039219200 +314232856 2762 +315055746 7747874976739016704 +315973457 -8844949406948671488 +316438994 188 +318631333 -8585966098173870080 +323817967 8129551357032259584 +323919214 8345435427356090368 +330302407 350 +33234633 2011 +334208532 7514552840617558016 +335359004 2608 +338805871 898 +340384179 -7877598807023386624 +340929437 2285 +343362793 2786 +344239980 7823874904139849728 +344989592 -7515996202498473984 +345556325 8316336224427483136 +346562088 7998357471114969088 +350802495 8525336514806317056 +352214248 8900545829211299840 +363981930 2046 +368170021 1745 +371383749 1055 +372099650 7944741547145502720 +373031319 6967631925774639104 +374283948 -8469607298426437632 +37461818 NULL +375106978 -7558524160894427136 +376076075 -9136398397785948160 +37730738 2020 +386741352 -7617860842651017216 +388707554 9016280522993975296 +390124976 -7603569103205916672 +391186487 8351163199364390912 +39723411 -8340523561480437760 +397255100 -8836899523028312064 +398960205 8540237852367446016 +3999930 8272001752345690112 +402173272 8244041599171862528 +407098216 -9109392978217484288 +407233168 2514 +410340192 3567 +41063276 3555 +413090363 928 +414645489 -8875546987176206336 +415234946 8514851182589771776 +418182899 1846 +430686478 9165199002069458944 +434679307 -7547432761381339136 +435407142 8045070943673671680 +435426302 8759184090543857664 +436093771 3866 +43672187 9067985867711291392 +43983130 2663 +44009986 1856 +440393309 3446 +44595790 784 +44628821 2017 +447426619 -8536369662934401024 +449788961 774 +453613037 -8142667274351345664 +458190500 3555 +458910170 NULL +459269456 3542 +461680901 3879 +467753905 8145745969573666816 +470575409 3677 +470993066 -6968892545529896960 +471464395 9209153648361848832 +472901914 7652123583449161728 +474795096 NULL +476704350 -7911421221625077760 +476858779 8524940073536954368 +476919973 3887 +477584560 8639254009546055680 +477857533 1165 +479566810 2217 +480849725 2420 +482977302 7274777328897802240 +485105934 NULL +48554395 3554 +488014426 73 +488559595 -8689606130068611072 +491016124 -7978782649203228672 +491758252 6934570741217755136 +492120544 1341 +492639283 2988 +492968645 8099215208813903872 +493977568 2803 +494570380 8192304692696383488 +503752931 8079573715140485120 +505902480 1826 +511836073 3462 +51376784 -8051587217208967168 +514046604 NULL +514833409 236 +516479816 -8454143651040444416 +516843026 2229 +522895626 7675009476762918912 +523289079 3946 +524317972 -7038455462786334720 +524808 2469 +526502851 -7340231535789727744 +52667480 8071961599867387904 +527598540 7705445437881278464 +528218910 NULL +530274409 2283 +531459992 1439 +536235636 481 +536876888 7062382339142156288 +538268118 7339426767877390336 +538766635 -9012093603044245504 +541118710 8415171956168417280 +541923995 NULL +546555204 2029 +548375173 -7242345057866285056 +550186724 7528074274555305984 +550594651 7497306924248834048 +557053197 1493 +56316391 -7404057145074712576 +563507584 7198687580227043328 +564349193 8372408423196270592 +564366133 1545 +566646177 8553195689344991232 +574069547 1466 +581259902 -6933565857643814912 +58313734 874 +583458404 -7642381493746483200 +584084934 3089 +587206979 2803 +587797446 8213810702473183232 +589546540 -7833618000492109824 +590719541 1157 +592011541 7800332581637259264 +595836061 -7709958788604936192 +596045726 -7000925438663041024 +596242714 443 +596280431 7175638927948562432 +596595603 1892 +596802082 3467 +597657990 296 +601376532 -9210275791460499456 +604460005 8190967051000659968 +605141554 8383159090746204160 +605946758 7596563216912211968 +60847311 -7822452149325094912 +609917172 -7647020450676146176 +615619268 -7751427073017544704 +615661052 7220581538170413056 +618321042 -8856821118526734336 +618991041 7782245855193874432 +619884480 NULL +622925063 -7412431471807283200 +62293025 2426 +626251612 1728 +6266567 -8593419958317056000 +626941809 7892026679115554816 +631207613 -8494118409594650624 +631711489 -8507279516485566464 +631954352 1423 +633813435 -8522878384019169280 +636901402 3512 +63706286 8416121695917498368 +641695802 -6947955278050181120 +644934949 8143462899383345152 +648935848 -7637755520917741568 +65172363 3958 +652118640 9005866015985713152 +6526476 8708232769657815040 +654939016 -8345065519816695808 +656187584 7013693841855774720 +656636097 -7535958203887706112 +658008867 7868367829080506368 +658636280 -7042183597114081280 +658850444 8254763178969915392 +659343542 2649 +659397992 -8147405381260345344 +65956045 1987 +661380540 -8018511948141748224 +661659208 -7964801953178091520 +66182203 NULL +663222148 2400 +667283966 8011602724663336960 +669484010 1145 +669871113 8398862954249560064 +670667262 3974 +672266669 2533 +672919099 8714829359200747520 +673904922 3119 +674547678 1862 +683320224 -7610137349734883328 +684561551 8290944180915871744 +686081268 2790 +688547276 -8244657976255889408 +69110370 1187 +692666133 3043 +693331761 2509 +693876030 3630 +696229550 3588 +700341242 -7751265769984491520 +703111607 -8191825921746305024 +704038411 -9008631121684832256 +706823078 -8877053610728161280 +710856472 -6919476845891313664 +712625264 -7739424919198187520 +712816880 9075404705968840704 +713031549 238 +715333063 501 +718692886 8849475396952514560 +720703232 -7881351200983613440 +722737062 3073 +727802564 4078 +731241198 1321 +734267314 1899 +735600165 7614435638888210432 +735732067 1948 +737149747 8283099811330506752 +738356485 NULL +740883263 1450 +742059797 1312 +742866312 -9102482277760983040 +745725681 -7692192232238678016 +746904285 820 +747122546 1566 +748185058 9091082386452684800 +748358417 1366 +75823003 NULL +758926227 8199513544090730496 +759899363 -7055760785575665664 +760466914 3701 +76299337 -8347088645602050048 +76381404 9085434340468473856 +765084282 482 +765656980 1299 +766737781 1489 +768198315 -8205148279289085952 +770574055 -9126793997498957824 +77063155 7130306447560826880 +771827308 3965 +773730574 3608 +776459017 7898670840507031552 +776606164 2506 +780859673 6933731240564056064 +780938234 -7083646746411720704 +785382955 -9218875542187065344 +786565385 3418 +787925706 NULL +789871166 -7344146703223496704 +791096295 -7665186441284968448 +793047956 8150115791664340992 +794783516 -7907355742053883904 +8040290 NULL +805672638 1769 +810157660 2241 +814544198 7049773031131283456 +816439627 -7875953567586451456 +818313200 3060 +819069589 -8046238369820344320 +819875108 1481 +821316302 1371 +824235855 1518 +824743780 -7594824008626372608 +824836988 -7020852530219171840 +825677248 8720504651219001344 +825977391 2680 +826143442 8371939471056470016 +826519029 7260908278294560768 +829055499 2821 +829101712 -8070535484085895168 +830944953 -7395343938785738752 +832465439 NULL +842283345 873 +84231802 2886 +843282593 138 +849859032 7345991518378442752 +850625480 3588 +851975276 504 +854230650 NULL +856986735 NULL +85774760 -7469660864676585472 +859140926 7454632396542074880 +860658464 268 +860708524 244 +865013617 1409 +866084887 7961515985722605568 +867587289 7381659098423926784 +868714547 -7496839341561954304 +868717604 3472 +869288953 8731960288562044928 +872554087 8825059717746376704 +873035819 -8028910243475038208 +874824958 485 +877053605 -8783777723063099392 +879289168 7343171468838567936 +879290165 68 +879500678 7682327310082531328 +881396599 9139805788041134080 +881673558 7566273236152721408 +881695885 NULL +882331889 1307 +882762933 7608447395949109248 +88774647 -7949309059286163456 +888896424 535 +889733679 9185952983951343616 +889772203 2842 +89366322 8362046808797306880 +895763504 -8654797319350927360 +895945459 -8559008501282832384 +899810881 664 +900992177 3212 +901084309 2393 +904604938 8337549596011102208 +906074599 -9080568167841226752 +908943372 NULL +914062370 1039 +914583645 -7777884099756122112 +915505006 871 +916057807 8467976965865799680 +917891418 7099005292698550272 +919363072 65 +922373046 2724 +922553769 8697823501349609472 +923353533 3940 +923980398 2803 +925032386 -8046189486447017984 +92777932 1638 +92834720 2647 +929560791 3637 +929751599 1681 +930008274 2386 +932774185 922 +936133387 -9117959922369060864 +936752497 7271786885641666560 +94220511 -8694818694700048384 +945683736 2089 +945911081 1201 +947846543 4088 +950545385 8570983266408103936 +950997304 1940 +95356298 78 +955171928 -6934304742087655424 +955267058 1398 +958866509 -7326863346317598720 +960187615 -7266719102957125632 +962091264 2752 +962712814 2715 +963854010 7084659344078970880 +964810954 -8664806103426252800 +972835688 7844258063629852672 +975932228 -7510418793070075904 +976870621 3197 +977292235 2108 +977624089 7857878068300898304 +978044705 7888238729321496576 +980732494 -6938706403992854528 +985634256 7870277756614623232 +987734049 6926925215281774592 +987917448 -8490382417169408000 +989475408 2025 +990246086 1158 +991397535 1280 +994798486 -7273590251991162880 +996831203 797 +997193329 1316 +998793176 154 +NULL 9136234417125007360 +PREHOOK: query: explain vectorization detail +select b, min(i), max(i) from vectortab2korc group by b +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b, min(i), max(i) from vectortab2korc group by b +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: true + enabledConditionsMet: [hive.vectorized.execution.enabled IS true] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez +#### A masked pattern was here #### + Edges: + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + TableScan Vectorization: + native: true + projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + Select Operator + expressions: i (type: int), b (type: bigint) + outputColumnNames: i, b + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [2, 3] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: min(i), max(i) + Group By Vectorization: + className: VectorGroupByHashOneLongKeyOperator + groupByMode: HASH + vectorOutput: true + keyExpressions: col 3 + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + vectorProcessingMode: HASH + projectedOutputColumns: [0, 1] + runtimeHashAggrOutputInfos: {MIN_FUNC:0, PRIMITIVE, LONG, aggrOffset: 2, MAX_FUNC:1, PRIMITIVE, LONG, aggrOffset: 3} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 + keys: b (type: bigint) + mode: hash + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint) + sort order: + + Map-reduce partition columns: _col0 (type: bigint) + Reduce Sink Vectorization: + className: VectorReduceSinkLongOperator + keyColumns: [0] + native: true + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + valueColumns: [1, 2] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: int), _col2 (type: int) + Execution mode: vectorized, llap + LLAP IO: all inputs + Map Vectorization: + enabled: true + enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true + groupByVectorOutput: true + inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + allNative: true + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 13 + includeColumns: [2, 3] + dataColumns: t:tinyint, si:smallint, i:int, b:bigint, f:float, d:double, dc:decimal(38,18), bo:boolean, s:string, s2:string, ts:timestamp, ts2:timestamp, dt:date + partitionColumnCount: 0 + Reducer 2 + Execution mode: vectorized, llap + Reduce Vectorization: + enabled: true + enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true + reduceColumnNullOrder: a + reduceColumnSortOrder: + + groupByVectorOutput: true + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 3 + dataColumns: KEY._col0:bigint, VALUE._col0:int, VALUE._col1:int + partitionColumnCount: 0 + Reduce Operator Tree: + Group By Operator + aggregations: min(VALUE._col0), max(VALUE._col1) + Group By Vectorization: + aggregators: VectorUDAFMinLong(col 1) -> int, VectorUDAFMaxLong(col 2) -> int + className: VectorGroupByOperator + groupByMode: MERGEPARTIAL + vectorOutput: true + keyExpressions: col 0 + native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false + vectorProcessingMode: MERGE_PARTIAL + projectedOutputColumns: [0, 1] + keys: KEY._col0 (type: bigint) + mode: mergepartial + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + File Sink Vectorization: + className: VectorFileSinkOperator + native: false + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b, min(i), max(i) from vectortab2korc group by b +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, min(i), max(i) from vectortab2korc group by b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 -603273425 -603273425 +-6919476845891313664 710856472 710856472 +-6920172215209426944 -764412063 -764412063 +-6921654334727036928 -1066775085 -1066775085 +-6933565857643814912 581259902 581259902 +-6934304742087655424 955171928 955171928 +-6935038507792801792 174310705 174310705 +-6935548339131138048 -1062159435 -1062159435 +-6938706403992854528 980732494 980732494 +-6941777546186579968 121663320 121663320 +-6947955278050181120 641695802 641695802 +-6951350560260784128 1342923026 1342923026 +-6957946688477274112 1505168716 1505168716 +-6960947572095770624 1136976809 1136976809 +-6962271229404348416 1106995930 1106995930 +-6962292590214234112 -1147471772 -1147471772 +-6968771079156654080 -939348081 -939348081 +-6968892545529896960 470993066 470993066 +-6970396058557005824 2140632003 2140632003 +-6974654664348033024 -968377273 -968377273 +-6975459232300236800 1151752586 1151752586 +-6986178228432322560 -1369253050 -1369253050 +-6988811476286873600 -1968097621 -1968097621 +-6988970700649168896 -1230459100 -1230459100 +-6992217501957169152 1472487454 1472487454 +-6997233584896229376 -76654979 -76654979 +-7000925438663041024 596045726 596045726 +-7003696402314215424 -1458382451 -1458382451 +-7011425384222244864 NULL NULL +-7017212700635545600 304860245 304860245 +-7020852530219171840 824836988 824836988 +-7030489936116252672 1115197541 1115197541 +-7035132060308643840 NULL NULL +-7036607470351654912 -1933192293 -1933192293 +-7037375807670501376 -1168823523 -1168823523 +-7037638331316469760 14573904 14573904 +-7038455462786334720 524317972 524317972 +-7040248820505149440 196581473 196581473 +-7041362811802148864 -455114104 -455114104 +-7042183597114081280 658636280 658636280 +-7046180371529351168 -117723745 -117723745 +-7049618574399692800 -978892011 -978892011 +-7052619594823221248 -1117358187 -1117358187 +-7055619148037554176 -838656526 -838656526 +-7055760785575665664 759899363 759899363 +-7057750467944931328 -71449585 -71449585 +-7058986555327307776 1942004879 1942004879 +-7063777488249085952 -507250351 -507250351 +-7078068944081002496 2013178181 2013178181 +-7079898537463537664 -1205034356 -1205034356 +-7081500255163727872 -1969751342 -1969751342 +-7083646746411720704 780938234 780938234 +-7085247548404178944 1640192895 1640192895 +-7093825013581979648 -628790799 -628790799 +-7094189393339678720 1796486238 1796486238 +-7094827141662539776 -632803945 -632803945 +-7104310188119834624 -1928197479 -1928197479 +-7106210529681350656 1718167702 1718167702 +-7109790267244814336 -291577538 -291577538 +-7115054815375073280 NULL NULL +-7120456708338688000 1751468853 1751468853 +-7127548949860818944 260463232 260463232 +-7138415011665043456 -1345391395 -1345391395 +-7139677575412686848 -1556127172 -1556127172 +-7140008543769042944 -1938290238 -1938290238 +-7144791190333546496 -876122064 -876122064 +-7145585429014888448 -817093900 -817093900 +-7147490721376591872 1759741857 1759741857 +-7152177800841502720 -37773326 -37773326 +-7155539549555105792 -345542922 -345542922 +-7158472098920390656 -71305062 -71305062 +-7159700138947862528 -76430653 -76430653 +-7161165959057334272 1352649032 1352649032 +-7162299524557471744 1813010930 1813010930 +-7172594404186693632 -1949359208 -1949359208 +-7185369278665605120 -374337252 -374337252 +-7192529627893858304 -45439614 -45439614 +-7194281951646187520 -797889292 -797889292 +-7195217207163166720 -1977762695 -1977762695 +-7198372044947275776 -1424770359 -1424770359 +-7199983995864711168 -1870912732 -1870912732 +-7201085131997011968 -1356601829 -1356601829 +-7209060152494817280 -2071851852 -2071851852 +-7213775605408178176 1222935237 1222935237 +-7220731681653604352 -851663638 -851663638 +-7221474017515347968 -1421860505 -1421860505 +-7228589258642194432 1958701268 1958701268 +-7240213957902663680 -841634659 -841634659 +-7242345057866285056 548375173 548375173 +-7245872320493322240 -134686276 -134686276 +-7246123871306244096 1686537335 1686537335 +-7255010240787030016 1373871781 1373871781 +-7255686273677328384 2100839074 2100839074 +-7262049693594943488 1295073553 1295073553 +-7262384251828518912 1647411522 1647411522 +-7262798781688651776 -423190290 -423190290 +-7263060340185194496 1590744669 1590744669 +-7265998318110711808 1437057145 1437057145 +-7266719102957125632 960187615 960187615 +-7270034223527993344 -1984079412 -1984079412 +-7273590251991162880 994798486 994798486 +-7273694358642851840 2009890220 2009890220 +-7276111129363046400 -1462604138 -1462604138 +-7287583262310350848 -1108723753 -1108723753 +-7292078334519894016 -785261879 -785261879 +-7296096276653391872 160290374 160290374 +-7303847963918393344 -1769423338 -1769423338 +-7319315187617587200 -235238928 -235238928 +-7326863346317598720 958866509 958866509 +-7328087811698909184 -1017629298 -1017629298 +-7329767178250018816 -448060992 -448060992 +-7329807949048193024 -369183838 -369183838 +-7330203470474985472 -1065248998 -1065248998 +-7330413050756235264 -2024003241 -2024003241 +-7333278178640953344 1393506704 1393506704 +-7333362172439035904 -835002549 -835002549 +-7340231535789727744 526502851 526502851 +-7344146703223496704 789871166 789871166 +-7344947507044466688 -340951385 -340951385 +-7345562788132315136 1750433588 1750433588 +-7356685674003021824 1319589591 1319589591 +-7357888618985873408 NULL NULL +-7362189611124563968 -496915240 -496915240 +-7366430883634929664 1592153312 1592153312 +-7378096180613840896 218917585 218917585 +-7380731416973295616 -1114208576 -1114208576 +-7395343938785738752 830944953 830944953 +-7395553021620731904 1056997296 1056997296 +-7399631791131074560 -932921363 -932921363 +-7404052043914526720 -1349876582 -1349876582 +-7404057145074712576 56316391 56316391 +-7409317158045442048 -1463884101 -1463884101 +-7409653086454030336 -624029057 -624029057 +-7412431471807283200 622925063 622925063 +-7413317118463164416 -507015439 -507015439 +-7419068456205385728 -4393552 -4393552 +-7420448501073051648 -1155174991 -1155174991 +-7425160895830573056 -765102534 -765102534 +-7429331808102899712 -1057522129 -1057522129 +-7433265617153343488 NULL NULL +-7442593976514420736 1851805558 1851805558 +-7444070205513138176 -520725912 -520725912 +-7451660755269853184 1338047392 1338047392 +-7453525026342617088 1505665168 1505665168 +-7455898404374921216 1544482684 1544482684 +-7456869587112255488 -224865887 -224865887 +-7461750143936897024 -1343425152 -1343425152 +-7464270453557993472 -1439293109 -1439293109 +-7469660864676585472 85774760 85774760 +-7470307155642245120 1137950964 1137950964 +-7476082621253402624 1083855659 1083855659 +-7483435388852559872 -914329027 -914329027 +-7488345684795342848 -1668736016 -1668736016 +-7488415863027367936 1286367391 1286367391 +-7494411162675691520 1595326878 1595326878 +-7496839341561954304 868714547 868714547 +-7497303453253402624 1415647436 1415647436 +-7500200359698907136 -423074450 -423074450 +-7501803640821456896 1809795770 1809795770 +-7506254246954500096 -511198293 -511198293 +-7507424948896415744 -828522499 -828522499 +-7507578199583694848 -1784633305 -1784633305 +-7510418793070075904 975932228 975932228 +-7511202710200885248 -2042647152 -2042647152 +-7511952204985049088 -1351437382 -1351437382 +-7512289590991544320 1409872356 1409872356 +-7512297136103800832 -1180153422 -1180153422 +-7515996202498473984 344989592 344989592 +-7524170566881329152 -1908696083 -1908696083 +-7526793959592140800 -570632618 -570632618 +-7528526815026692096 2125479431 2125479431 +-7532751268425261056 1752520642 1752520642 +-7535857766791577600 1846184880 1846184880 +-7535958203887706112 656636097 656636097 +-7536330682873937920 -1289501869 -1289501869 +-7540104552219860992 1081187102 1081187102 +-7541860097718902784 -625788713 -625788713 +-7542857121910046720 1495575878 1495575878 +-7547245548870025216 1784291853 1784291853 +-7547432761381339136 434679307 434679307 +-7551394356730339328 1179528290 1179528290 +-7557017910095650816 195281533 195281533 +-7558524160894427136 375106978 375106978 +-7571293705217687552 1240875512 1240875512 +-7571957778022178816 1042184256 1042184256 +-7572262898020278272 -1875699183 -1875699183 +-7572962089372991488 -841268868 -841268868 +-7576194692683563008 2080249726 2080249726 +-7593363318079610880 -1811563127 -1811563127 +-7594824008626372608 824743780 824743780 +-7598782894648565760 -983874694 -983874694 +-7600138468036386816 -722294882 -722294882 +-7603467428164009984 -619311578 -619311578 +-7603569103205916672 390124976 390124976 +-7610137349734883328 683320224 683320224 +-7611584069753552896 -1765795567 -1765795567 +-7612455481940246528 NULL NULL +-7612466483992051712 -1969235238 -1969235238 +-7616522969329262592 1924741890 1924741890 +-7617860842651017216 386741352 386741352 +-7623047151287754752 -1050029724 -1050029724 +-7623359796281999360 1829544791 1829544791 +-7623405558242500608 283322761 283322761 +-7624057992767782912 -1218581850 -1218581850 +-7629401308029976576 -1655030261 -1655030261 +-7637494527844343808 2005560498 2005560498 +-7637755520917741568 648935848 648935848 +-7642381493746483200 583458404 583458404 +-7647020450676146176 609917172 609917172 +-7661192563533062144 -1319753324 -1319753324 +-7661250850555633664 -693249555 -693249555 +-7663293054873812992 -1478812842 -1478812842 +-7665186441284968448 791096295 791096295 +-7668388017287020544 NULL NULL +-7669169138124275712 -1484033125 -1484033125 +-7673901622181953536 1141303816 1141303816 +-7679894005808693248 -306214368 -306214368 +-7686220526274502656 -892839693 -892839693 +-7687052294777208832 -1989778424 -1989778424 +-7692192232238678016 745725681 745725681 +-7695491171376291840 1225312439 1225312439 +-7700203302632210432 1805308672 1805308672 +-7703540456272994304 1312270193 1312270193 +-7707242953271500800 1568180994 1568180994 +-7707867749256445952 -596963345 -596963345 +-7708932208121225216 307333276 307333276 +-7709958788604936192 595836061 595836061 +-7712425776235274240 -1432316859 -1432316859 +-7720966287634112512 NULL NULL +-7739424919198187520 712625264 712625264 +-7744462446680375296 2029657999 2029657999 +-7751265769984491520 700341242 700341242 +-7751427073017544704 615619268 615619268 +-7753051494275432448 -1599905147 -1599905147 +-7759238919361888256 -2065287410 -2065287410 +-7759425383684849664 -938762477 -938762477 +-7772064021830574080 -1201785350 -1201785350 +-7773957003968675840 270090617 270090617 +-7777884099756122112 914583645 914583645 +-7778829032042790912 -807242371 -807242371 +-7779270198785875968 -1242677422 -1242677422 +-7782344916178796544 -1213081886 -1213081886 +-7784419454650843136 -1210907929 -1210907929 +-7792903881635938304 -191899537 -191899537 +-7793447076762345472 1196151988 1196151988 +-7797149520019062784 -1262842192 -1262842192 +-7797151404935618560 -507955215 -507955215 +-7800879252150779904 1352739140 1352739140 +-7802538500225777664 215759857 215759857 +-7804116532814151680 -1146649990 -1146649990 +-7805985795815342080 -2076886223 -2076886223 +-7811060170911375360 1513689502 1513689502 +-7818454479651135488 -559270035 -559270035 +-7819437864839495680 -370093295 -370093295 +-7822452149325094912 60847311 60847311 +-7824788571789279232 -1406691044 -1406691044 +-7827420207675105280 -36682325 -36682325 +-7831320202242228224 -1726479726 -1726479726 +-7831595638727565312 1626884085 1626884085 +-7833618000492109824 589546540 589546540 +-7835907977757245440 -87470856 -87470856 +-7838598833900584960 1028204648 1028204648 +-7840338174858199040 -300717684 -300717684 +-7845896959112658944 -1688105985 -1688105985 +-7848043121524228096 1667594394 1667594394 +-7849504559236210688 -2052386812 -2052386812 +-7858505678035951616 NULL NULL +-7866079955473989632 196980893 196980893 +-7867219225874571264 -1078579367 -1078579367 +-7868306678534193152 -2144138362 -2144138362 +-7873753603299540992 -971698865 -971698865 +-7875953567586451456 816439627 816439627 +-7877598807023386624 340384179 340384179 +-7878145001776152576 -1489628668 -1489628668 +-7879864376629567488 -472303419 -472303419 +-7881262505761710080 -103219371 -103219371 +-7881351200983613440 720703232 720703232 +-7883252982752665600 1136548971 1136548971 +-7884460946615984128 1772349172 1772349172 +-7888051992910274560 1818213677 1818213677 +-7892780594910871552 -779743333 -779743333 +-7893577088764174336 268888160 268888160 +-7894382303337832448 1832650234 1832650234 +-7895991410072928256 1467284000 1467284000 +-7902517224300036096 -950738312 -950738312 +-7903158849011843072 -217930632 -217930632 +-7904188195431661568 -442839889 -442839889 +-7907355742053883904 794783516 794783516 +-7910019233726242816 -1259611508 -1259611508 +-7911421221625077760 476704350 476704350 +-7915999634274369536 1814570016 1814570016 +-7916510129632296960 -2136052026 -2136052026 +-7928062266382778368 152654715 152654715 +-7928440849566146560 -800975421 -800975421 +-7939634346485858304 1012843193 1012843193 +-7949309059286163456 88774647 88774647 +-7949445503604604928 1695098246 1695098246 +-7953426740065312768 22308780 22308780 +-7964801953178091520 661659208 661659208 +-7966960765508280320 -884109192 -884109192 +-7978782649203228672 491016124 491016124 +-7989766326847807488 -1731820254 -1731820254 +-7998947380180819968 -136514115 -136514115 +-8007017894942638080 1219616145 1219616145 +-8013397854633648128 -1391183008 -1391183008 +-8016589197379289088 -1721763321 -1721763321 +-8017791189288869888 -2057666812 -2057666812 +-8018511948141748224 661380540 661380540 +-8021859935185928192 1420099773 1420099773 +-8022573309127000064 1194243726 1194243726 +-8023708819947323392 198539698 198539698 +-8028275725610909696 -1937640350 -1937640350 +-8028910243475038208 873035819 873035819 +-8030058711611629568 -752222556 -752222556 +-8034414142083170304 -267130580 -267130580 +-8046189486447017984 925032386 925032386 +-8046238369820344320 819069589 819069589 +-8047774491688255488 -1339495001 -1339495001 +-8051395538179063808 -469749219 -469749219 +-8051587217208967168 51376784 51376784 +-8051871680800120832 NULL NULL +-8054581198284668928 1395450272 1395450272 +-8067243114610532352 214068706 214068706 +-8070535484085895168 829101712 829101712 +-8076479329071955968 2017314998 2017314998 +-8082793390939193344 -1878838836 -1878838836 +-8084716955963252736 -1609864597 -1609864597 +-8086577583338061824 -340462064 -340462064 +-8088337436168830976 2124297747 2124297747 +-8099313480512716800 -392713245 -392713245 +-8103788088118018048 -533227056 -533227056 +-8104684579106914304 -1091003492 -1091003492 +-8108693586698706944 -896261100 -896261100 +-8115963579415650304 -951728053 -951728053 +-8117838333114212352 -1642207005 -1642207005 +-8122639684164501504 1425456189 1425456189 +-8127494999848919040 1701817607 1701817607 +-8131997716860526592 -457341338 -457341338 +-8136227554401107968 127917714 127917714 +-8140349174954893312 NULL NULL +-8142667274351345664 453613037 453613037 +-8147405381260345344 659397992 659397992 +-8158011642485825536 NULL NULL +-8161047750470279168 -621365995 -621365995 +-8172827216441573376 -113253627 -113253627 +-8182421179156905984 -1892816721 -1892816721 +-8191825921746305024 703111607 703111607 +-8194062064124362752 1482983157 1482983157 +-8203008052020879360 -1127100849 -1127100849 +-8203075743525806080 -626484313 -626484313 +-8205148279289085952 768198315 768198315 +-8214462866994339840 NULL NULL +-8219876839318716416 1452244326 1452244326 +-8232763638546694144 -514010922 -514010922 +-8240034910581153792 -665623523 -665623523 +-8240684139569233920 -1721368386 -1721368386 +-8243487285852766208 1153811197 1153811197 +-8244116388227104768 1893512909 1893512909 +-8244657976255889408 688547276 688547276 +-8260340354454503424 1456367662 1456367662 +-8269917980278980608 -1700451326 -1700451326 +-8270479187688816640 1519993904 1519993904 +-8275337702906757120 210003006 210003006 +-8280276629934981120 -588160623 -588160623 +-8293833565967810560 -1464514590 -1464514590 +-8297230235506343936 283618733 283618733 +-8300526097982226432 1314531900 1314531900 +-8300764106868350976 -1196101029 -1196101029 +-8302817097848307712 -1021859098 -1021859098 +-8317591428117274624 -670925379 -670925379 +-8318886086186213376 1033609549 1033609549 +-8322751250650218496 -1212524805 -1212524805 +-8330233444291084288 -409404534 -409404534 +-8335810316927213568 -1562552002 -1562552002 +-8340523561480437760 39723411 39723411 +-8345065519816695808 654939016 654939016 +-8347088645602050048 76299337 76299337 +-8357136656913686528 1517915751 1517915751 +-8358130693961195520 -122391516 -122391516 +-8359839265974165504 1572563948 1572563948 +-8368269352975982592 NULL NULL +-8368487814665895936 156101201 156101201 +-8369487968903897088 -194270271 -194270271 +-8379109122834997248 1566607834 1566607834 +-8379964450833367040 -181122344 -181122344 +-8384695077413412864 -1818456584 -1818456584 +-8387347109404286976 -2011708220 -2011708220 +-8387536830476820480 -1703620970 -1703620970 +-8395998375405912064 -1141801925 -1141801925 +-8400045653258444800 1523657918 1523657918 +-8411282676082565120 253621570 253621570 +-8418913260807217152 -41864614 -41864614 +-8425998949410889728 -656478771 -656478771 +-8426531414463545344 1701761102 1701761102 +-8430283518005846016 -16094879 -16094879 +-8430370933326536704 NULL NULL +-8431492599012163584 -1131684944 -1131684944 +-8438554249514491904 232405034 232405034 +-8445801063348281344 -1247325089 -1247325089 +-8453491903284994048 1524010024 1524010024 +-8454143651040444416 516479816 516479816 +-8465978403747037184 1347876055 1347876055 +-8469607298426437632 374283948 374283948 +-8471480409335513088 1891680787 1891680787 +-8485389240529354752 -1528033060 -1528033060 +-8488247955875618816 1802498539 1802498539 +-8490382417169408000 987917448 987917448 +-8494118409594650624 631207613 631207613 +-8503342882470019072 1367179645 1367179645 +-8503573595507761152 2068018858 2068018858 +-8507279516485566464 631711489 631711489 +-8509547439040757760 -1749415887 -1749415887 +-8518060755719585792 -1100641049 -1100641049 +-8518258741831680000 -809805200 -809805200 +-8521578237232529408 -373034494 -373034494 +-8522878384019169280 633813435 633813435 +-8523434203900674048 -590374062 -590374062 +-8525212657458348032 -1280919769 -1280919769 +-8535957064499879936 -99205196 -99205196 +-8536369662934401024 447426619 447426619 +-8543982423727128576 -607667405 -607667405 +-8544299740525461504 -846450672 -846450672 +-8545239748068941824 -897586947 -897586947 +-8546758906409312256 -1236536142 -1236536142 +-8552393882631389184 1920863389 1920863389 +-8555709701170552832 -1364322216 -1364322216 +-8559008501282832384 895945459 895945459 +-8559252110266564608 259204652 259204652 +-8562524688907485184 1775355987 1775355987 +-8566856504746352640 2018442973 2018442973 +-8566940231897874432 -1409508377 -1409508377 +-8570933074545745920 -749042352 -749042352 +-8572823448513445888 -101960322 -101960322 +-8572949572756774912 1787826883 1787826883 +-8581765103969312768 -890374552 -890374552 +-8581979259158929408 -674478103 -674478103 +-8584520406368493568 -19116270 -19116270 +-8585134536083660800 -1196808950 -1196808950 +-8585966098173870080 318631333 318631333 +-8593419958317056000 6266567 6266567 +-8603817012434198528 1114521964 1114521964 +-8604758220106014720 -1798573685 -1798573685 +-8607195685207408640 -1111937842 -1111937842 +-8615168537390571520 1469775272 1469775272 +-8619303037130301440 -2074079977 -2074079977 +-8623238306523824128 -1442424087 -1442424087 +-8623965248051789824 1637295757 1637295757 +-8632237187473088512 NULL NULL +-8649711322250362880 -500921094 -500921094 +-8651641150831362048 -1533934649 -1533934649 +-8654433008222797824 -1728171376 -1728171376 +-8654797319350927360 895763504 895763504 +-8658387566611996672 NULL NULL +-8659643752269242368 1204834275 1204834275 +-8659692318743314432 25400543 25400543 +-8660149447361404928 1317690178 1317690178 +-8664374244449050624 1059212450 1059212450 +-8664806103426252800 964810954 964810954 +-8665218198816497664 -1031592590 -1031592590 +-8665764757143658496 -45460011 -45460011 +-8675661101615489024 -1918651448 -1918651448 +-8675892979328212992 1478365409 1478365409 +-8683802826440105984 -1344287228 -1344287228 +-8688153842294595584 -1741895392 -1741895392 +-8689606130068611072 488559595 488559595 +-8694818694700048384 94220511 94220511 +-8696162322976997376 1228837108 1228837108 +-8703026916864802816 -397683105 -397683105 +-8704234107608203264 -1318045616 -1318045616 +-8705403811649355776 206121314 206121314 +-8710298418608619520 -1817938378 -1817938378 +-8714995808835444736 206454818 206454818 +-8719510423723155456 -327648289 -327648289 +-8730803262481580032 NULL NULL +-8731068123910987776 -1434562279 -1434562279 +-8746702976270385152 1767359228 1767359228 +-8754966081778565120 -125419186 -125419186 +-8754992450211692544 1785455842 1785455842 +-8756989568739835904 -158420748 -158420748 +-8760655406971863040 -1249011023 -1249011023 +-8763062627136864256 -454598288 -454598288 +-8768744394742235136 -726879427 -726879427 +-8782213262837530624 1565313938 1565313938 +-8783777723063099392 877053605 877053605 +-8789178184387641344 -1045771991 -1045771991 +-8797972842900307968 284646137 284646137 +-8807361476639629312 NULL NULL +-8813211231120031744 1575300276 1575300276 +-8831091081349758976 -1832606512 -1832606512 +-8832750849949892608 -66010816 -66010816 +-8833019327569510400 -189393743 -189393743 +-8835408234247168000 -938112972 -938112972 +-8836899523028312064 397255100 397255100 +-8843859708698583040 2008211296 2008211296 +-8844949406948671488 315973457 315973457 +-8845239510002753536 -1358159222 -1358159222 +-8852770376039219200 311478497 311478497 +-8853553406533894144 -1820436871 -1820436871 +-8856151919723003904 -575513309 -575513309 +-8856821118526734336 618321042 618321042 +-8857335871148171264 1061043704 1061043704 +-8858063395050110976 -1117019030 -1117019030 +-8859107121649893376 -37876543 -37876543 +-8866442231663067136 -1079633326 -1079633326 +-8870186814744420352 NULL NULL +-8870673219965001728 -1620148746 -1620148746 +-8875546987176206336 414645489 414645489 +-8877053610728161280 706823078 706823078 +-8877431933441327104 1650676897 1650676897 +-8879742387365429248 1912175355 1912175355 +-8881446757271846912 1224662770 1224662770 +-8887058200926093312 -191704948 -191704948 +-8892963883085578240 -2087815643 -2087815643 +-8896045754034978816 1392980712 1392980712 +-8914039133569400832 1332042427 1332042427 +-8916987977485312000 -839176151 -839176151 +-8922409715403112448 -536315467 -536315467 +-8923529803981905920 1148500740 1148500740 +-8927968289860370432 1033836308 1033836308 +-8930307926221807616 -966979668 -966979668 +-8938849835283677184 1318606691 1318606691 +-8940944155843461120 -858439361 -858439361 +-8941201923743703040 NULL NULL +-8946656952763777024 -759911896 -759911896 +-8948335470186373120 -1078397698 -1078397698 +-8959796625322680320 1318956413 1318956413 +-8961059046745669632 1783034168 1783034168 +-8962547695651323904 1091736925 1091736925 +-8965578088652095488 -1216166764 -1216166764 +-8989473881707921408 1310360849 1310360849 +-8990843030306717696 -311437801 -311437801 +-8992599250893979648 1677494300 1677494300 +-8996954350906294272 -1769037737 -1769037737 +-9002912355472736256 -561932449 -561932449 +-9004892183139811328 -1949698319 -1949698319 +-9008631121684832256 704038411 704038411 +-9012093603044245504 538766635 538766635 +-9013952631912325120 -1052493316 -1052493316 +-9014145341570203648 273256071 273256071 +-9022154842129547264 1130043800 1130043800 +-9032650742739836928 1102561039 1102561039 +-9049720998034137088 1747664003 1747664003 +-9051477157204770816 -1648991909 -1648991909 +-9058029636530003968 -1197602595 -1197602595 +-9066993118333706240 -425196209 -425196209 +-9071565764086521856 2058640744 2058640744 +-9075302542655684608 -295186284 -295186284 +-9075486079396069376 -1805915233 -1805915233 +-9078662294976061440 -235819331 -235819331 +-9079801920509001728 -705887590 -705887590 +-9080568167841226752 906074599 906074599 +-9080956291212132352 1330219997 1330219997 +-9084940280061485056 128430191 128430191 +-9088239683374350336 -18917438 -18917438 +-9091113592821972992 1861276585 1861276585 +-9095689235523264512 1687784247 1687784247 +-9101953184875757568 -1918847735 -1918847735 +-9102482277760983040 742866312 742866312 +-9105358806324035584 1679381813 1679381813 +-9105701280936501248 1109664665 1109664665 +-9109392978217484288 407098216 407098216 +-9117959922369060864 936133387 936133387 +-9126793997498957824 770574055 770574055 +-9136398397785948160 376076075 376076075 +-9142610685888192512 -387395264 -387395264 +-9145593811310010368 -202409329 -202409329 +-9148197394287779840 -1568536214 -1568536214 +-9149719074367946752 234452496 234452496 +-9157613004431998976 1362740312 1362740312 +-9175038118837149696 -1701492480 -1701492480 +-9175279464813223936 2080412555 2080412555 +-9178166810751909888 -1407817977 -1407817977 +-9187662685618348032 NULL NULL +-9189155542884474880 -1955545912 -1955545912 +-9203804401302323200 -671853199 -671853199 +-9203942396257984512 -1625800024 -1625800024 +-9206329156028112896 2084666529 2084666529 +-9210275791460499456 601376532 601376532 +-9213132862973829120 -1216206795 -1216206795 +-9215144824304721920 -399643110 -399643110 +-9218875542187065344 785382955 785382955 +-9219066990552760320 2090044777 2090044777 +1021 -1884780525 -1884780525 +1030 -300429552 -300429552 +1032 -1914210382 -1914210382 +1039 914062370 914062370 +1046 -990781312 -990781312 +1048 -249150336 -249150336 +1053 -1369302744 -1369302744 +1055 371383749 371383749 +1058 -1497098905 -1497098905 +1065 1194089079 1194089079 +1066 1767019352 1767019352 +1074 161210995 161210995 +1075 -534894953 2144365072 +108 -835107230 -835107230 +1086 -1341627565 -1341627565 +1093 NULL NULL +1094 -359194591 -359194591 +1095 291866793 291866793 +1099 1390704286 1390704286 +1115 -144862954 -144862954 +112 -2147071655 -2147071655 +1127 -423378447 -423378447 +1128 -932525608 -932525608 +1132 239078089 239078089 +1134 187718349 187718349 +1141 -540820650 -540820650 +1142 1184001017 1184001017 +1145 669484010 669484010 +1153 1646811064 1646811064 +1157 590719541 590719541 +1158 990246086 990246086 +1165 477857533 1153089364 +1168 NULL NULL +1177 1182595271 1182595271 +1187 69110370 69110370 +1189 215508794 215508794 +1198 -1857500489 -1857500489 +120 29680001 29680001 +1201 945911081 945911081 +1217 -1802746460 -1802746460 +1234 -1921909135 -1921909135 +1243 1938788165 1938788165 +1247 -866304147 -866304147 +1252 30036142 30036142 +1261 -343173797 -343173797 +1270 1969239701 1969239701 +1280 991397535 991397535 +1282 -1140071443 -1140071443 +1286 -480058682 -480058682 +1287 -1362178985 -1362178985 +1290 177837042 177837042 +1291 1398486099 1398486099 +1299 765656980 765656980 +130 -2081501748 -2081501748 +1307 882331889 882331889 +1312 742059797 742059797 +1316 997193329 997193329 +1321 731241198 731241198 +1337 -1948257321 -1948257321 +1341 492120544 492120544 +1342 1203482872 1203482872 +1343 -217785690 -217785690 +1345 -600315936 -600315936 +1346 -158233823 -158233823 +135 198017473 198017473 +1366 748358417 748358417 +1368 -223311809 1650573576 +1371 -2041825946 821316302 +138 843282593 843282593 +1386 2081152819 2081152819 +1398 955267058 955267058 +1409 865013617 865013617 +1422 -1402821064 -1402821064 +1423 631954352 631954352 +1436 1765173148 1765173148 +1439 531459992 531459992 +1447 NULL NULL +1450 740883263 740883263 +1454 NULL NULL +1458 -1001529082 -1001529082 +1462 287239980 287239980 +1466 574069547 574069547 +1470 1406029775 1406029775 +1477 -707228984 -707228984 +1481 819875108 1022707418 +1489 766737781 766737781 +1493 557053197 557053197 +1495 -1222897252 -1222897252 +1501 1081920048 1081920048 +1506 1893632113 1893632113 +1508 1632769786 1632769786 +1509 1304812803 1920662116 +1518 824235855 824235855 +1520 NULL NULL +1521 -993029335 -993029335 +1524 -1851280202 -1851280202 +1530 1934970004 1934970004 +1537 -20660936 278601840 +154 -445353909 998793176 +1541 -1430903652 -1430903652 +1542 NULL NULL +1545 564366133 564366133 +1556 -1202975006 -1202975006 +1559 -206177972 -206177972 +1561 NULL NULL +1566 747122546 747122546 +1604 -2077771325 -2077771325 +1606 -1901806083 -1901806083 +1608 142722637 142722637 +1613 -1422780798 -1422780798 +1614 -296195507 -296195507 +1620 -1989378509 -1989378509 +1638 92777932 92777932 +1641 NULL NULL +1643 1346627771 1346627771 +1648 -496870819 -496870819 +1651 -1575588203 -1575588203 +1667 -499533481 -499533481 +1671 1504919241 1504919241 +1674 1488440165 1488440165 +1676 -393723522 -393723522 +1678 -1104268719 -1104268719 +168 -53587991 -53587991 +1681 929751599 929751599 +169 -1759354458 -1759354458 +1693 -1545572711 -1545572711 +1701 -648766606 1404346934 +1704 -605370177 -605370177 +1719 -1477897348 1008698636 +1726 NULL NULL +1728 626251612 626251612 +1745 368170021 368170021 +1751 -667383951 -667383951 +1752 -1538978853 -1538978853 +1769 805672638 805672638 +1774 -1974777102 -1974777102 +1775 1928365430 1928365430 +1777 1061638369 1061638369 +1780 -71433796 -71433796 +1781 NULL NULL +1785 -524189419 -524189419 +1786 -1009249550 -1009249550 +1788 -997463353 -997463353 +1789 -1098379914 -1098379914 +1791 -1900369503 -1900369503 +1796 -1625062942 -1625062942 +1806 -40284975 -40284975 +181 1742536084 1742536084 +1811 -922200749 -922200749 +1813 -738157651 -738157651 +1826 505902480 505902480 +1827 -956668825 -956668825 +1835 1768399622 1768399622 +1837 290921475 290921475 +1845 -909024258 -909024258 +1846 418182899 418182899 +1856 -1873004551 44009986 +1862 674547678 674547678 +1863 -1017027298 -1017027298 +1864 NULL NULL +1866 -400501472 -400501472 +187 2133950868 2133950868 +1870 25644069 25644069 +188 316438994 316438994 +1880 1293876597 1293876597 +1890 -1660344634 -1660344634 +1892 596595603 596595603 +1899 734267314 734267314 +19 -1900894010 -436386350 +1906 1070989126 1070989126 +1910 1978200605 1978200605 +1914 -1462331586 -1146055387 +1926 -490337498 -490337498 +1937 -987995271 -987995271 +1940 950997304 950997304 +1941 -54793232 -54793232 +1948 -1446132523 735732067 +1955 -316678117 -316678117 +1965 1173098061 1173098061 +1972 -1404921781 -1404921781 +1981 -980869630 -980869630 +1983 -1954890941 -1954890941 +1987 65956045 65956045 +1990 1050809633 1050809633 +1995 1012230484 1012230484 +1999 -9958400 -9958400 +2001 217476429 217476429 +2002 1535954353 1535954353 +2004 1464703053 1464703053 +2009 -1471147786 -1471147786 +2011 33234633 33234633 +2013 1142098316 1142098316 +2016 135341845 135341845 +2017 44628821 44628821 +2020 -244778184 37730738 +2025 989475408 989475408 +2026 -1454941039 -1454941039 +2029 546555204 546555204 +203 2070969353 2070969353 +204 2018249426 2018249426 +2046 363981930 363981930 +2056 1941527322 1941527322 +2067 NULL NULL +2072 -1652600376 -1652600376 +2073 -856843296 -856843296 +2085 -1179668872 -1179668872 +2089 945683736 945683736 +2092 1678261510 1678261510 +2105 1550112473 1550112473 +2106 1597303154 1597303154 +2108 977292235 977292235 +213 -1081328752 -361944328 +2131 -464804906 -464804906 +2138 -1048181367 -1048181367 +2140 -1319686435 -1319686435 +2144 117620760 117620760 +2155 1126157283 1126157283 +2177 -1960344717 -1960344717 +2179 1394370866 1394370866 +2180 -120704505 -120704505 +2183 -1947868215 -1947868215 +2186 -1655396452 -1655396452 +2187 -906986958 -906986958 +2189 NULL NULL +2193 -2037628236 -598552521 +2194 -853967587 -853967587 +22 176792505 176792505 +2201 1425362689 1425362689 +2205 2013376408 2013376408 +2214 1602631923 1602631923 +2217 479566810 479566810 +2218 NULL NULL +2223 1605596441 1605596441 +2227 1054864168 1054864168 +2229 516843026 516843026 +2232 277582670 277582670 +2241 810157660 810157660 +2244 -1699049982 -1699049982 +2255 -1561738723 -1561738723 +2262 1283898734 1283898734 +2264 -425103007 -425103007 +2270 -1429346144 -1429346144 +2274 -1676261015 -1676261015 +2277 -1447263708 -1447263708 +2279 -1412187081 -1412187081 +228 167432368 167432368 +2283 530274409 530274409 +2285 340929437 1533817551 +2295 -1914072976 -1914072976 +2306 -604362582 -604362582 +2320 -1919939921 -1919939921 +2323 -2028355450 -2028355450 +2325 1471913583 1645067708 +2335 1281277970 1281277970 +2341 1951869763 1951869763 +2348 -40407627 -40407627 +2358 -370798230 -370798230 +236 514833409 514833409 +2373 -1602792666 -1602792666 +238 713031549 713031549 +2386 930008274 930008274 +2393 901084309 1852725744 +2398 1489169773 1489169773 +2400 663222148 663222148 +2410 NULL NULL +2412 -1749841790 -887663189 +2420 480849725 480849725 +2426 62293025 62293025 +2434 1621606222 1621606222 +244 860708524 860708524 +2461 -1668974292 -1668974292 +2463 -655118881 2031604236 +2465 -1819075185 -1819075185 +2469 524808 524808 +2475 -1116100266 -1116100266 +2476 -1210261177 -1210261177 +2485 -379643543 1594107168 +2487 NULL NULL +2492 -270683864 -270683864 +2494 -1830870295 -1830870295 +2502 -336625622 -336625622 +2506 776606164 776606164 +2509 693331761 693331761 +2512 -1164833898 -1164833898 +2514 407233168 407233168 +2515 -601946913 -601946913 +2517 198624903 198624903 +2524 -1081766449 -1081766449 +2533 672266669 672266669 +2539 1090344463 1090344463 +2540 1103878879 1103878879 +255 -1106469823 -1106469823 +2551 -1762037754 -1762037754 +2553 1112783661 1112783661 +2560 -1946023520 -1493282775 +2563 -1141652793 -1141652793 +2565 -1302592941 -1302592941 +2569 -837503491 -837503491 +2579 1640445482 1640445482 +2580 1933545427 1933545427 +2587 -1125605439 -1125605439 +259 -922875124 -922875124 +2599 -1903090602 -1903090602 +2607 NULL NULL +2608 335359004 335359004 +2619 -2019287179 1895751360 +2625 -1897998366 -1897998366 +2626 1620529246 1620529246 +263 1094778643 1807358029 +2637 1522208504 1522208504 +2647 92834720 92834720 +2649 659343542 659343542 +2662 209430502 209430502 +2663 43983130 43983130 +2675 1305668933 1305668933 +268 -203416622 860658464 +2680 825977391 825977391 +2682 -675125724 -675125724 +2688 -1249134513 -1249134513 +2689 -1343327 -1343327 +2692 NULL NULL +2700 -123529324 -123529324 +2712 -901778330 -901778330 +2714 1284956108 1284956108 +2715 962712814 1569269522 +2719 1516149502 1516149502 +2724 922373046 922373046 +2725 257821327 257821327 +2735 1307148254 1307148254 +2745 1134416796 1134416796 +275 1517488324 1517488324 +2752 962091264 962091264 +2762 314232856 314232856 +2772 1835749815 1835749815 +2776 -1801684055 -1801684055 +2786 -2117280385 343362793 +279 -1709246310 -1709246310 +2790 686081268 686081268 +2791 -714594143 -714594143 +2803 493977568 923980398 +2805 -295751373 -295751373 +281 -42151403 -42151403 +2810 1844415080 1844415080 +2811 -170643477 -170643477 +2816 -912429611 -912429611 +2821 829055499 829055499 +2824 -1679120527 -1679120527 +2835 144428297 144428297 +2842 889772203 889772203 +2843 -1621721177 -887790938 +2846 -121162464 -121162464 +2847 1634441052 1634441052 +2848 -985817478 -985817478 +2850 1618123796 1618123796 +2855 -1770250407 1756592797 +2862 1956887369 1956887369 +2878 -906545548 -906545548 +2886 84231802 84231802 +289 -1144976744 -1144976744 +2897 -47662800 1211873318 +2900 2114363167 2114363167 +2903 1552351592 1552351592 +2905 -1232183416 -1232183416 +2911 1483580941 1483580941 +2915 -470798506 -470798506 +2919 1002132158 1002132158 +2933 -1674623501 -1484787952 +2938 -2032576637 -2032576637 +294 -1817096156 -1817096156 +2941 -1862095575 -1862095575 +2942 1638471881 1638471881 +296 -1348149160 597657990 +2962 1042237722 1042237722 +2968 1556919269 1556919269 +2971 -373541958 -373541958 +2977 -2007662579 -2007662579 +2979 131031898 131031898 +2984 1440427914 1440427914 +2986 -933324607 -933324607 +2988 492639283 492639283 +2991 NULL NULL +3002 -1538558250 -1538558250 +3006 1328225044 1328225044 +301 -1924909143 -1924909143 +302 -1730740504 -1730740504 +3021 -360113158 177294487 +3024 -891543038 -891543038 +3029 -1198036877 -1198036877 +3031 NULL NULL +3036 -449333854 -449333854 +3043 692666133 692666133 +3054 -973128166 -973128166 +3055 -1198465530 -1198465530 +3058 -1144920802 -1144920802 +3059 1386071996 1386071996 +3060 -2122509553 818313200 +3067 1256676429 1256676429 +3071 1129173487 1129173487 +3073 722737062 722737062 +3079 -882028850 -882028850 +3083 -385247581 -385247581 +3084 1333148555 1333148555 +3089 584084934 584084934 +3094 1335803002 1335803002 +3103 -1622653291 -1622653291 +311 -1850492820 -1850492820 +3111 -1299159155 -1299159155 +3118 NULL NULL +3119 673904922 673904922 +3144 -758231588 -758231588 +3147 1102069050 1102069050 +3159 -78240945 1127080164 +3163 26270580 26270580 +3174 -1871446009 -1871446009 +3183 1363459426 1363459426 +3190 297577612 297577612 +3197 976870621 976870621 +3199 -2086352100 -2086352100 +320 1198172036 1198172036 +3203 -491377296 -491377296 +3206 -733756717 -733756717 +3208 -211669740 -211669740 +3212 900992177 900992177 +3213 -1171326281 -1171326281 +3231 -817383093 -817383093 +3232 1434588588 1434588588 +3235 -287400633 -287400633 +3244 1303632852 1303632852 +3245 1385883394 1385883394 +3248 1202720813 1202720813 +3249 206942178 206942178 +3253 -1218871391 -1218871391 +3255 -1212433954 -1212433954 +3263 -419335927 -419335927 +3286 -1078214868 -1078214868 +3300 1743696703 1743696703 +3307 -1128317466 -1128317466 +3322 -1544877665 -1544877665 +3333 -462541618 -462541618 +3352 -1621814212 -1621814212 +336 1376818328 1376818328 +3365 1712411993 1712411993 +3366 -606214770 -606214770 +3397 -2066134281 -2066134281 +34 1969650228 1969650228 +3401 -2138343289 -2138343289 +3407 NULL NULL +3409 -337586880 -337586880 +341 278643258 278643258 +3418 -940504641 786565385 +342 -884796655 -884796655 +3421 -1878572820 -1878572820 +3430 -395499919 -395499919 +3443 -1006768637 -1006768637 +3446 440393309 440393309 +345 NULL NULL +3456 NULL NULL +346 -1880877824 -938756287 +3460 1204325852 1204325852 +3462 -1716506227 511836073 +3467 -1134786190 596802082 +347 -414207254 -414207254 +3472 868717604 868717604 +3478 1772545157 1772545157 +3493 -890552359 -890552359 +350 330302407 330302407 +3507 2032271149 2032271149 +3510 197056787 197056787 +3512 636901402 636901402 +3533 1076088102 1076088102 +3534 NULL NULL +3541 -996953616 -996953616 +3542 459269456 459269456 +355 1258721737 1258721737 +3554 48554395 48554395 +3555 41063276 458190500 +3563 1332181668 1332181668 +3566 -519978947 -519978947 +3567 410340192 410340192 +3568 NULL NULL +3579 -1426893312 -1426893312 +3588 696229550 850625480 +3599 2069258195 2069258195 +3606 -1032306832 -1032306832 +3608 773730574 773730574 +3609 -1380191654 -1380191654 +361 -434747475 -434747475 +3613 1191238870 1191238870 +3622 -1583445177 2057486961 +3625 -1656822229 -1656822229 +3630 693876030 693876030 +3637 929560791 929560791 +364 1336365018 1336365018 +3648 1142481557 1142481557 +3663 -886741158 -886741158 +3664 -186600427 -186600427 +367 -1324624386 -1324624386 +3672 1825828852 1825828852 +3673 -362603422 -362603422 +3677 470575409 470575409 +3680 1124269631 1124269631 +3682 -1718163874 -1718163874 +3690 1500437122 1500437122 +3691 -664111469 -664111469 +3701 760466914 760466914 +3702 -1423467446 -1423467446 +3703 1796950944 1796950944 +3707 1377359511 1377359511 +3722 -1322736153 -1322736153 +3724 1625751062 1625751062 +3725 -2119539915 1911834442 +3728 -938342473 -800799595 +3739 -192181579 -192181579 +3747 1001732850 1001732850 +3749 1027147837 1027147837 +375 -1754347372 -1754347372 +3755 -7929246 -7929246 +3763 -679230165 -679230165 +3764 -2027812975 -2027812975 +3769 -1431196400 -1431196400 +3770 -1727003541 -1627366321 +378 -1270523286 -1270523286 +3781 -161884324 141492068 +3789 -139448716 -139448716 +379 1625699061 1625699061 +3810 -1043413503 -1043413503 +3812 -870900240 -870900240 +3823 1563120121 1563120121 +3824 1372224352 1372224352 +383 -191434898 1063524922 +3830 1443426396 1443426396 +3835 133276416 133276416 +3841 -901079162 -901079162 +3848 1436480682 1436480682 +3858 1925283040 1925283040 +3860 -423945469 -423945469 +3866 -88576126 436093771 +3874 -1603071732 -1603071732 +3879 461680901 461680901 +388 -66112513 -66112513 +3887 476919973 476919973 +3901 -1909635960 -1909635960 +3904 1473503196 1473503196 +3907 -373038706 -373038706 +391 1107258026 1107258026 +3910 NULL NULL +3911 -1283465451 -1283465451 +3913 1506907734 1506907734 +392 1664736741 1664736741 +3932 2145269593 2145269593 +3940 923353533 923353533 +3941 -734921821 -734921821 +3945 -1758125445 -1758125445 +3946 523289079 523289079 +3949 1797164732 1797164732 +3958 65172363 65172363 +3960 1509573831 1509573831 +3961 -1955647385 -1955647385 +3962 NULL NULL +3965 771827308 771827308 +3974 -253084551 670667262 +3980 -564495517 -564495517 +3990 -1392487784 -1392487784 +4018 -396852483 -396852483 +4020 -1447140800 -1447140800 +4024 -202035134 -202035134 +4030 -216495498 -216495498 +4037 1003667927 1003667927 +4051 1052255272 1052255272 +4054 1998185704 1998185704 +4056 -1516259168 -1516259168 +4075 NULL NULL +4078 727802564 727802564 +4088 947846543 947846543 +41 -203911033 -203911033 +412 -505879576 2144454927 +417 152891873 152891873 +425 1336194583 1336194583 +443 596242714 596242714 +454 -1227085134 -1227085134 +455 1159353899 1159353899 +462 1677444379 1677444379 +470 -181523892 -181523892 +471 -207899360 -207899360 +481 536235636 536235636 +482 765084282 765084282 +485 874824958 874824958 +489 -928013434 -928013434 +49 1673218677 1673218677 +490 1229172951 1229172951 +491 -201554470 -201554470 +5 -1063673827 -1063673827 +500 1216016081 1216016081 +501 -1469463456 715333063 +504 851975276 851975276 +522 -853606287 -853606287 +523 149701884 149701884 +524 -1326025787 -1326025787 +530 -1851680302 -1851680302 +535 888896424 888896424 +579 -1804244259 -1804244259 +583 -1554325042 -1554325042 +584 -2017279089 -2017279089 +586 -310343273 -310343273 +587 1485934602 1485934602 +590 -186764959 -186764959 +597 1577999613 1577999613 +601 -592568201 -592568201 +612 1131663263 1131663263 +615 2097519027 2097519027 +618 -412333994 -412333994 +65 919363072 919363072 +650 1222217404 1222217404 +658 -1254129998 -1254129998 +66 2013444562 2013444562 +661 -407089271 1045719941 +663 -1261099087 -1261099087 +664 899810881 899810881 +677 -1038565721 -1038565721 +68 879290165 879290165 +681 -893863493 -893863493 +687 1888675011 1888675011 +688 NULL NULL +690 -1112062809 -1112062809 +691 -1156193121 -1156193121 +6923604860394528768 -1095938490 -1095938490 +6924820982050758656 -1709117770 -1709117770 +6926925215281774592 987734049 987734049 +6927260280037097472 1668094749 1668094749 +6928080429732536320 1300798829 1300798829 +6933001829416034304 2089198703 2089198703 +6933451028794925056 1776456512 1776456512 +6933731240564056064 780859673 780859673 +6934570741217755136 491758252 491758252 +694 -2015780444 -2015780444 +6947488599548215296 1141595012 1141595012 +695 -521886983 -521886983 +6960137166475911168 -558456218 -558456218 +6962726713896484864 2051470532 2051470532 +6963217546192322560 -1340213051 -1340213051 +6964585306125008896 2146312499 2146312499 +6967631925774639104 373031319 373031319 +6969599299897163776 -2042831105 -2042831105 +6974475559697768448 1493555718 1493555718 +6982145326341423104 -941433219 -941433219 +6987889924212203520 -2053551539 -2053551539 +6991316084916879360 -1345085327 -1345085327 +6996686091335884800 -1738775004 -1738775004 +7006803044329021440 1614297403 1614297403 +7013693841855774720 656187584 656187584 +7014537632150224896 -44426049 -44426049 +7017956982081404928 -828724467 -828724467 +7022349041913978880 -1096013673 -1096013673 +7027529814236192768 -1988508336 -1988508336 +7031339012080549888 1182390248 1182390248 +7039820685967343616 -483740394 -483740394 +7045967493826387968 -1669227632 -1669227632 +7049773031131283456 814544198 814544198 +7052226236896256000 1119976718 1119976718 +7054271419461812224 -1266138408 -1266138408 +7054938591408996352 -352146259 -352146259 +7060236714847412224 -1858443953 -1858443953 +7061498706968428544 -290558484 -290558484 +7061809776248545280 -469870330 -469870330 +7062382339142156288 536876888 536876888 +7062605127422894080 -1614194712 -1614194712 +7065344324692443136 -1881263242 -1881263242 +7068517339681259520 -1871209811 -1871209811 +7069729473166090240 NULL NULL +707 1343581455 1343581455 +7077311975029555200 1103797891 1103797891 +7078641038157643776 NULL NULL +7080269176324218880 -337073639 -337073639 +7084659344078970880 963854010 963854010 +7086206629592252416 -1106685577 -1106685577 +7091300332052062208 NULL NULL +7099005292698550272 917891418 917891418 +71 -20639382 -20639382 +7107604675626008576 1949494660 1949494660 +7125231541858205696 -2111312205 -2111312205 +7128222874437238784 -283378057 -283378057 +7130159794259353600 -837506172 -837506172 +7130306447560826880 77063155 77063155 +7149417430082027520 -1352545619 -1352545619 +7153922334283776000 NULL NULL +7157247449513484288 -36038293 -36038293 +7164349895861829632 -1153978907 -1153978907 +7165364563962191872 -1272838092 -1272838092 +7166263463731421184 -1838281337 -1838281337 +7175638927948562432 596280431 596280431 +7186401810812059648 1430614653 1430614653 +7195454019231834112 -1419573027 -1419573027 +7198687580227043328 563507584 563507584 +7199539820886958080 NULL NULL +7204802700490858496 -1719427168 -1719427168 +7210160489915236352 -1353470095 -1353470095 +7212016545671348224 1309976380 1309976380 +7212090742612467712 -1067083033 -1067083033 +7217123582035116032 -90029636 -90029636 +7220131672176058368 1017953606 1017953606 +7220581538170413056 615661052 615661052 +7223569671814987776 -1004204053 -1004204053 +7226360892091416576 -935723237 -935723237 +7229607057201127424 -1818380492 -1818380492 +723 1616782308 1616782308 +7231399302953377792 1990792684 1990792684 +7232273749940838400 -1231821948 -1231821948 +7235109456886816768 -2098078720 -2098078720 +7237310132329488384 -1061859761 -1061859761 +7238339720750948352 -1770229099 -1770229099 +724 -616724730 -616724730 +7242751359672631296 -2016985611 -2016985611 +7249443195032985600 -51612681 -51612681 +7250237407877382144 -772236518 -772236518 +7254710367022645248 1911809937 1911809937 +7255302164215013376 1281159709 1281159709 +7259955893466931200 NULL NULL +7260908278294560768 826519029 826519029 +7265141874315517952 -571587579 -571587579 +7266437490436341760 177391521 177391521 +7271786885641666560 936752497 936752497 +7271887863395459072 -94709066 -94709066 +7274777328897802240 482977302 482977302 +7291432593139507200 1570238232 1570238232 +7295502697317097472 210728566 210728566 +7295926343524163584 1182646662 1182646662 +7296164580491075584 1412102605 1412102605 +7299197687217856512 172075892 172075892 +73 488014426 488014426 +7304839835188609024 1961954939 1961954939 +7308289763456000000 -1423477356 -1423477356 +7309156463509061632 1304431147 1304431147 +7310869618402910208 -359943425 -359943425 +7319711402123149312 1036391201 1036391201 +7333512171174223872 -332125121 -332125121 +7339426767877390336 538268118 538268118 +7343171468838567936 879289168 879289168 +7344029858387820544 -1669848306 -1669848306 +7345991518378442752 849859032 849859032 +7347732772348870656 -1800413845 -1800413845 +7348598907182800896 -1940205653 -1940205653 +735 115111911 115111911 +7354813692542304256 1426152053 1426152053 +7359004378440146944 1082837515 1082837515 +736 -1183469360 -1183469360 +7368920486374989824 -1822850051 -1822850051 +7370078518278397952 -215703544 -215703544 +7370803940448305152 -533281137 -533281137 +7375521127126089728 -688296901 -688296901 +7376467688511455232 -348628614 -348628614 +7378993334503694336 1870464222 1870464222 +738 -453739759 -453739759 +7381659098423926784 867587289 867587289 +7384150968511315968 1447462863 1447462863 +7386087924003676160 2038381675 2038381675 +7391208370547269632 -743680989 -743680989 +7393308503950548992 -849551464 -849551464 +7394967727502467072 -1983567458 -1983567458 +7401968422230032384 -504529358 -504529358 +7410096605330227200 1987336880 1987336880 +7410872053689794560 -916344293 -916344293 +7411793502161182720 -177025818 -177025818 +7412924364686458880 1817671655 1817671655 +7414865343000322048 -829717122 -829717122 +7418271723644403712 1202593021 1202593021 +743 1004241194 1004241194 +7432428551399669760 -805288503 -805288503 +7432998950057975808 -434656160 -434656160 +7436133434239229952 203688965 203688965 +7440265908266827776 -1425942083 -1425942083 +7450416810848313344 1393262450 1393262450 +7452756603516190720 -2009569943 -2009569943 +7454442625055145984 -267554590 -267554590 +7454632396542074880 859140926 859140926 +7461153404961128448 -23865350 -23865350 +7471208109437304832 -1603374745 -1603374745 +7473537548003352576 -1439424023 -1439424023 +7486884806277611520 1516236846 1516236846 +7487338208419823616 1974939899 1974939899 +7487538600082554880 2068538934 2068538934 +7490717730239250432 -1829691116 -1829691116 +7491898395977523200 1265528735 1265528735 +7492436934952574976 NULL NULL +7497276415392407552 1543611951 1543611951 +7497306924248834048 550594651 550594651 +7500716020874674176 -1953605752 -1953605752 +7514552840617558016 334208532 334208532 +7517159036469575680 -1437126017 -1437126017 +7524958388842078208 -664856187 -664856187 +7528074274555305984 550186724 550186724 +7528211148397944832 -512198016 -512198016 +7534042483076857856 1645753684 1645753684 +7534145866886782976 -532755480 -532755480 +7534549597202194432 2044130430 2044130430 +7545689659010949120 -1380678829 -1380678829 +7548958830580563968 1836499981 1836499981 +7549858023389003776 NULL NULL +7555301305375858688 1916363472 1916363472 +7566273236152721408 881673558 881673558 +7569249672628789248 -1952235832 -1952235832 +7570474972934488064 -432218419 -432218419 +7573530789362262016 NULL NULL +7575087487730196480 1421779455 1421779455 +7581052107944361984 1493152791 1493152791 +7581614118458335232 -1129489281 -1129489281 +7584007864107778048 1410516523 1410516523 +7592440105065308160 NULL NULL +7593521922173419520 1260480653 1260480653 +7596563216912211968 605946758 605946758 +7599019810193211392 -2112149052 -2112149052 +7608447395949109248 882762933 882762933 +7614435638888210432 735600165 735600165 +7620183559667081216 -1967660827 -1967660827 +7621013099259527168 -553349593 -553349593 +7625728883085025280 -1699044525 -1699044525 +7626715182847090688 1905812339 1905812339 +763 -1933374662 -1933374662 +7637152193832886272 1880017800 1880017800 +7647481735646363648 1164895226 1164895226 +7648729477297987584 NULL NULL +7652123583449161728 472901914 472901914 +7659279803863146496 1541249928 1541249928 +7662037650719850496 -175727228 -175727228 +7675009476762918912 522895626 522895626 +7678790769408172032 -1313618168 -1313618168 +7682327310082531328 879500678 879500678 +7686992843032010752 -897622427 -897622427 +7689489436826804224 -909127123 -909127123 +7690986322714066944 -2124994385 -2124994385 +7691062622443044864 1516165279 1516165279 +7696737688942567424 -269702086 -269702086 +7697541332524376064 -1070951602 -1070951602 +7700734109530767360 194754262 194754262 +7701723309715685376 -1831957182 -1831957182 +7705445437881278464 527598540 527598540 +7710447533880614912 -583908704 -583908704 +7718825401976684544 -1226425562 -1226425562 +7720187583697502208 -1366059787 -1366059787 +7731443941834678272 -1092872261 -1092872261 +7735566678126616576 1626868156 1626868156 +774 449788961 449788961 +7741854854673367040 -1743938290 -1743938290 +7746402369011277824 -1735287250 -1735287250 +7747874976739016704 315055746 315055746 +7748799008146366464 -540401598 -540401598 +7752740515534422016 1851654062 1851654062 +7753359568986636288 -816661030 -816661030 +7753882935005880320 1190302173 1190302173 +7761834341179375616 1273877405 1273877405 +7762823913046556672 1198701102 1198701102 +7765456790394871808 1074488452 1074488452 +7768984605670604800 NULL NULL +7775034125776363520 -1628799508 -1628799508 +7778936842502275072 -1702587308 -1702587308 +7779486624537370624 -1998652546 -1998652546 +7779735136559579136 -1228063838 -1228063838 +7782245855193874432 618991041 618991041 +7784169796350730240 -958165276 -958165276 +7784489776013295616 -158848747 -158848747 +779 -1939362279 -1939362279 +7790728456522784768 1575091509 1575091509 +7792036342592348160 -538812082 -538812082 +7794244032613703680 1301426600 1301426600 +78 95356298 95356298 +780 -737624128 -737624128 +7800332581637259264 592011541 592011541 +7801697837312884736 -116484575 -116484575 +7818464507324121088 -2119724898 -2119724898 +782 -1552053883 -1552053883 +7823874904139849728 344239980 344239980 +784 44595790 44595790 +7843804446688264192 -397951021 -397951021 +7844258063629852672 972835688 972835688 +7845953007588401152 NULL NULL +7857878068300898304 977624089 977624089 +7868367829080506368 658008867 658008867 +7870277756614623232 985634256 985634256 +7871189141676998656 1363568842 1363568842 +7871554728617025536 -309571354 -309571354 +7874764415950176256 2127682701 2127682701 +7885697257930588160 1992977592 1992977592 +7888238729321496576 978044705 978044705 +789 NULL NULL +7892026679115554816 626941809 626941809 +7892281003266408448 -371779520 -371779520 +7898670840507031552 776459017 776459017 +7909645665163804672 -1289665817 -1289665817 +7917494645725765632 2076370203 2076370203 +7919597361814577152 2125311222 2125311222 +7921639119138070528 -1030565036 -1030565036 +7922443154272395264 -1333770335 -1333770335 +7926898770090491904 1582537271 1582537271 +7933040277013962752 -1061222139 -1061222139 +7936149988210212864 1769324649 1769324649 +7944741547145502720 372099650 372099650 +7947544013461512192 -1184620079 -1184620079 +7948803266578161664 1766517223 1766517223 +7955126053367119872 1447438548 1447438548 +7961515985722605568 866084887 866084887 +7961909238130270208 -1138530007 -1138530007 +797 996831203 996831203 +7983789401706094592 230954385 230954385 +7989119273552158720 NULL NULL +7989160253372817408 1848935036 1848935036 +7997694023324975104 -1826997220 -1826997220 +7998357471114969088 346562088 346562088 +7998687089080467456 NULL NULL +80 NULL NULL +8000440057238052864 1251556414 1251556414 +8002769767000145920 1668446119 1668446119 +8004633750273925120 -1754203978 -1754203978 +8011181697250631680 1773417290 1773417290 +8011602724663336960 667283966 667283966 +8014986215157530624 -799249885 -799249885 +8017403886247927808 -1491722659 -1491722659 +803 -2096425960 -2096425960 +8045070943673671680 435407142 435407142 +8048726769133592576 -406264741 -406264741 +8059284960252731392 -251576563 -251576563 +8069531888205086720 1978171687 1978171687 +8071961599867387904 52667480 52667480 +8073733016154431488 1815882183 1815882183 +8079573715140485120 503752931 503752931 +808 -1836166334 -1836166334 +8087737899452432384 -2137168636 -2137168636 +809 -682333536 -682333536 +8091421389575282688 NULL NULL +8099215208813903872 492968645 492968645 +8100036735858401280 -146961490 -146961490 +8109381965028548608 2022944702 2022944702 +8111757081791733760 -234758376 -234758376 +8113585123802529792 129675822 129675822 +8116738401948377088 1914993018 1914993018 +812 -954480325 -954480325 +8120593157178228736 -1379039356 -1379039356 +8129551357032259584 323817967 323817967 +8135164922674872320 -1459528251 -1459528251 +8142241016679735296 -163859725 -163859725 +8143462899383345152 644934949 644934949 +8144552446127972352 2083836439 2083836439 +8145745969573666816 467753905 467753905 +8145750910080745472 1275228381 1275228381 +8146288732715196416 -728015067 -728015067 +8146492373537660928 1316369941 1316369941 +8148211378319933440 NULL NULL +815 1910930064 1910930064 +8150115791664340992 793047956 793047956 +8156018594610790400 1384071499 1384071499 +8156782979767238656 -1651993300 -1651993300 +8160569434550403072 -1808960215 -1808960215 +8160662610166194176 -310584775 -310584775 +8163948965373386752 1968813171 1968813171 +8168742078705262592 -303747347 -303747347 +8169878743136043008 1765874562 1765874562 +8171188598958407680 1996235654 1996235654 +8183233196086214656 1450881368 1450881368 +8184799300477943808 -579916775 -579916775 +8190539859890601984 1418228573 1418228573 +8190967051000659968 604460005 604460005 +8192304692696383488 494570380 494570380 +8195103847607967744 15020431 15020431 +8199513544090730496 758926227 758926227 +820 -409673169 746904285 +8201303040648052736 -774406989 -774406989 +8201491077550874624 1677197847 1677197847 +8208354137450766336 1377144283 1377144283 +8210813831744118784 139661585 139661585 +8213810702473183232 587797446 587797446 +8219326436390821888 2064448036 2064448036 +8220104397160169472 -1274158260 -1274158260 +8221561626658881536 -1626062014 -1626062014 +8222714144797368320 -318380015 -318380015 +8223732800007864320 -599396052 -599396052 +823 1660088606 1660088606 +8230371298967609344 1660278264 1660278264 +8235179243092090880 187893585 187893585 +8244041599171862528 402173272 402173272 +8254763178969915392 658850444 658850444 +8268875586442256384 1271280812 1271280812 +8269730157217062912 127051381 127051381 +8272001752345690112 3999930 3999930 +8279056098670198784 2133492883 2133492883 +8282648443538710528 -402441123 -402441123 +8283099811330506752 737149747 737149747 +8286706213485297664 -916495008 -916495008 +8287522765741301760 -1817564067 -1817564067 +8290014929764040704 -1424027104 -1424027104 +8290944180915871744 684561551 684561551 +8294315622451740672 -43858652 -43858652 +8295110846998233088 -1945738830 -1945738830 +83 -684022323 -684022323 +8302473563519950848 -1524081566 -1524081566 +8316336224427483136 345556325 345556325 +8323460620425330688 -1524554771 -1524554771 +8325227661920133120 -178568841 -178568841 +8332670681629106176 -314935936 -314935936 +8333523087360901120 -442732016 -442732016 +8337549596011102208 904604938 904604938 +8345435427356090368 323919214 323919214 +835 -1054609414 -1054609414 +8351163199364390912 391186487 391186487 +8362046808797306880 89366322 89366322 +8365058996333953024 -2043805661 -2043805661 +8367680396909404160 -1269216718 -1269216718 +8368012468775608320 -1665164127 -1665164127 +837 170870820 170870820 +8371939471056470016 826143442 826143442 +8372408423196270592 564349193 564349193 +8372588378498777088 1321678350 1321678350 +8374321007870836736 -329336519 -329336519 +8376440110255243264 1665724041 1665724041 +8383159090746204160 605141554 605141554 +8388363436324085760 -707108808 -707108808 +8391407951622815744 NULL NULL +8391785334471589888 -630900418 -630900418 +8396433451610652672 -180280420 -180280420 +8398862954249560064 669871113 669871113 +8407869317250220032 -1240912824 -1240912824 +8410599906334097408 -1606567895 -1606567895 +8411494452500930560 -1568646283 -1568646283 +8415171956168417280 541118710 541118710 +8416121695917498368 63706286 63706286 +8417381121663746048 1458051497 1458051497 +8419958579638157312 -99916247 -99916247 +8424515140664360960 1847210729 1847210729 +8435912708683087872 -2081809883 -2081809883 +845 -1026746699 -1026746699 +8451612303224520704 -971203543 -971203543 +8454154705460666368 -1421396891 -1421396891 +8455496814886002688 107680423 107680423 +8457906374051020800 106847364 106847364 +8461498293348065280 1636364987 1636364987 +8463868417649524736 -1643714866 -1643714866 +8467976965865799680 916057807 916057807 +8470141334513098752 NULL NULL +8472429318602268672 -308225568 -308225568 +8473699639908261888 -591879497 -591879497 +8487573502287478784 1895282160 1895282160 +8489584373231919104 1416850873 1416850873 +8489735221193138176 -1124028213 -1124028213 +85 -913906252 -913906252 +8501910015960735744 1579460630 1579460630 +8508401924853850112 -1578387726 -1578387726 +8509508263705477120 1107757211 1107757211 +8514851182589771776 415234946 415234946 +8514979402185596928 1902676205 1902676205 +8515682078777081856 -1026458834 -1026458834 +8518454006987948032 -379174037 -379174037 +8519937082746634240 -1745449855 -1745449855 +8523972434954510336 2134433675 2134433675 +8524940073536954368 476858779 476858779 +8525336514806317056 350802495 350802495 +8525894870444638208 1216287232 1216287232 +8532016240026279936 -1726585032 -1726585032 +8536948829863198720 1723691683 1723691683 +8540237852367446016 398960205 398960205 +8543177193114779648 2048533360 2048533360 +8547243497773457408 -534991774 -534991774 +8551446856960942080 -1312782341 -1312782341 +8553195689344991232 566646177 566646177 +8554899472487596032 -491882534 -491882534 +8555933456197828608 NULL NULL +8555948987770511360 107941738 107941738 +8557218322962644992 -1210550573 -1210550573 +8558000156325707776 -370901197 -370901197 +8560526613401714688 1592467112 1592467112 +8569030475428511744 1743671220 1743671220 +8570983266408103936 950545385 950545385 +8571268359622172672 1187495452 1187495452 +8573305425181941760 1583280136 1583280136 +8577096957495025664 NULL NULL +8579974641030365184 -1545388906 -1545388906 +8583916402383601664 -733239404 -733239404 +8613562211893919744 -1109134719 -1109134719 +8625937019655200768 272086526 272086526 +8631515095562887168 -1244527286 -1244527286 +8637720762289659904 1669519977 1669519977 +8639254009546055680 477584560 477584560 +8641221723991433216 -1531040609 -1531040609 +8643198489997254656 -1079086534 -1079086534 +8644602243484803072 -1218592418 -1218592418 +8649296591032172544 -1744964279 -1744964279 +8652485812846567424 1372705672 1372705672 +8656571350884048896 NULL NULL +8660248367767076864 1520375588 1520375588 +8665969966920990720 1372982791 1372982791 +8666178591503564800 -1565785026 -1565785026 +8677632093825916928 2040926345 2040926345 +8677794924343164928 115470151 115470151 +868 -2133145181 -2133145181 +8682955459667951616 2009215103 2009215103 +8687042963221159936 -870624802 -870624802 +8688483860094599168 -273937943 -273937943 +8693036785094565888 2090496825 2090496825 +8697823501349609472 922553769 922553769 +8698055291501543424 -1755088362 -1755088362 +8708232769657815040 6526476 6526476 +8708845895460577280 1860113703 1860113703 +871 915505006 915505006 +8714829359200747520 672919099 672919099 +8716401555586727936 -789126455 -789126455 +8720504651219001344 825677248 825677248 +8723248113030782976 144499388 144499388 +873 842283345 842283345 +8731960288562044928 869288953 869288953 +8734584858442498048 -946830673 -946830673 +8736061027343859712 -1974972123 -1974972123 +874 58313734 58313734 +8752150411997356032 -1502924486 -1502924486 +8759089349412847616 1972940844 1972940844 +8759184090543857664 435426302 435426302 +8760285623204290560 -573787626 -573787626 +8761174805938331648 1205391962 1205391962 +8769199243315814400 2100377172 2100377172 +8773222500321361920 217823040 217823040 +8775009214012456960 -213198503 -213198503 +8779073705407963136 -1979314577 -1979314577 +8779711700787298304 -859535015 -859535015 +878 290601612 290601612 +8780196485890555904 -607285491 -607285491 +8782900615468302336 -1411407810 -1411407810 +8783241818558193664 -714270951 -714270951 +8785153741735616512 1028092807 1028092807 +8792059919353348096 -745678338 -745678338 +8793387410919038976 -1058166020 -1058166020 +8795069490394882048 1366402722 1366402722 +8806507556248731648 1190554937 1190554937 +8808467247666241536 -1706867123 -1706867123 +8811693967537774592 1731764471 1731764471 +8815398225009967104 -1701502632 -1701502632 +8817665768680906752 1550375386 1550375386 +8822384228057604096 -1371840597 -1371840597 +8825059717746376704 872554087 872554087 +8829545979081744384 NULL NULL +883 -1554130090 -1554130090 +8836228556823977984 1499399891 1499399891 +8837420822750314496 2052773366 2052773366 +8849475396952514560 718692886 718692886 +8850055384477401088 1503176016 1503176016 +8853989376829833216 -1505397109 -1505397109 +8854495099223375872 2065408093 2065408093 +8854677881758162944 1883400319 1883400319 +8854715632851345408 1301997393 1301997393 +8856674723376668672 -4943292 -4943292 +8868529429494071296 1830870769 1830870769 +8871707618793996288 -677778959 -677778959 +8875745082589929472 -1460613213 -1460613213 +888 1012696613 1012696613 +8895174927321243648 -522450861 -522450861 +8896237972875370496 1540680149 1540680149 +8897901899039473664 -535056977 -535056977 +8899122608190930944 -2146432765 -2146432765 +8900180888218329088 -1058356124 -1058356124 +8900351886974279680 1000106109 1000106109 +8900545829211299840 352214248 352214248 +8905330479248064512 NULL NULL +8910706980937261056 1166237779 1166237779 +8920344895701393408 -1126628450 -1126628450 +8920533610804609024 1739911574 1739911574 +8927691194719174656 -917062754 -917062754 +8928133990107881472 -1511162508 -1511162508 +8935252708196999168 1603612975 1603612975 +8936639033158410240 -1305139473 -1305139473 +8939431770838810624 -934008333 -934008333 +8945004737083555840 252169185 252169185 +8945302550165004288 1117805438 1117805438 +8962097525980225536 -329695030 -329695030 +8972161729142095872 1709983738 1709983738 +8979012655944220672 -120692484 -120692484 +898 -234278308 338805871 +8983857919580209152 1273798925 1273798925 +8983912573761167360 NULL NULL +8984935029383389184 -1565671389 -1565671389 +8987827141270880256 -1024500955 -1024500955 +8991071342495531008 -574475259 -574475259 +8991442360387584000 2081243058 2081243058 +8994608999945125888 -839512271 -839512271 +8995562121346260992 -618505946 -618505946 +8996824426131390464 -214166042 -214166042 +9000633029632499712 -641062448 -641062448 +9001907486943993856 -1974257754 -1974257754 +9005866015985713152 652118640 652118640 +9016280522993975296 388707554 388707554 +9020143715350814720 NULL NULL +9023663198045544448 1145627305 1145627305 +9030480306789818368 -758973175 -758973175 +9038087402564657152 NULL NULL +9040958359122640896 -1635301453 -1635301453 +9043089884440068096 -1527024213 -1527024213 +9048002942653710336 -1079231269 -1079231269 +9048297564833079296 -1534307678 -1534307678 +9050032047355125760 -1240048334 -1240048334 +9053187076403060736 1075444504 1075444504 +9054887854393950208 -1517536924 -1517536924 +9062227900376203264 1260101584 1260101584 +9064847977742032896 -1849091666 -1849091666 +9067985867711291392 43672187 43672187 +9073672806863790080 -2144241640 -2144241640 +9075404705968840704 712816880 712816880 +9078604269481148416 -298221893 -298221893 +908 266601601 266601601 +9083076230151864320 2111462911 2111462911 +9083704659251798016 -1359838019 -1359838019 +9084402694981533696 NULL NULL +9085381906890203136 -240529113 -240529113 +9085434340468473856 76381404 76381404 +9086905513121890304 1796013407 1796013407 +9089435102788009984 2102440065 2102440065 +9091082386452684800 748185058 748185058 +9091085792947666944 254921167 254921167 +9094945190752903168 2126491387 2126491387 +9096395849845194752 100270148 100270148 +91 -1288198020 -1288198020 +9104574294205636608 1257621270 1257621270 +9107991000536498176 -847235873 -847235873 +9112400579327483904 1111985530 1111985530 +9114850402293882880 1571267481 1571267481 +9116137265342169088 -236700442 -236700442 +9117063974299148288 -297664578 -297664578 +9119046173224370176 1604076720 1604076720 +9123116008004288512 1882932986 1882932986 +913 1845797092 1845797092 +9131533983989358592 -1234163924 -1234163924 +9132009829414584320 -1856034030 -1856034030 +9136234417125007360 NULL NULL +9136548192574529536 1121512594 1121512594 +9139805788041134080 881396599 881396599 +914 -1257859205 -1257859205 +9148071980848742400 1370723240 1370723240 +9149216169284091904 -694520014 -694520014 +9165199002069458944 430686478 430686478 +9169248521377374208 1566958573 1566958573 +917 -2076460151 -2076460151 +9174894805640142848 1336842978 1336842978 +918 1359437295 1359437295 +9180098147855769600 1950882901 1950882901 +9182828596851990528 -1012329052 -1012329052 +9185458640237641728 -1011125931 -1011125931 +9185952983951343616 889733679 889733679 +9188173682239275008 -1248781172 -1248781172 +919 -357680544 -357680544 +9190466190353661952 1918230406 1918230406 +9191943992860327936 -595769210 -595769210 +9194388393453060096 1002519329 1002519329 +9199741683232399360 -1096771844 -1096771844 +9207107990561972224 -765190882 -765190882 +9207927479837319168 2066707767 2066707767 +9209153648361848832 471464395 471464395 +921 1238986437 1238986437 +9211455920344088576 166320811 166320811 +922 932774185 932774185 +923 -1506324615 -1506324615 +927 1044196568 1044196568 +928 413090363 413090363 +939 -982238309 -982238309 +94 NULL NULL +945 219415594 219415594 +947 -896274896 -896274896 +950 -2065080832 -1541281934 +958 NULL NULL +961 1805139501 1805139501 +965 1336951982 1336951982 +967 -1240208945 -1240208945 +976 -1563676282 -1563676282 +979 1022214896 1022214896 +982 -835198551 -835198551 +987 1807877618 1807877618 +997 -742707249 -742707249 +999 -346607939 -346607939 +NULL -2069439395 2142592987 +PREHOOK: query: explain vectorization detail +select b, min(i), max(i), sum(si) from vectortab2korc group by b +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b, min(i), max(i), sum(si) from vectortab2korc group by b +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: true + enabledConditionsMet: [hive.vectorized.execution.enabled IS true] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez +#### A masked pattern was here #### + Edges: + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + TableScan Vectorization: + native: true + projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + Select Operator + expressions: si (type: smallint), i (type: int), b (type: bigint) + outputColumnNames: si, i, b + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [1, 2, 3] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: min(i), max(i), sum(si) + Group By Vectorization: + className: VectorGroupByHashOneLongKeyOperator + groupByMode: HASH + vectorOutput: true + keyExpressions: col 3 + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + vectorProcessingMode: HASH + projectedOutputColumns: [0, 1, 2] + runtimeHashAggrOutputInfos: {MIN_FUNC:0, PRIMITIVE, LONG, aggrOffset: 3, MAX_FUNC:1, PRIMITIVE, LONG, aggrOffset: 4, SUM_FUNC:2, PRIMITIVE, LONG, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 5 + keys: b (type: bigint) + mode: hash + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint) + sort order: + + Map-reduce partition columns: _col0 (type: bigint) + Reduce Sink Vectorization: + className: VectorReduceSinkLongOperator + keyColumns: [0] + native: true + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + valueColumns: [1, 2, 3] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: int), _col2 (type: int), _col3 (type: bigint) + Execution mode: vectorized, llap + LLAP IO: all inputs + Map Vectorization: + enabled: true + enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true + groupByVectorOutput: true + inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + allNative: true + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 13 + includeColumns: [1, 2, 3] + dataColumns: t:tinyint, si:smallint, i:int, b:bigint, f:float, d:double, dc:decimal(38,18), bo:boolean, s:string, s2:string, ts:timestamp, ts2:timestamp, dt:date + partitionColumnCount: 0 + Reducer 2 + Execution mode: vectorized, llap + Reduce Vectorization: + enabled: true + enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true + reduceColumnNullOrder: a + reduceColumnSortOrder: + + groupByVectorOutput: true + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 4 + dataColumns: KEY._col0:bigint, VALUE._col0:int, VALUE._col1:int, VALUE._col2:bigint + partitionColumnCount: 0 + Reduce Operator Tree: + Group By Operator + aggregations: min(VALUE._col0), max(VALUE._col1), sum(VALUE._col2) + Group By Vectorization: + aggregators: VectorUDAFMinLong(col 1) -> int, VectorUDAFMaxLong(col 2) -> int, VectorUDAFSumLong(col 3) -> bigint + className: VectorGroupByOperator + groupByMode: MERGEPARTIAL + vectorOutput: true + keyExpressions: col 0 + native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false + vectorProcessingMode: MERGE_PARTIAL + projectedOutputColumns: [0, 1, 2] + keys: KEY._col0 (type: bigint) + mode: mergepartial + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + File Sink Vectorization: + className: VectorFileSinkOperator + native: false + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b, min(i), max(i), sum(si) from vectortab2korc group by b +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, min(i), max(i), sum(si) from vectortab2korc group by b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 -603273425 -603273425 -1307 +-6919476845891313664 710856472 710856472 8811 +-6920172215209426944 -764412063 -764412063 -26832 +-6921654334727036928 -1066775085 -1066775085 21673 +-6933565857643814912 581259902 581259902 NULL +-6934304742087655424 955171928 955171928 NULL +-6935038507792801792 174310705 174310705 -1928 +-6935548339131138048 -1062159435 -1062159435 24858 +-6938706403992854528 980732494 980732494 30420 +-6941777546186579968 121663320 121663320 21611 +-6947955278050181120 641695802 641695802 16357 +-6951350560260784128 1342923026 1342923026 12256 +-6957946688477274112 1505168716 1505168716 28272 +-6960947572095770624 1136976809 1136976809 -19343 +-6962271229404348416 1106995930 1106995930 -9734 +-6962292590214234112 -1147471772 -1147471772 20540 +-6968771079156654080 -939348081 -939348081 -25698 +-6968892545529896960 470993066 470993066 -16307 +-6970396058557005824 2140632003 2140632003 2643 +-6974654664348033024 -968377273 -968377273 26540 +-6975459232300236800 1151752586 1151752586 16796 +-6986178228432322560 -1369253050 -1369253050 18845 +-6988811476286873600 -1968097621 -1968097621 -15573 +-6988970700649168896 -1230459100 -1230459100 NULL +-6992217501957169152 1472487454 1472487454 -32755 +-6997233584896229376 -76654979 -76654979 3486 +-7000925438663041024 596045726 596045726 1755 +-7003696402314215424 -1458382451 -1458382451 -15348 +-7011425384222244864 NULL NULL 9017 +-7017212700635545600 304860245 304860245 20680 +-7020852530219171840 824836988 824836988 -25115 +-7030489936116252672 1115197541 1115197541 24847 +-7035132060308643840 NULL NULL 21784 +-7036607470351654912 -1933192293 -1933192293 -31458 +-7037375807670501376 -1168823523 -1168823523 1728 +-7037638331316469760 14573904 14573904 5093 +-7038455462786334720 524317972 524317972 343 +-7040248820505149440 196581473 196581473 -10326 +-7041362811802148864 -455114104 -455114104 9948 +-7042183597114081280 658636280 658636280 22333 +-7046180371529351168 -117723745 -117723745 4397 +-7049618574399692800 -978892011 -978892011 23441 +-7052619594823221248 -1117358187 -1117358187 7821 +-7055619148037554176 -838656526 -838656526 -13008 +-7055760785575665664 759899363 759899363 -24478 +-7057750467944931328 -71449585 -71449585 -10316 +-7058986555327307776 1942004879 1942004879 26796 +-7063777488249085952 -507250351 -507250351 21991 +-7078068944081002496 2013178181 2013178181 -32533 +-7079898537463537664 -1205034356 -1205034356 -31711 +-7081500255163727872 -1969751342 -1969751342 -18283 +-7083646746411720704 780938234 780938234 NULL +-7085247548404178944 1640192895 1640192895 -31828 +-7093825013581979648 -628790799 -628790799 -17607 +-7094189393339678720 1796486238 1796486238 20349 +-7094827141662539776 -632803945 -632803945 -24805 +-7104310188119834624 -1928197479 -1928197479 -10569 +-7106210529681350656 1718167702 1718167702 30585 +-7109790267244814336 -291577538 -291577538 11617 +-7115054815375073280 NULL NULL -29977 +-7120456708338688000 1751468853 1751468853 NULL +-7127548949860818944 260463232 260463232 28089 +-7138415011665043456 -1345391395 -1345391395 -29811 +-7139677575412686848 -1556127172 -1556127172 -15762 +-7140008543769042944 -1938290238 -1938290238 -30974 +-7144791190333546496 -876122064 -876122064 -13426 +-7145585429014888448 -817093900 -817093900 29245 +-7147490721376591872 1759741857 1759741857 -10312 +-7152177800841502720 -37773326 -37773326 -12463 +-7155539549555105792 -345542922 -345542922 -22421 +-7158472098920390656 -71305062 -71305062 -31998 +-7159700138947862528 -76430653 -76430653 26134 +-7161165959057334272 1352649032 1352649032 -22949 +-7162299524557471744 1813010930 1813010930 NULL +-7172594404186693632 -1949359208 -1949359208 2234 +-7185369278665605120 -374337252 -374337252 1864 +-7192529627893858304 -45439614 -45439614 10425 +-7194281951646187520 -797889292 -797889292 5661 +-7195217207163166720 -1977762695 -1977762695 -1767 +-7198372044947275776 -1424770359 -1424770359 -28941 +-7199983995864711168 -1870912732 -1870912732 -16570 +-7201085131997011968 -1356601829 -1356601829 4111 +-7209060152494817280 -2071851852 -2071851852 -23284 +-7213775605408178176 1222935237 1222935237 -32462 +-7220731681653604352 -851663638 -851663638 27796 +-7221474017515347968 -1421860505 -1421860505 23220 +-7228589258642194432 1958701268 1958701268 NULL +-7240213957902663680 -841634659 -841634659 NULL +-7242345057866285056 548375173 548375173 16799 +-7245872320493322240 -134686276 -134686276 4781 +-7246123871306244096 1686537335 1686537335 -25959 +-7255010240787030016 1373871781 1373871781 2612 +-7255686273677328384 2100839074 2100839074 -21005 +-7262049693594943488 1295073553 1295073553 -6142 +-7262384251828518912 1647411522 1647411522 NULL +-7262798781688651776 -423190290 -423190290 32212 +-7263060340185194496 1590744669 1590744669 -30669 +-7265998318110711808 1437057145 1437057145 6144 +-7266719102957125632 960187615 960187615 6036 +-7270034223527993344 -1984079412 -1984079412 2542 +-7273590251991162880 994798486 994798486 4332 +-7273694358642851840 2009890220 2009890220 -25155 +-7276111129363046400 -1462604138 -1462604138 2683 +-7287583262310350848 -1108723753 -1108723753 31099 +-7292078334519894016 -785261879 -785261879 -3757 +-7296096276653391872 160290374 160290374 13632 +-7303847963918393344 -1769423338 -1769423338 13795 +-7319315187617587200 -235238928 -235238928 11077 +-7326863346317598720 958866509 958866509 -5282 +-7328087811698909184 -1017629298 -1017629298 -21795 +-7329767178250018816 -448060992 -448060992 -23462 +-7329807949048193024 -369183838 -369183838 1519 +-7330203470474985472 -1065248998 -1065248998 29015 +-7330413050756235264 -2024003241 -2024003241 14335 +-7333278178640953344 1393506704 1393506704 -15819 +-7333362172439035904 -835002549 -835002549 -11675 +-7340231535789727744 526502851 526502851 -14815 +-7344146703223496704 789871166 789871166 -30907 +-7344947507044466688 -340951385 -340951385 -19912 +-7345562788132315136 1750433588 1750433588 -16647 +-7356685674003021824 1319589591 1319589591 -21389 +-7357888618985873408 NULL NULL 27116 +-7362189611124563968 -496915240 -496915240 11804 +-7366430883634929664 1592153312 1592153312 20746 +-7378096180613840896 218917585 218917585 29639 +-7380731416973295616 -1114208576 -1114208576 -22554 +-7395343938785738752 830944953 830944953 28011 +-7395553021620731904 1056997296 1056997296 NULL +-7399631791131074560 -932921363 -932921363 -11110 +-7404052043914526720 -1349876582 -1349876582 29023 +-7404057145074712576 56316391 56316391 -15109 +-7409317158045442048 -1463884101 -1463884101 2955 +-7409653086454030336 -624029057 -624029057 -6884 +-7412431471807283200 622925063 622925063 27982 +-7413317118463164416 -507015439 -507015439 -9566 +-7419068456205385728 -4393552 -4393552 -5635 +-7420448501073051648 -1155174991 -1155174991 10600 +-7425160895830573056 -765102534 -765102534 22678 +-7429331808102899712 -1057522129 -1057522129 9264 +-7433265617153343488 NULL NULL -20946 +-7442593976514420736 1851805558 1851805558 -29228 +-7444070205513138176 -520725912 -520725912 26108 +-7451660755269853184 1338047392 1338047392 10217 +-7453525026342617088 1505665168 1505665168 4568 +-7455898404374921216 1544482684 1544482684 18558 +-7456869587112255488 -224865887 -224865887 -14783 +-7461750143936897024 -1343425152 -1343425152 -695 +-7464270453557993472 -1439293109 -1439293109 -12647 +-7469660864676585472 85774760 85774760 25847 +-7470307155642245120 1137950964 1137950964 17489 +-7476082621253402624 1083855659 1083855659 23928 +-7483435388852559872 -914329027 -914329027 28041 +-7488345684795342848 -1668736016 -1668736016 -458 +-7488415863027367936 1286367391 1286367391 28128 +-7494411162675691520 1595326878 1595326878 -21358 +-7496839341561954304 868714547 868714547 21849 +-7497303453253402624 1415647436 1415647436 -26565 +-7500200359698907136 -423074450 -423074450 -5216 +-7501803640821456896 1809795770 1809795770 -27807 +-7506254246954500096 -511198293 -511198293 23766 +-7507424948896415744 -828522499 -828522499 -14093 +-7507578199583694848 -1784633305 -1784633305 32133 +-7510418793070075904 975932228 975932228 27983 +-7511202710200885248 -2042647152 -2042647152 -22960 +-7511952204985049088 -1351437382 -1351437382 -25664 +-7512289590991544320 1409872356 1409872356 19350 +-7512297136103800832 -1180153422 -1180153422 18439 +-7515996202498473984 344989592 344989592 26296 +-7524170566881329152 -1908696083 -1908696083 -27358 +-7526793959592140800 -570632618 -570632618 28309 +-7528526815026692096 2125479431 2125479431 -3896 +-7532751268425261056 1752520642 1752520642 -26433 +-7535857766791577600 1846184880 1846184880 11168 +-7535958203887706112 656636097 656636097 -15862 +-7536330682873937920 -1289501869 -1289501869 -134 +-7540104552219860992 1081187102 1081187102 -14675 +-7541860097718902784 -625788713 -625788713 -11571 +-7542857121910046720 1495575878 1495575878 20872 +-7547245548870025216 1784291853 1784291853 -716 +-7547432761381339136 434679307 434679307 2338 +-7551394356730339328 1179528290 1179528290 -6460 +-7557017910095650816 195281533 195281533 -14661 +-7558524160894427136 375106978 375106978 18372 +-7571293705217687552 1240875512 1240875512 -10935 +-7571957778022178816 1042184256 1042184256 13595 +-7572262898020278272 -1875699183 -1875699183 23683 +-7572962089372991488 -841268868 -841268868 30730 +-7576194692683563008 2080249726 2080249726 28393 +-7593363318079610880 -1811563127 -1811563127 -23387 +-7594824008626372608 824743780 824743780 -24942 +-7598782894648565760 -983874694 -983874694 12762 +-7600138468036386816 -722294882 -722294882 17436 +-7603467428164009984 -619311578 -619311578 NULL +-7603569103205916672 390124976 390124976 -18358 +-7610137349734883328 683320224 683320224 7356 +-7611584069753552896 -1765795567 -1765795567 -29864 +-7612455481940246528 NULL NULL 1558 +-7612466483992051712 -1969235238 -1969235238 39 +-7616522969329262592 1924741890 1924741890 -2254 +-7617860842651017216 386741352 386741352 718 +-7623047151287754752 -1050029724 -1050029724 -23325 +-7623359796281999360 1829544791 1829544791 -27259 +-7623405558242500608 283322761 283322761 5235 +-7624057992767782912 -1218581850 -1218581850 31986 +-7629401308029976576 -1655030261 -1655030261 -12575 +-7637494527844343808 2005560498 2005560498 -27372 +-7637755520917741568 648935848 648935848 -10662 +-7642381493746483200 583458404 583458404 NULL +-7647020450676146176 609917172 609917172 17286 +-7661192563533062144 -1319753324 -1319753324 NULL +-7661250850555633664 -693249555 -693249555 -25689 +-7663293054873812992 -1478812842 -1478812842 -6518 +-7665186441284968448 791096295 791096295 -20218 +-7668388017287020544 NULL NULL 24244 +-7669169138124275712 -1484033125 -1484033125 -19535 +-7673901622181953536 1141303816 1141303816 13154 +-7679894005808693248 -306214368 -306214368 9943 +-7686220526274502656 -892839693 -892839693 -20182 +-7687052294777208832 -1989778424 -1989778424 28360 +-7692192232238678016 745725681 745725681 -25683 +-7695491171376291840 1225312439 1225312439 -15748 +-7700203302632210432 1805308672 1805308672 17531 +-7703540456272994304 1312270193 1312270193 2458 +-7707242953271500800 1568180994 1568180994 -13335 +-7707867749256445952 -596963345 -596963345 16734 +-7708932208121225216 307333276 307333276 -17840 +-7709958788604936192 595836061 595836061 5191 +-7712425776235274240 -1432316859 -1432316859 -26932 +-7720966287634112512 NULL NULL -18659 +-7739424919198187520 712625264 712625264 -12103 +-7744462446680375296 2029657999 2029657999 17958 +-7751265769984491520 700341242 700341242 -28914 +-7751427073017544704 615619268 615619268 31581 +-7753051494275432448 -1599905147 -1599905147 28921 +-7759238919361888256 -2065287410 -2065287410 30119 +-7759425383684849664 -938762477 -938762477 NULL +-7772064021830574080 -1201785350 -1201785350 NULL +-7773957003968675840 270090617 270090617 -9943 +-7777884099756122112 914583645 914583645 16217 +-7778829032042790912 -807242371 -807242371 -26064 +-7779270198785875968 -1242677422 -1242677422 -15129 +-7782344916178796544 -1213081886 -1213081886 -17356 +-7784419454650843136 -1210907929 -1210907929 -3179 +-7792903881635938304 -191899537 -191899537 27523 +-7793447076762345472 1196151988 1196151988 17942 +-7797149520019062784 -1262842192 -1262842192 -26439 +-7797151404935618560 -507955215 -507955215 -14928 +-7800879252150779904 1352739140 1352739140 -8578 +-7802538500225777664 215759857 215759857 31334 +-7804116532814151680 -1146649990 -1146649990 11159 +-7805985795815342080 -2076886223 -2076886223 -11679 +-7811060170911375360 1513689502 1513689502 -26128 +-7818454479651135488 -559270035 -559270035 -4491 +-7819437864839495680 -370093295 -370093295 -23389 +-7822452149325094912 60847311 60847311 24253 +-7824788571789279232 -1406691044 -1406691044 -14667 +-7827420207675105280 -36682325 -36682325 6197 +-7831320202242228224 -1726479726 -1726479726 -6637 +-7831595638727565312 1626884085 1626884085 -7738 +-7833618000492109824 589546540 589546540 -27715 +-7835907977757245440 -87470856 -87470856 -11165 +-7838598833900584960 1028204648 1028204648 -20789 +-7840338174858199040 -300717684 -300717684 3245 +-7845896959112658944 -1688105985 -1688105985 -3061 +-7848043121524228096 1667594394 1667594394 30222 +-7849504559236210688 -2052386812 -2052386812 -23248 +-7858505678035951616 NULL NULL -32240 +-7866079955473989632 196980893 196980893 NULL +-7867219225874571264 -1078579367 -1078579367 -11123 +-7868306678534193152 -2144138362 -2144138362 18395 +-7873753603299540992 -971698865 -971698865 NULL +-7875953567586451456 816439627 816439627 -29601 +-7877598807023386624 340384179 340384179 -22938 +-7878145001776152576 -1489628668 -1489628668 26744 +-7879864376629567488 -472303419 -472303419 24677 +-7881262505761710080 -103219371 -103219371 -1034 +-7881351200983613440 720703232 720703232 -20180 +-7883252982752665600 1136548971 1136548971 -12782 +-7884460946615984128 1772349172 1772349172 -14936 +-7888051992910274560 1818213677 1818213677 12045 +-7892780594910871552 -779743333 -779743333 -12571 +-7893577088764174336 268888160 268888160 NULL +-7894382303337832448 1832650234 1832650234 -24368 +-7895991410072928256 1467284000 1467284000 17394 +-7902517224300036096 -950738312 -950738312 41 +-7903158849011843072 -217930632 -217930632 7128 +-7904188195431661568 -442839889 -442839889 27697 +-7907355742053883904 794783516 794783516 28247 +-7910019233726242816 -1259611508 -1259611508 1409 +-7911421221625077760 476704350 476704350 7401 +-7915999634274369536 1814570016 1814570016 -7178 +-7916510129632296960 -2136052026 -2136052026 23468 +-7928062266382778368 152654715 152654715 1436 +-7928440849566146560 -800975421 -800975421 -31352 +-7939634346485858304 1012843193 1012843193 4363 +-7949309059286163456 88774647 88774647 11814 +-7949445503604604928 1695098246 1695098246 -17082 +-7953426740065312768 22308780 22308780 1847 +-7964801953178091520 661659208 661659208 -18867 +-7966960765508280320 -884109192 -884109192 -19517 +-7978782649203228672 491016124 491016124 16250 +-7989766326847807488 -1731820254 -1731820254 8675 +-7998947380180819968 -136514115 -136514115 -9759 +-8007017894942638080 1219616145 1219616145 -31582 +-8013397854633648128 -1391183008 -1391183008 -18295 +-8016589197379289088 -1721763321 -1721763321 4715 +-8017791189288869888 -2057666812 -2057666812 4447 +-8018511948141748224 661380540 661380540 3523 +-8021859935185928192 1420099773 1420099773 32019 +-8022573309127000064 1194243726 1194243726 28828 +-8023708819947323392 198539698 198539698 24178 +-8028275725610909696 -1937640350 -1937640350 -28682 +-8028910243475038208 873035819 873035819 22557 +-8030058711611629568 -752222556 -752222556 6734 +-8034414142083170304 -267130580 -267130580 18984 +-8046189486447017984 925032386 925032386 22603 +-8046238369820344320 819069589 819069589 -16027 +-8047774491688255488 -1339495001 -1339495001 -25301 +-8051395538179063808 -469749219 -469749219 20969 +-8051587217208967168 51376784 51376784 -9398 +-8051871680800120832 NULL NULL -14229 +-8054581198284668928 1395450272 1395450272 5601 +-8067243114610532352 214068706 214068706 -9365 +-8070535484085895168 829101712 829101712 -7865 +-8076479329071955968 2017314998 2017314998 -12605 +-8082793390939193344 -1878838836 -1878838836 6761 +-8084716955963252736 -1609864597 -1609864597 21103 +-8086577583338061824 -340462064 -340462064 20120 +-8088337436168830976 2124297747 2124297747 30839 +-8099313480512716800 -392713245 -392713245 -3091 +-8103788088118018048 -533227056 -533227056 25835 +-8104684579106914304 -1091003492 -1091003492 -17269 +-8108693586698706944 -896261100 -896261100 -13603 +-8115963579415650304 -951728053 -951728053 32092 +-8117838333114212352 -1642207005 -1642207005 -19786 +-8122639684164501504 1425456189 1425456189 -23630 +-8127494999848919040 1701817607 1701817607 -24670 +-8131997716860526592 -457341338 -457341338 -32364 +-8136227554401107968 127917714 127917714 12187 +-8140349174954893312 NULL NULL 19894 +-8142667274351345664 453613037 453613037 32581 +-8147405381260345344 659397992 659397992 25381 +-8158011642485825536 NULL NULL -25344 +-8161047750470279168 -621365995 -621365995 -32180 +-8172827216441573376 -113253627 -113253627 -29675 +-8182421179156905984 -1892816721 -1892816721 6980 +-8191825921746305024 703111607 703111607 16082 +-8194062064124362752 1482983157 1482983157 13845 +-8203008052020879360 -1127100849 -1127100849 -29685 +-8203075743525806080 -626484313 -626484313 15815 +-8205148279289085952 768198315 768198315 27693 +-8214462866994339840 NULL NULL -5097 +-8219876839318716416 1452244326 1452244326 30883 +-8232763638546694144 -514010922 -514010922 24455 +-8240034910581153792 -665623523 -665623523 5599 +-8240684139569233920 -1721368386 -1721368386 -31663 +-8243487285852766208 1153811197 1153811197 10891 +-8244116388227104768 1893512909 1893512909 31411 +-8244657976255889408 688547276 688547276 -28939 +-8260340354454503424 1456367662 1456367662 -13539 +-8269917980278980608 -1700451326 -1700451326 -17297 +-8270479187688816640 1519993904 1519993904 -22726 +-8275337702906757120 210003006 210003006 -19677 +-8280276629934981120 -588160623 -588160623 5266 +-8293833565967810560 -1464514590 -1464514590 30075 +-8297230235506343936 283618733 283618733 -18601 +-8300526097982226432 1314531900 1314531900 27101 +-8300764106868350976 -1196101029 -1196101029 NULL +-8302817097848307712 -1021859098 -1021859098 32553 +-8317591428117274624 -670925379 -670925379 -28730 +-8318886086186213376 1033609549 1033609549 -10095 +-8322751250650218496 -1212524805 -1212524805 13792 +-8330233444291084288 -409404534 -409404534 -776 +-8335810316927213568 -1562552002 -1562552002 -6045 +-8340523561480437760 39723411 39723411 -18214 +-8345065519816695808 654939016 654939016 -18796 +-8347088645602050048 76299337 76299337 -20559 +-8357136656913686528 1517915751 1517915751 11999 +-8358130693961195520 -122391516 -122391516 28008 +-8359839265974165504 1572563948 1572563948 -2559 +-8368269352975982592 NULL NULL -30890 +-8368487814665895936 156101201 156101201 17165 +-8369487968903897088 -194270271 -194270271 4701 +-8379109122834997248 1566607834 1566607834 -11740 +-8379964450833367040 -181122344 -181122344 20766 +-8384695077413412864 -1818456584 -1818456584 22213 +-8387347109404286976 -2011708220 -2011708220 -6487 +-8387536830476820480 -1703620970 -1703620970 9969 +-8395998375405912064 -1141801925 -1141801925 -15944 +-8400045653258444800 1523657918 1523657918 -5869 +-8411282676082565120 253621570 253621570 2677 +-8418913260807217152 -41864614 -41864614 -10126 +-8425998949410889728 -656478771 -656478771 -16793 +-8426531414463545344 1701761102 1701761102 -10872 +-8430283518005846016 -16094879 -16094879 -21156 +-8430370933326536704 NULL NULL 23229 +-8431492599012163584 -1131684944 -1131684944 31427 +-8438554249514491904 232405034 232405034 28775 +-8445801063348281344 -1247325089 -1247325089 7899 +-8453491903284994048 1524010024 1524010024 -14223 +-8454143651040444416 516479816 516479816 -31454 +-8465978403747037184 1347876055 1347876055 16430 +-8469607298426437632 374283948 374283948 26031 +-8471480409335513088 1891680787 1891680787 -9724 +-8485389240529354752 -1528033060 -1528033060 3213 +-8488247955875618816 1802498539 1802498539 -20343 +-8490382417169408000 987917448 987917448 -24208 +-8494118409594650624 631207613 631207613 25518 +-8503342882470019072 1367179645 1367179645 32017 +-8503573595507761152 2068018858 2068018858 NULL +-8507279516485566464 631711489 631711489 28064 +-8509547439040757760 -1749415887 -1749415887 -18581 +-8518060755719585792 -1100641049 -1100641049 17964 +-8518258741831680000 -809805200 -809805200 29502 +-8521578237232529408 -373034494 -373034494 -3602 +-8522878384019169280 633813435 633813435 6899 +-8523434203900674048 -590374062 -590374062 6306 +-8525212657458348032 -1280919769 -1280919769 -20100 +-8535957064499879936 -99205196 -99205196 -15866 +-8536369662934401024 447426619 447426619 12358 +-8543982423727128576 -607667405 -607667405 10382 +-8544299740525461504 -846450672 -846450672 17534 +-8545239748068941824 -897586947 -897586947 24439 +-8546758906409312256 -1236536142 -1236536142 -9278 +-8552393882631389184 1920863389 1920863389 21984 +-8555709701170552832 -1364322216 -1364322216 -9619 +-8559008501282832384 895945459 895945459 29365 +-8559252110266564608 259204652 259204652 -18090 +-8562524688907485184 1775355987 1775355987 -4364 +-8566856504746352640 2018442973 2018442973 -921 +-8566940231897874432 -1409508377 -1409508377 20307 +-8570933074545745920 -749042352 -749042352 6836 +-8572823448513445888 -101960322 -101960322 -19738 +-8572949572756774912 1787826883 1787826883 NULL +-8581765103969312768 -890374552 -890374552 -28098 +-8581979259158929408 -674478103 -674478103 15379 +-8584520406368493568 -19116270 -19116270 28656 +-8585134536083660800 -1196808950 -1196808950 8786 +-8585966098173870080 318631333 318631333 -16978 +-8593419958317056000 6266567 6266567 7057 +-8603817012434198528 1114521964 1114521964 11059 +-8604758220106014720 -1798573685 -1798573685 4475 +-8607195685207408640 -1111937842 -1111937842 -21648 +-8615168537390571520 1469775272 1469775272 -4539 +-8619303037130301440 -2074079977 -2074079977 10430 +-8623238306523824128 -1442424087 -1442424087 17373 +-8623965248051789824 1637295757 1637295757 15015 +-8632237187473088512 NULL NULL -12876 +-8649711322250362880 -500921094 -500921094 NULL +-8651641150831362048 -1533934649 -1533934649 -12809 +-8654433008222797824 -1728171376 -1728171376 30052 +-8654797319350927360 895763504 895763504 -1367 +-8658387566611996672 NULL NULL 6493 +-8659643752269242368 1204834275 1204834275 31370 +-8659692318743314432 25400543 25400543 -33 +-8660149447361404928 1317690178 1317690178 28301 +-8664374244449050624 1059212450 1059212450 -22919 +-8664806103426252800 964810954 964810954 -28536 +-8665218198816497664 -1031592590 -1031592590 NULL +-8665764757143658496 -45460011 -45460011 23725 +-8675661101615489024 -1918651448 -1918651448 -8857 +-8675892979328212992 1478365409 1478365409 6372 +-8683802826440105984 -1344287228 -1344287228 19636 +-8688153842294595584 -1741895392 -1741895392 -3206 +-8689606130068611072 488559595 488559595 NULL +-8694818694700048384 94220511 94220511 29011 +-8696162322976997376 1228837108 1228837108 -21117 +-8703026916864802816 -397683105 -397683105 -22582 +-8704234107608203264 -1318045616 -1318045616 24014 +-8705403811649355776 206121314 206121314 -29907 +-8710298418608619520 -1817938378 -1817938378 16664 +-8714995808835444736 206454818 206454818 24718 +-8719510423723155456 -327648289 -327648289 -19357 +-8730803262481580032 NULL NULL NULL +-8731068123910987776 -1434562279 -1434562279 12915 +-8746702976270385152 1767359228 1767359228 -24538 +-8754966081778565120 -125419186 -125419186 3251 +-8754992450211692544 1785455842 1785455842 7066 +-8756989568739835904 -158420748 -158420748 -13743 +-8760655406971863040 -1249011023 -1249011023 -9243 +-8763062627136864256 -454598288 -454598288 -9130 +-8768744394742235136 -726879427 -726879427 -26481 +-8782213262837530624 1565313938 1565313938 6743 +-8783777723063099392 877053605 877053605 -15431 +-8789178184387641344 -1045771991 -1045771991 NULL +-8797972842900307968 284646137 284646137 29992 +-8807361476639629312 NULL NULL -16218 +-8813211231120031744 1575300276 1575300276 27630 +-8831091081349758976 -1832606512 -1832606512 -21772 +-8832750849949892608 -66010816 -66010816 5947 +-8833019327569510400 -189393743 -189393743 1691 +-8835408234247168000 -938112972 -938112972 -26526 +-8836899523028312064 397255100 397255100 27046 +-8843859708698583040 2008211296 2008211296 -24194 +-8844949406948671488 315973457 315973457 -4953 +-8845239510002753536 -1358159222 -1358159222 -14537 +-8852770376039219200 311478497 311478497 7959 +-8853553406533894144 -1820436871 -1820436871 240 +-8856151919723003904 -575513309 -575513309 -25176 +-8856821118526734336 618321042 618321042 4233 +-8857335871148171264 1061043704 1061043704 31721 +-8858063395050110976 -1117019030 -1117019030 27340 +-8859107121649893376 -37876543 -37876543 -2118 +-8866442231663067136 -1079633326 -1079633326 26697 +-8870186814744420352 NULL NULL 29461 +-8870673219965001728 -1620148746 -1620148746 30824 +-8875546987176206336 414645489 414645489 16856 +-8877053610728161280 706823078 706823078 -6474 +-8877431933441327104 1650676897 1650676897 -22184 +-8879742387365429248 1912175355 1912175355 -13973 +-8881446757271846912 1224662770 1224662770 18857 +-8887058200926093312 -191704948 -191704948 -17916 +-8892963883085578240 -2087815643 -2087815643 NULL +-8896045754034978816 1392980712 1392980712 -21432 +-8914039133569400832 1332042427 1332042427 18827 +-8916987977485312000 -839176151 -839176151 NULL +-8922409715403112448 -536315467 -536315467 32567 +-8923529803981905920 1148500740 1148500740 -24178 +-8927968289860370432 1033836308 1033836308 20254 +-8930307926221807616 -966979668 -966979668 7258 +-8938849835283677184 1318606691 1318606691 -15299 +-8940944155843461120 -858439361 -858439361 -15526 +-8941201923743703040 NULL NULL 9127 +-8946656952763777024 -759911896 -759911896 NULL +-8948335470186373120 -1078397698 -1078397698 -15946 +-8959796625322680320 1318956413 1318956413 31509 +-8961059046745669632 1783034168 1783034168 150 +-8962547695651323904 1091736925 1091736925 NULL +-8965578088652095488 -1216166764 -1216166764 -22241 +-8989473881707921408 1310360849 1310360849 NULL +-8990843030306717696 -311437801 -311437801 -6283 +-8992599250893979648 1677494300 1677494300 -7850 +-8996954350906294272 -1769037737 -1769037737 28923 +-9002912355472736256 -561932449 -561932449 23417 +-9004892183139811328 -1949698319 -1949698319 3796 +-9008631121684832256 704038411 704038411 -23943 +-9012093603044245504 538766635 538766635 -19464 +-9013952631912325120 -1052493316 -1052493316 -15695 +-9014145341570203648 273256071 273256071 NULL +-9022154842129547264 1130043800 1130043800 3253 +-9032650742739836928 1102561039 1102561039 27028 +-9049720998034137088 1747664003 1747664003 17023 +-9051477157204770816 -1648991909 -1648991909 -15119 +-9058029636530003968 -1197602595 -1197602595 -11010 +-9066993118333706240 -425196209 -425196209 8488 +-9071565764086521856 2058640744 2058640744 -5593 +-9075302542655684608 -295186284 -295186284 -26087 +-9075486079396069376 -1805915233 -1805915233 6451 +-9078662294976061440 -235819331 -235819331 -22426 +-9079801920509001728 -705887590 -705887590 19350 +-9080568167841226752 906074599 906074599 24913 +-9080956291212132352 1330219997 1330219997 -9482 +-9084940280061485056 128430191 128430191 9177 +-9088239683374350336 -18917438 -18917438 -2993 +-9091113592821972992 1861276585 1861276585 -12295 +-9095689235523264512 1687784247 1687784247 10940 +-9101953184875757568 -1918847735 -1918847735 -16390 +-9102482277760983040 742866312 742866312 -10439 +-9105358806324035584 1679381813 1679381813 -21388 +-9105701280936501248 1109664665 1109664665 -15633 +-9109392978217484288 407098216 407098216 -16327 +-9117959922369060864 936133387 936133387 -11393 +-9126793997498957824 770574055 770574055 -10821 +-9136398397785948160 376076075 376076075 -22358 +-9142610685888192512 -387395264 -387395264 12271 +-9145593811310010368 -202409329 -202409329 NULL +-9148197394287779840 -1568536214 -1568536214 13247 +-9149719074367946752 234452496 234452496 14376 +-9157613004431998976 1362740312 1362740312 25683 +-9175038118837149696 -1701492480 -1701492480 -23241 +-9175279464813223936 2080412555 2080412555 2326 +-9178166810751909888 -1407817977 -1407817977 -14810 +-9187662685618348032 NULL NULL -20949 +-9189155542884474880 -1955545912 -1955545912 -1660 +-9203804401302323200 -671853199 -671853199 -5357 +-9203942396257984512 -1625800024 -1625800024 -22431 +-9206329156028112896 2084666529 2084666529 22588 +-9210275791460499456 601376532 601376532 9165 +-9213132862973829120 -1216206795 -1216206795 4948 +-9215144824304721920 -399643110 -399643110 -79 +-9218875542187065344 785382955 785382955 -4371 +-9219066990552760320 2090044777 2090044777 -15708 +1021 -1884780525 -1884780525 -22423 +1030 -300429552 -300429552 -17429 +1032 -1914210382 -1914210382 -8241 +1039 914062370 914062370 10261 +1046 -990781312 -990781312 NULL +1048 -249150336 -249150336 -30109 +1053 -1369302744 -1369302744 13491 +1055 371383749 371383749 -3103 +1058 -1497098905 -1497098905 -4550 +1065 1194089079 1194089079 5542 +1066 1767019352 1767019352 22150 +1074 161210995 161210995 16516 +1075 -534894953 2144365072 2160 +108 -835107230 -835107230 -5919 +1086 -1341627565 -1341627565 24776 +1093 NULL NULL NULL +1094 -359194591 -359194591 -23271 +1095 291866793 291866793 -28097 +1099 1390704286 1390704286 14408 +1115 -144862954 -144862954 NULL +112 -2147071655 -2147071655 8095 +1127 -423378447 -423378447 -1180 +1128 -932525608 -932525608 -2546 +1132 239078089 239078089 -9076 +1134 187718349 187718349 -8781 +1141 -540820650 -540820650 16858 +1142 1184001017 1184001017 -10015 +1145 669484010 669484010 20265 +1153 1646811064 1646811064 27758 +1157 590719541 590719541 67 +1158 990246086 990246086 -10972 +1165 477857533 1153089364 -41118 +1168 NULL NULL 21511 +1177 1182595271 1182595271 530 +1187 69110370 69110370 -25183 +1189 215508794 215508794 27636 +1198 -1857500489 -1857500489 -20329 +120 29680001 29680001 -28489 +1201 945911081 945911081 1773 +1217 -1802746460 -1802746460 6675 +1234 -1921909135 -1921909135 9447 +1243 1938788165 1938788165 -28374 +1247 -866304147 -866304147 -13238 +1252 30036142 30036142 19215 +1261 -343173797 -343173797 -13466 +1270 1969239701 1969239701 14180 +1280 991397535 991397535 -31765 +1282 -1140071443 -1140071443 -18151 +1286 -480058682 -480058682 -10781 +1287 -1362178985 -1362178985 4491 +1290 177837042 177837042 -7204 +1291 1398486099 1398486099 9110 +1299 765656980 765656980 -24682 +130 -2081501748 -2081501748 20183 +1307 882331889 882331889 -11015 +1312 742059797 742059797 101 +1316 997193329 997193329 -5897 +1321 731241198 731241198 -14652 +1337 -1948257321 -1948257321 23320 +1341 492120544 492120544 7197 +1342 1203482872 1203482872 18142 +1343 -217785690 -217785690 17164 +1345 -600315936 -600315936 -20262 +1346 -158233823 -158233823 -24801 +135 198017473 198017473 -6114 +1366 748358417 748358417 6080 +1368 -223311809 1650573576 41135 +1371 -2041825946 821316302 42813 +138 843282593 843282593 -7046 +1386 2081152819 2081152819 4939 +1398 955267058 955267058 -14445 +1409 865013617 865013617 -15389 +1422 -1402821064 -1402821064 NULL +1423 631954352 631954352 -13424 +1436 1765173148 1765173148 25118 +1439 531459992 531459992 14783 +1447 NULL NULL -950 +1450 740883263 740883263 -29171 +1454 NULL NULL 21904 +1458 -1001529082 -1001529082 7197 +1462 287239980 287239980 14286 +1466 574069547 574069547 -5267 +1470 1406029775 1406029775 -27871 +1477 -707228984 -707228984 17769 +1481 819875108 1022707418 -39852 +1489 766737781 766737781 -17697 +1493 557053197 557053197 -4501 +1495 -1222897252 -1222897252 21299 +1501 1081920048 1081920048 -21648 +1506 1893632113 1893632113 -27998 +1508 1632769786 1632769786 22366 +1509 1304812803 1920662116 -3309 +1518 824235855 824235855 -3360 +1520 NULL NULL 20391 +1521 -993029335 -993029335 -1443 +1524 -1851280202 -1851280202 6741 +1530 1934970004 1934970004 22013 +1537 -20660936 278601840 -6363 +154 -445353909 998793176 1960 +1541 -1430903652 -1430903652 -23853 +1542 NULL NULL 32324 +1545 564366133 564366133 -800 +1556 -1202975006 -1202975006 2295 +1559 -206177972 -206177972 20018 +1561 NULL NULL 30736 +1566 747122546 747122546 -23750 +1604 -2077771325 -2077771325 2677 +1606 -1901806083 -1901806083 -5259 +1608 142722637 142722637 -3257 +1613 -1422780798 -1422780798 23844 +1614 -296195507 -296195507 -19571 +1620 -1989378509 -1989378509 31374 +1638 92777932 92777932 -2287 +1641 NULL NULL 32640 +1643 1346627771 1346627771 -23109 +1648 -496870819 -496870819 -24591 +1651 -1575588203 -1575588203 -31335 +1667 -499533481 -499533481 9716 +1671 1504919241 1504919241 19276 +1674 1488440165 1488440165 -4142 +1676 -393723522 -393723522 -25033 +1678 -1104268719 -1104268719 -22163 +168 -53587991 -53587991 25931 +1681 929751599 929751599 13488 +169 -1759354458 -1759354458 16236 +1693 -1545572711 -1545572711 -2441 +1701 -648766606 1404346934 -7822 +1704 -605370177 -605370177 32309 +1719 -1477897348 1008698636 -13475 +1726 NULL NULL -4509 +1728 626251612 626251612 16105 +1745 368170021 368170021 32420 +1751 -667383951 -667383951 29288 +1752 -1538978853 -1538978853 -9094 +1769 805672638 805672638 30201 +1774 -1974777102 -1974777102 14773 +1775 1928365430 1928365430 -6564 +1777 1061638369 1061638369 3846 +1780 -71433796 -71433796 -9585 +1781 NULL NULL 22378 +1785 -524189419 -524189419 4319 +1786 -1009249550 -1009249550 -10258 +1788 -997463353 -997463353 NULL +1789 -1098379914 -1098379914 -4618 +1791 -1900369503 -1900369503 -25973 +1796 -1625062942 -1625062942 4397 +1806 -40284975 -40284975 NULL +181 1742536084 1742536084 31651 +1811 -922200749 -922200749 10278 +1813 -738157651 -738157651 -13410 +1826 505902480 505902480 -13623 +1827 -956668825 -956668825 12836 +1835 1768399622 1768399622 NULL +1837 290921475 290921475 26749 +1845 -909024258 -909024258 -2113 +1846 418182899 418182899 19513 +1856 -1873004551 44009986 -44928 +1862 674547678 674547678 -22215 +1863 -1017027298 -1017027298 -3318 +1864 NULL NULL NULL +1866 -400501472 -400501472 -8706 +187 2133950868 2133950868 10161 +1870 25644069 25644069 11572 +188 316438994 316438994 11451 +1880 1293876597 1293876597 -32383 +1890 -1660344634 -1660344634 19568 +1892 596595603 596595603 26298 +1899 734267314 734267314 30457 +19 -1900894010 -436386350 8094 +1906 1070989126 1070989126 -13 +1910 1978200605 1978200605 -28244 +1914 -1462331586 -1146055387 -21833 +1926 -490337498 -490337498 -16722 +1937 -987995271 -987995271 12954 +1940 950997304 950997304 -31365 +1941 -54793232 -54793232 -31182 +1948 -1446132523 735732067 -13403 +1955 -316678117 -316678117 7537 +1965 1173098061 1173098061 -13309 +1972 -1404921781 -1404921781 3694 +1981 -980869630 -980869630 6875 +1983 -1954890941 -1954890941 -12085 +1987 65956045 65956045 -6219 +1990 1050809633 1050809633 30090 +1995 1012230484 1012230484 -27401 +1999 -9958400 -9958400 8721 +2001 217476429 217476429 31795 +2002 1535954353 1535954353 -13847 +2004 1464703053 1464703053 -6073 +2009 -1471147786 -1471147786 -28519 +2011 33234633 33234633 -23671 +2013 1142098316 1142098316 17581 +2016 135341845 135341845 13078 +2017 44628821 44628821 -12111 +2020 -244778184 37730738 -7949 +2025 989475408 989475408 -16477 +2026 -1454941039 -1454941039 -9883 +2029 546555204 546555204 NULL +203 2070969353 2070969353 24819 +204 2018249426 2018249426 11317 +2046 363981930 363981930 4809 +2056 1941527322 1941527322 21162 +2067 NULL NULL 28003 +2072 -1652600376 -1652600376 13138 +2073 -856843296 -856843296 29023 +2085 -1179668872 -1179668872 6893 +2089 945683736 945683736 20014 +2092 1678261510 1678261510 -23540 +2105 1550112473 1550112473 28641 +2106 1597303154 1597303154 -22641 +2108 977292235 977292235 -10687 +213 -1081328752 -361944328 9690 +2131 -464804906 -464804906 -29895 +2138 -1048181367 -1048181367 15070 +2140 -1319686435 -1319686435 25603 +2144 117620760 117620760 12779 +2155 1126157283 1126157283 12291 +2177 -1960344717 -1960344717 NULL +2179 1394370866 1394370866 6651 +2180 -120704505 -120704505 -19413 +2183 -1947868215 -1947868215 -9196 +2186 -1655396452 -1655396452 -24095 +2187 -906986958 -906986958 26625 +2189 NULL NULL 26880 +2193 -2037628236 -598552521 7939 +2194 -853967587 -853967587 29892 +22 176792505 176792505 -22937 +2201 1425362689 1425362689 -26060 +2205 2013376408 2013376408 8929 +2214 1602631923 1602631923 20784 +2217 479566810 479566810 -25469 +2218 NULL NULL 16312 +2223 1605596441 1605596441 -6806 +2227 1054864168 1054864168 -26304 +2229 516843026 516843026 -32455 +2232 277582670 277582670 28606 +2241 810157660 810157660 -28501 +2244 -1699049982 -1699049982 19739 +2255 -1561738723 -1561738723 5014 +2262 1283898734 1283898734 25967 +2264 -425103007 -425103007 5639 +2270 -1429346144 -1429346144 4203 +2274 -1676261015 -1676261015 7474 +2277 -1447263708 -1447263708 26232 +2279 -1412187081 -1412187081 -22534 +228 167432368 167432368 -18533 +2283 530274409 530274409 11929 +2285 340929437 1533817551 -28395 +2295 -1914072976 -1914072976 NULL +2306 -604362582 -604362582 6900 +2320 -1919939921 -1919939921 32231 +2323 -2028355450 -2028355450 -4772 +2325 1471913583 1645067708 -8255 +2335 1281277970 1281277970 999 +2341 1951869763 1951869763 30376 +2348 -40407627 -40407627 -12880 +2358 -370798230 -370798230 -7058 +236 514833409 514833409 -11129 +2373 -1602792666 -1602792666 6163 +238 713031549 713031549 32348 +2386 930008274 930008274 12722 +2393 901084309 1852725744 28413 +2398 1489169773 1489169773 -26361 +2400 663222148 663222148 -11848 +2410 NULL NULL -23638 +2412 -1749841790 -887663189 31057 +2420 480849725 480849725 31706 +2426 62293025 62293025 -21574 +2434 1621606222 1621606222 9028 +244 860708524 860708524 12471 +2461 -1668974292 -1668974292 -13525 +2463 -655118881 2031604236 5128 +2465 -1819075185 -1819075185 6490 +2469 524808 524808 -14423 +2475 -1116100266 -1116100266 1100 +2476 -1210261177 -1210261177 -32755 +2485 -379643543 1594107168 -4037 +2487 NULL NULL -7873 +2492 -270683864 -270683864 21415 +2494 -1830870295 -1830870295 27852 +2502 -336625622 -336625622 1077 +2506 776606164 776606164 9158 +2509 693331761 693331761 -31537 +2512 -1164833898 -1164833898 17680 +2514 407233168 407233168 -26054 +2515 -601946913 -601946913 23850 +2517 198624903 198624903 -28784 +2524 -1081766449 -1081766449 10646 +2533 672266669 672266669 -17056 +2539 1090344463 1090344463 6892 +2540 1103878879 1103878879 8407 +255 -1106469823 -1106469823 -25939 +2551 -1762037754 -1762037754 -3286 +2553 1112783661 1112783661 -19479 +2560 -1946023520 -1493282775 23076 +2563 -1141652793 -1141652793 -1613 +2565 -1302592941 -1302592941 -9378 +2569 -837503491 -837503491 -17873 +2579 1640445482 1640445482 8410 +2580 1933545427 1933545427 -31881 +2587 -1125605439 -1125605439 -9148 +259 -922875124 -922875124 -30515 +2599 -1903090602 -1903090602 5539 +2607 NULL NULL NULL +2608 335359004 335359004 15417 +2619 -2019287179 1895751360 17341 +2625 -1897998366 -1897998366 24366 +2626 1620529246 1620529246 -15779 +263 1094778643 1807358029 -11048 +2637 1522208504 1522208504 -26180 +2647 92834720 92834720 -1223 +2649 659343542 659343542 21102 +2662 209430502 209430502 -1749 +2663 43983130 43983130 -16820 +2675 1305668933 1305668933 17014 +268 -203416622 860658464 -10972 +2680 825977391 825977391 -9845 +2682 -675125724 -675125724 -28867 +2688 -1249134513 -1249134513 -19493 +2689 -1343327 -1343327 6015 +2692 NULL NULL -31596 +2700 -123529324 -123529324 25454 +2712 -901778330 -901778330 -28146 +2714 1284956108 1284956108 -15341 +2715 962712814 1569269522 -51675 +2719 1516149502 1516149502 9863 +2724 922373046 922373046 -18269 +2725 257821327 257821327 11067 +2735 1307148254 1307148254 29834 +2745 1134416796 1134416796 -2410 +275 1517488324 1517488324 23031 +2752 962091264 962091264 -21268 +2762 314232856 314232856 -24696 +2772 1835749815 1835749815 -16290 +2776 -1801684055 -1801684055 -6046 +2786 -2117280385 343362793 25889 +279 -1709246310 -1709246310 29507 +2790 686081268 686081268 21792 +2791 -714594143 -714594143 -25692 +2803 493977568 923980398 2772 +2805 -295751373 -295751373 14041 +281 -42151403 -42151403 -5635 +2810 1844415080 1844415080 NULL +2811 -170643477 -170643477 22075 +2816 -912429611 -912429611 6226 +2821 829055499 829055499 1911 +2824 -1679120527 -1679120527 30926 +2835 144428297 144428297 -32688 +2842 889772203 889772203 5469 +2843 -1621721177 -887790938 6109 +2846 -121162464 -121162464 -27667 +2847 1634441052 1634441052 NULL +2848 -985817478 -985817478 20270 +2850 1618123796 1618123796 32669 +2855 -1770250407 1756592797 -57008 +2862 1956887369 1956887369 -12071 +2878 -906545548 -906545548 -3885 +2886 84231802 84231802 -32296 +289 -1144976744 -1144976744 -2828 +2897 -47662800 1211873318 13666 +2900 2114363167 2114363167 -26461 +2903 1552351592 1552351592 -14593 +2905 -1232183416 -1232183416 -32491 +2911 1483580941 1483580941 23564 +2915 -470798506 -470798506 20124 +2919 1002132158 1002132158 27039 +2933 -1674623501 -1484787952 12090 +2938 -2032576637 -2032576637 -24561 +294 -1817096156 -1817096156 -8927 +2941 -1862095575 -1862095575 11050 +2942 1638471881 1638471881 -26367 +296 -1348149160 597657990 11864 +2962 1042237722 1042237722 -28299 +2968 1556919269 1556919269 25420 +2971 -373541958 -373541958 4725 +2977 -2007662579 -2007662579 -16129 +2979 131031898 131031898 30056 +2984 1440427914 1440427914 -16815 +2986 -933324607 -933324607 18508 +2988 492639283 492639283 24600 +2991 NULL NULL 6451 +3002 -1538558250 -1538558250 2376 +3006 1328225044 1328225044 364 +301 -1924909143 -1924909143 -24092 +302 -1730740504 -1730740504 -31395 +3021 -360113158 177294487 31545 +3024 -891543038 -891543038 23881 +3029 -1198036877 -1198036877 -4676 +3031 NULL NULL 25683 +3036 -449333854 -449333854 22111 +3043 692666133 692666133 325 +3054 -973128166 -973128166 32671 +3055 -1198465530 -1198465530 -23194 +3058 -1144920802 -1144920802 21976 +3059 1386071996 1386071996 -11247 +3060 -2122509553 818313200 8398 +3067 1256676429 1256676429 2085 +3071 1129173487 1129173487 7076 +3073 722737062 722737062 9572 +3079 -882028850 -882028850 5909 +3083 -385247581 -385247581 6484 +3084 1333148555 1333148555 15532 +3089 584084934 584084934 -18646 +3094 1335803002 1335803002 -28840 +3103 -1622653291 -1622653291 -11956 +311 -1850492820 -1850492820 18430 +3111 -1299159155 -1299159155 -27295 +3118 NULL NULL 725 +3119 673904922 673904922 -17995 +3144 -758231588 -758231588 28899 +3147 1102069050 1102069050 -7065 +3159 -78240945 1127080164 45508 +3163 26270580 26270580 8461 +3174 -1871446009 -1871446009 -24248 +3183 1363459426 1363459426 -24763 +3190 297577612 297577612 NULL +3197 976870621 976870621 21168 +3199 -2086352100 -2086352100 -6306 +320 1198172036 1198172036 19001 +3203 -491377296 -491377296 -15576 +3206 -733756717 -733756717 -10392 +3208 -211669740 -211669740 -5907 +3212 900992177 900992177 19458 +3213 -1171326281 -1171326281 -31163 +3231 -817383093 -817383093 -705 +3232 1434588588 1434588588 3270 +3235 -287400633 -287400633 -8003 +3244 1303632852 1303632852 3354 +3245 1385883394 1385883394 18240 +3248 1202720813 1202720813 29434 +3249 206942178 206942178 NULL +3253 -1218871391 -1218871391 22786 +3255 -1212433954 -1212433954 -9368 +3263 -419335927 -419335927 NULL +3286 -1078214868 -1078214868 31688 +3300 1743696703 1743696703 -22858 +3307 -1128317466 -1128317466 -5240 +3322 -1544877665 -1544877665 29775 +3333 -462541618 -462541618 NULL +3352 -1621814212 -1621814212 -8532 +336 1376818328 1376818328 23910 +3365 1712411993 1712411993 -2734 +3366 -606214770 -606214770 21440 +3397 -2066134281 -2066134281 -20787 +34 1969650228 1969650228 7988 +3401 -2138343289 -2138343289 -6735 +3407 NULL NULL -20835 +3409 -337586880 -337586880 NULL +341 278643258 278643258 5516 +3418 -940504641 786565385 -8267 +342 -884796655 -884796655 -32403 +3421 -1878572820 -1878572820 -10533 +3430 -395499919 -395499919 29515 +3443 -1006768637 -1006768637 -4507 +3446 440393309 440393309 -11081 +345 NULL NULL NULL +3456 NULL NULL NULL +346 -1880877824 -938756287 -42984 +3460 1204325852 1204325852 5736 +3462 -1716506227 511836073 -31348 +3467 -1134786190 596802082 185 +347 -414207254 -414207254 5683 +3472 868717604 868717604 -12628 +3478 1772545157 1772545157 18675 +3493 -890552359 -890552359 -26666 +350 330302407 330302407 -13144 +3507 2032271149 2032271149 -21180 +3510 197056787 197056787 -3190 +3512 636901402 636901402 31396 +3533 1076088102 1076088102 NULL +3534 NULL NULL -26284 +3541 -996953616 -996953616 NULL +3542 459269456 459269456 -15053 +355 1258721737 1258721737 -24884 +3554 48554395 48554395 NULL +3555 41063276 458190500 -7242 +3563 1332181668 1332181668 -7533 +3566 -519978947 -519978947 -3883 +3567 410340192 410340192 11238 +3568 NULL NULL -10516 +3579 -1426893312 -1426893312 29828 +3588 696229550 850625480 48095 +3599 2069258195 2069258195 -25112 +3606 -1032306832 -1032306832 -11286 +3608 773730574 773730574 21814 +3609 -1380191654 -1380191654 10457 +361 -434747475 -434747475 24663 +3613 1191238870 1191238870 -25531 +3622 -1583445177 2057486961 -7988 +3625 -1656822229 -1656822229 -1433 +3630 693876030 693876030 27981 +3637 929560791 929560791 -20411 +364 1336365018 1336365018 4138 +3648 1142481557 1142481557 -17502 +3663 -886741158 -886741158 -1900 +3664 -186600427 -186600427 -10247 +367 -1324624386 -1324624386 22505 +3672 1825828852 1825828852 -27707 +3673 -362603422 -362603422 -10629 +3677 470575409 470575409 18190 +3680 1124269631 1124269631 -9614 +3682 -1718163874 -1718163874 -1510 +3690 1500437122 1500437122 7678 +3691 -664111469 -664111469 3714 +3701 760466914 760466914 -4059 +3702 -1423467446 -1423467446 4416 +3703 1796950944 1796950944 32096 +3707 1377359511 1377359511 1387 +3722 -1322736153 -1322736153 -5283 +3724 1625751062 1625751062 -7323 +3725 -2119539915 1911834442 26932 +3728 -938342473 -800799595 -45459 +3739 -192181579 -192181579 17242 +3747 1001732850 1001732850 16062 +3749 1027147837 1027147837 18482 +375 -1754347372 -1754347372 14493 +3755 -7929246 -7929246 NULL +3763 -679230165 -679230165 -909 +3764 -2027812975 -2027812975 27922 +3769 -1431196400 -1431196400 -7531 +3770 -1727003541 -1627366321 29421 +378 -1270523286 -1270523286 -20876 +3781 -161884324 141492068 -36249 +3789 -139448716 -139448716 -21281 +379 1625699061 1625699061 -2518 +3810 -1043413503 -1043413503 -30534 +3812 -870900240 -870900240 -31793 +3823 1563120121 1563120121 -32541 +3824 1372224352 1372224352 -260 +383 -191434898 1063524922 -2585 +3830 1443426396 1443426396 -31551 +3835 133276416 133276416 -3540 +3841 -901079162 -901079162 8466 +3848 1436480682 1436480682 22594 +3858 1925283040 1925283040 -5435 +3860 -423945469 -423945469 31892 +3866 -88576126 436093771 -7932 +3874 -1603071732 -1603071732 15589 +3879 461680901 461680901 -30818 +388 -66112513 -66112513 -6933 +3887 476919973 476919973 24715 +3901 -1909635960 -1909635960 -27139 +3904 1473503196 1473503196 -20532 +3907 -373038706 -373038706 -13474 +391 1107258026 1107258026 -9375 +3910 NULL NULL 26288 +3911 -1283465451 -1283465451 -14055 +3913 1506907734 1506907734 -23852 +392 1664736741 1664736741 -13904 +3932 2145269593 2145269593 -31707 +3940 923353533 923353533 -7024 +3941 -734921821 -734921821 7654 +3945 -1758125445 -1758125445 3891 +3946 523289079 523289079 8727 +3949 1797164732 1797164732 -28646 +3958 65172363 65172363 NULL +3960 1509573831 1509573831 -19213 +3961 -1955647385 -1955647385 -302 +3962 NULL NULL -27035 +3965 771827308 771827308 -10452 +3974 -253084551 670667262 22079 +3980 -564495517 -564495517 -6334 +3990 -1392487784 -1392487784 -15393 +4018 -396852483 -396852483 -12896 +4020 -1447140800 -1447140800 20052 +4024 -202035134 -202035134 -25412 +4030 -216495498 -216495498 -21693 +4037 1003667927 1003667927 2335 +4051 1052255272 1052255272 12642 +4054 1998185704 1998185704 -733 +4056 -1516259168 -1516259168 -23527 +4075 NULL NULL -18547 +4078 727802564 727802564 16437 +4088 947846543 947846543 5972 +41 -203911033 -203911033 31740 +412 -505879576 2144454927 -26499 +417 152891873 152891873 NULL +425 1336194583 1336194583 32584 +443 596242714 596242714 -11929 +454 -1227085134 -1227085134 17107 +455 1159353899 1159353899 -254 +462 1677444379 1677444379 -7871 +470 -181523892 -181523892 -7846 +471 -207899360 -207899360 -30730 +481 536235636 536235636 NULL +482 765084282 765084282 NULL +485 874824958 874824958 11979 +489 -928013434 -928013434 -21009 +49 1673218677 1673218677 -20729 +490 1229172951 1229172951 -2617 +491 -201554470 -201554470 4747 +5 -1063673827 -1063673827 -18933 +500 1216016081 1216016081 NULL +501 -1469463456 715333063 36766 +504 851975276 851975276 2671 +522 -853606287 -853606287 22074 +523 149701884 149701884 15923 +524 -1326025787 -1326025787 -29218 +530 -1851680302 -1851680302 -22558 +535 888896424 888896424 NULL +579 -1804244259 -1804244259 3009 +583 -1554325042 -1554325042 26859 +584 -2017279089 -2017279089 -24305 +586 -310343273 -310343273 5011 +587 1485934602 1485934602 -4799 +590 -186764959 -186764959 -16247 +597 1577999613 1577999613 -9584 +601 -592568201 -592568201 17086 +612 1131663263 1131663263 -7564 +615 2097519027 2097519027 23956 +618 -412333994 -412333994 32063 +65 919363072 919363072 -8685 +650 1222217404 1222217404 -6494 +658 -1254129998 -1254129998 32210 +66 2013444562 2013444562 -32498 +661 -407089271 1045719941 26557 +663 -1261099087 -1261099087 -4209 +664 899810881 899810881 24019 +677 -1038565721 -1038565721 -3449 +68 879290165 879290165 -4169 +681 -893863493 -893863493 -22701 +687 1888675011 1888675011 32124 +688 NULL NULL 16764 +690 -1112062809 -1112062809 NULL +691 -1156193121 -1156193121 25636 +6923604860394528768 -1095938490 -1095938490 -13325 +6924820982050758656 -1709117770 -1709117770 26324 +6926925215281774592 987734049 987734049 7826 +6927260280037097472 1668094749 1668094749 15578 +6928080429732536320 1300798829 1300798829 -17840 +6933001829416034304 2089198703 2089198703 -16998 +6933451028794925056 1776456512 1776456512 -16367 +6933731240564056064 780859673 780859673 18910 +6934570741217755136 491758252 491758252 -17642 +694 -2015780444 -2015780444 NULL +6947488599548215296 1141595012 1141595012 15279 +695 -521886983 -521886983 17132 +6960137166475911168 -558456218 -558456218 -11769 +6962726713896484864 2051470532 2051470532 -4923 +6963217546192322560 -1340213051 -1340213051 10083 +6964585306125008896 2146312499 2146312499 10544 +6967631925774639104 373031319 373031319 NULL +6969599299897163776 -2042831105 -2042831105 -5135 +6974475559697768448 1493555718 1493555718 -1725 +6982145326341423104 -941433219 -941433219 -27049 +6987889924212203520 -2053551539 -2053551539 25197 +6991316084916879360 -1345085327 -1345085327 20655 +6996686091335884800 -1738775004 -1738775004 -29442 +7006803044329021440 1614297403 1614297403 -398 +7013693841855774720 656187584 656187584 26158 +7014537632150224896 -44426049 -44426049 -4451 +7017956982081404928 -828724467 -828724467 -244 +7022349041913978880 -1096013673 -1096013673 505 +7027529814236192768 -1988508336 -1988508336 -4804 +7031339012080549888 1182390248 1182390248 -696 +7039820685967343616 -483740394 -483740394 -3517 +7045967493826387968 -1669227632 -1669227632 7066 +7049773031131283456 814544198 814544198 -4726 +7052226236896256000 1119976718 1119976718 -19270 +7054271419461812224 -1266138408 -1266138408 -12422 +7054938591408996352 -352146259 -352146259 -23137 +7060236714847412224 -1858443953 -1858443953 552 +7061498706968428544 -290558484 -290558484 29999 +7061809776248545280 -469870330 -469870330 28413 +7062382339142156288 536876888 536876888 -10513 +7062605127422894080 -1614194712 -1614194712 NULL +7065344324692443136 -1881263242 -1881263242 -18672 +7068517339681259520 -1871209811 -1871209811 -24186 +7069729473166090240 NULL NULL -20517 +707 1343581455 1343581455 22320 +7077311975029555200 1103797891 1103797891 20348 +7078641038157643776 NULL NULL -13499 +7080269176324218880 -337073639 -337073639 -19374 +7084659344078970880 963854010 963854010 22655 +7086206629592252416 -1106685577 -1106685577 21418 +7091300332052062208 NULL NULL 13145 +7099005292698550272 917891418 917891418 -10874 +71 -20639382 -20639382 NULL +7107604675626008576 1949494660 1949494660 11120 +7125231541858205696 -2111312205 -2111312205 -7467 +7128222874437238784 -283378057 -283378057 29171 +7130159794259353600 -837506172 -837506172 4104 +7130306447560826880 77063155 77063155 -7715 +7149417430082027520 -1352545619 -1352545619 -22915 +7153922334283776000 NULL NULL -17426 +7157247449513484288 -36038293 -36038293 NULL +7164349895861829632 -1153978907 -1153978907 3316 +7165364563962191872 -1272838092 -1272838092 -24518 +7166263463731421184 -1838281337 -1838281337 -15578 +7175638927948562432 596280431 596280431 30532 +7186401810812059648 1430614653 1430614653 8243 +7195454019231834112 -1419573027 -1419573027 25777 +7198687580227043328 563507584 563507584 -20192 +7199539820886958080 NULL NULL NULL +7204802700490858496 -1719427168 -1719427168 15176 +7210160489915236352 -1353470095 -1353470095 -12755 +7212016545671348224 1309976380 1309976380 NULL +7212090742612467712 -1067083033 -1067083033 5549 +7217123582035116032 -90029636 -90029636 -3165 +7220131672176058368 1017953606 1017953606 -25780 +7220581538170413056 615661052 615661052 21402 +7223569671814987776 -1004204053 -1004204053 -14973 +7226360892091416576 -935723237 -935723237 NULL +7229607057201127424 -1818380492 -1818380492 NULL +723 1616782308 1616782308 -13972 +7231399302953377792 1990792684 1990792684 21665 +7232273749940838400 -1231821948 -1231821948 -3373 +7235109456886816768 -2098078720 -2098078720 26181 +7237310132329488384 -1061859761 -1061859761 15011 +7238339720750948352 -1770229099 -1770229099 -12193 +724 -616724730 -616724730 -20663 +7242751359672631296 -2016985611 -2016985611 -31659 +7249443195032985600 -51612681 -51612681 7180 +7250237407877382144 -772236518 -772236518 8918 +7254710367022645248 1911809937 1911809937 14741 +7255302164215013376 1281159709 1281159709 -5118 +7259955893466931200 NULL NULL 21509 +7260908278294560768 826519029 826519029 -23250 +7265141874315517952 -571587579 -571587579 26910 +7266437490436341760 177391521 177391521 22870 +7271786885641666560 936752497 936752497 -19291 +7271887863395459072 -94709066 -94709066 -21708 +7274777328897802240 482977302 482977302 32611 +7291432593139507200 1570238232 1570238232 21529 +7295502697317097472 210728566 210728566 -28906 +7295926343524163584 1182646662 1182646662 -28366 +7296164580491075584 1412102605 1412102605 -797 +7299197687217856512 172075892 172075892 -12564 +73 488014426 488014426 -3405 +7304839835188609024 1961954939 1961954939 -25417 +7308289763456000000 -1423477356 -1423477356 -1335 +7309156463509061632 1304431147 1304431147 1211 +7310869618402910208 -359943425 -359943425 -16301 +7319711402123149312 1036391201 1036391201 31125 +7333512171174223872 -332125121 -332125121 -24885 +7339426767877390336 538268118 538268118 19302 +7343171468838567936 879289168 879289168 4032 +7344029858387820544 -1669848306 -1669848306 12263 +7345991518378442752 849859032 849859032 10916 +7347732772348870656 -1800413845 -1800413845 -670 +7348598907182800896 -1940205653 -1940205653 12411 +735 115111911 115111911 6240 +7354813692542304256 1426152053 1426152053 -11232 +7359004378440146944 1082837515 1082837515 11811 +736 -1183469360 -1183469360 -31514 +7368920486374989824 -1822850051 -1822850051 -15064 +7370078518278397952 -215703544 -215703544 -27284 +7370803940448305152 -533281137 -533281137 25621 +7375521127126089728 -688296901 -688296901 NULL +7376467688511455232 -348628614 -348628614 -6611 +7378993334503694336 1870464222 1870464222 -24911 +738 -453739759 -453739759 -14597 +7381659098423926784 867587289 867587289 22463 +7384150968511315968 1447462863 1447462863 NULL +7386087924003676160 2038381675 2038381675 7603 +7391208370547269632 -743680989 -743680989 -22217 +7393308503950548992 -849551464 -849551464 4400 +7394967727502467072 -1983567458 -1983567458 -23672 +7401968422230032384 -504529358 -504529358 14021 +7410096605330227200 1987336880 1987336880 -7948 +7410872053689794560 -916344293 -916344293 -15115 +7411793502161182720 -177025818 -177025818 -32000 +7412924364686458880 1817671655 1817671655 12674 +7414865343000322048 -829717122 -829717122 15626 +7418271723644403712 1202593021 1202593021 24768 +743 1004241194 1004241194 -10277 +7432428551399669760 -805288503 -805288503 -9171 +7432998950057975808 -434656160 -434656160 -24336 +7436133434239229952 203688965 203688965 -6874 +7440265908266827776 -1425942083 -1425942083 -6396 +7450416810848313344 1393262450 1393262450 29498 +7452756603516190720 -2009569943 -2009569943 -11008 +7454442625055145984 -267554590 -267554590 21377 +7454632396542074880 859140926 859140926 4749 +7461153404961128448 -23865350 -23865350 -17166 +7471208109437304832 -1603374745 -1603374745 18346 +7473537548003352576 -1439424023 -1439424023 1350 +7486884806277611520 1516236846 1516236846 5190 +7487338208419823616 1974939899 1974939899 5445 +7487538600082554880 2068538934 2068538934 -19330 +7490717730239250432 -1829691116 -1829691116 -3219 +7491898395977523200 1265528735 1265528735 -12811 +7492436934952574976 NULL NULL 20179 +7497276415392407552 1543611951 1543611951 -21805 +7497306924248834048 550594651 550594651 10807 +7500716020874674176 -1953605752 -1953605752 20243 +7514552840617558016 334208532 334208532 26338 +7517159036469575680 -1437126017 -1437126017 7697 +7524958388842078208 -664856187 -664856187 -7027 +7528074274555305984 550186724 550186724 27999 +7528211148397944832 -512198016 -512198016 -17944 +7534042483076857856 1645753684 1645753684 -21662 +7534145866886782976 -532755480 -532755480 26155 +7534549597202194432 2044130430 2044130430 -30163 +7545689659010949120 -1380678829 -1380678829 6756 +7548958830580563968 1836499981 1836499981 6913 +7549858023389003776 NULL NULL -13226 +7555301305375858688 1916363472 1916363472 2652 +7566273236152721408 881673558 881673558 12814 +7569249672628789248 -1952235832 -1952235832 -28689 +7570474972934488064 -432218419 -432218419 28118 +7573530789362262016 NULL NULL -12626 +7575087487730196480 1421779455 1421779455 -30020 +7581052107944361984 1493152791 1493152791 -15538 +7581614118458335232 -1129489281 -1129489281 -2421 +7584007864107778048 1410516523 1410516523 -22910 +7592440105065308160 NULL NULL -13713 +7593521922173419520 1260480653 1260480653 20023 +7596563216912211968 605946758 605946758 31242 +7599019810193211392 -2112149052 -2112149052 -11528 +7608447395949109248 882762933 882762933 1356 +7614435638888210432 735600165 735600165 17129 +7620183559667081216 -1967660827 -1967660827 15688 +7621013099259527168 -553349593 -553349593 -6927 +7625728883085025280 -1699044525 -1699044525 28558 +7626715182847090688 1905812339 1905812339 7153 +763 -1933374662 -1933374662 -408 +7637152193832886272 1880017800 1880017800 20036 +7647481735646363648 1164895226 1164895226 -15024 +7648729477297987584 NULL NULL -28551 +7652123583449161728 472901914 472901914 -1679 +7659279803863146496 1541249928 1541249928 -9609 +7662037650719850496 -175727228 -175727228 820 +7675009476762918912 522895626 522895626 -12709 +7678790769408172032 -1313618168 -1313618168 -19681 +7682327310082531328 879500678 879500678 30154 +7686992843032010752 -897622427 -897622427 14144 +7689489436826804224 -909127123 -909127123 20884 +7690986322714066944 -2124994385 -2124994385 276 +7691062622443044864 1516165279 1516165279 -17531 +7696737688942567424 -269702086 -269702086 20059 +7697541332524376064 -1070951602 -1070951602 -6950 +7700734109530767360 194754262 194754262 30199 +7701723309715685376 -1831957182 -1831957182 14261 +7705445437881278464 527598540 527598540 3374 +7710447533880614912 -583908704 -583908704 -11158 +7718825401976684544 -1226425562 -1226425562 10761 +7720187583697502208 -1366059787 -1366059787 22837 +7731443941834678272 -1092872261 -1092872261 31948 +7735566678126616576 1626868156 1626868156 -4819 +774 449788961 449788961 -28736 +7741854854673367040 -1743938290 -1743938290 27830 +7746402369011277824 -1735287250 -1735287250 -30748 +7747874976739016704 315055746 315055746 -11384 +7748799008146366464 -540401598 -540401598 6074 +7752740515534422016 1851654062 1851654062 28447 +7753359568986636288 -816661030 -816661030 23910 +7753882935005880320 1190302173 1190302173 -14888 +7761834341179375616 1273877405 1273877405 -30360 +7762823913046556672 1198701102 1198701102 16767 +7765456790394871808 1074488452 1074488452 -4286 +7768984605670604800 NULL NULL 21606 +7775034125776363520 -1628799508 -1628799508 11877 +7778936842502275072 -1702587308 -1702587308 -6502 +7779486624537370624 -1998652546 -1998652546 -8795 +7779735136559579136 -1228063838 -1228063838 -13393 +7782245855193874432 618991041 618991041 6320 +7784169796350730240 -958165276 -958165276 -11083 +7784489776013295616 -158848747 -158848747 26915 +779 -1939362279 -1939362279 -24422 +7790728456522784768 1575091509 1575091509 32589 +7792036342592348160 -538812082 -538812082 -10317 +7794244032613703680 1301426600 1301426600 -3222 +78 95356298 95356298 133 +780 -737624128 -737624128 -29646 +7800332581637259264 592011541 592011541 -17772 +7801697837312884736 -116484575 -116484575 -11863 +7818464507324121088 -2119724898 -2119724898 2833 +782 -1552053883 -1552053883 10702 +7823874904139849728 344239980 344239980 -23546 +784 44595790 44595790 21407 +7843804446688264192 -397951021 -397951021 -23124 +7844258063629852672 972835688 972835688 -20591 +7845953007588401152 NULL NULL -27232 +7857878068300898304 977624089 977624089 2616 +7868367829080506368 658008867 658008867 NULL +7870277756614623232 985634256 985634256 -20752 +7871189141676998656 1363568842 1363568842 -11006 +7871554728617025536 -309571354 -309571354 28146 +7874764415950176256 2127682701 2127682701 -11187 +7885697257930588160 1992977592 1992977592 -3813 +7888238729321496576 978044705 978044705 NULL +789 NULL NULL 31140 +7892026679115554816 626941809 626941809 -22922 +7892281003266408448 -371779520 -371779520 -26138 +7898670840507031552 776459017 776459017 -22689 +7909645665163804672 -1289665817 -1289665817 -20188 +7917494645725765632 2076370203 2076370203 20411 +7919597361814577152 2125311222 2125311222 6781 +7921639119138070528 -1030565036 -1030565036 31432 +7922443154272395264 -1333770335 -1333770335 -12904 +7926898770090491904 1582537271 1582537271 14176 +7933040277013962752 -1061222139 -1061222139 -30677 +7936149988210212864 1769324649 1769324649 -10815 +7944741547145502720 372099650 372099650 -12203 +7947544013461512192 -1184620079 -1184620079 -15501 +7948803266578161664 1766517223 1766517223 -28864 +7955126053367119872 1447438548 1447438548 -25988 +7961515985722605568 866084887 866084887 NULL +7961909238130270208 -1138530007 -1138530007 22852 +797 996831203 996831203 5550 +7983789401706094592 230954385 230954385 -29239 +7989119273552158720 NULL NULL -4877 +7989160253372817408 1848935036 1848935036 1393 +7997694023324975104 -1826997220 -1826997220 10216 +7998357471114969088 346562088 346562088 -18387 +7998687089080467456 NULL NULL 5591 +80 NULL NULL NULL +8000440057238052864 1251556414 1251556414 4989 +8002769767000145920 1668446119 1668446119 -12016 +8004633750273925120 -1754203978 -1754203978 21081 +8011181697250631680 1773417290 1773417290 -6948 +8011602724663336960 667283966 667283966 756 +8014986215157530624 -799249885 -799249885 -21922 +8017403886247927808 -1491722659 -1491722659 13020 +803 -2096425960 -2096425960 -11047 +8045070943673671680 435407142 435407142 30764 +8048726769133592576 -406264741 -406264741 -12239 +8059284960252731392 -251576563 -251576563 896 +8069531888205086720 1978171687 1978171687 9469 +8071961599867387904 52667480 52667480 -4218 +8073733016154431488 1815882183 1815882183 -22923 +8079573715140485120 503752931 503752931 NULL +808 -1836166334 -1836166334 4536 +8087737899452432384 -2137168636 -2137168636 18900 +809 -682333536 -682333536 -21506 +8091421389575282688 NULL NULL 22232 +8099215208813903872 492968645 492968645 -16680 +8100036735858401280 -146961490 -146961490 -30304 +8109381965028548608 2022944702 2022944702 -11110 +8111757081791733760 -234758376 -234758376 -5314 +8113585123802529792 129675822 129675822 -17254 +8116738401948377088 1914993018 1914993018 24782 +812 -954480325 -954480325 19874 +8120593157178228736 -1379039356 -1379039356 -31709 +8129551357032259584 323817967 323817967 26664 +8135164922674872320 -1459528251 -1459528251 -3436 +8142241016679735296 -163859725 -163859725 -5699 +8143462899383345152 644934949 644934949 2784 +8144552446127972352 2083836439 2083836439 4081 +8145745969573666816 467753905 467753905 -21233 +8145750910080745472 1275228381 1275228381 -30482 +8146288732715196416 -728015067 -728015067 -8293 +8146492373537660928 1316369941 1316369941 18535 +8148211378319933440 NULL NULL 26869 +815 1910930064 1910930064 23177 +8150115791664340992 793047956 793047956 -32022 +8156018594610790400 1384071499 1384071499 -12071 +8156782979767238656 -1651993300 -1651993300 2756 +8160569434550403072 -1808960215 -1808960215 19986 +8160662610166194176 -310584775 -310584775 27077 +8163948965373386752 1968813171 1968813171 -2835 +8168742078705262592 -303747347 -303747347 -8286 +8169878743136043008 1765874562 1765874562 -19545 +8171188598958407680 1996235654 1996235654 NULL +8183233196086214656 1450881368 1450881368 -2827 +8184799300477943808 -579916775 -579916775 9069 +8190539859890601984 1418228573 1418228573 7343 +8190967051000659968 604460005 604460005 -562 +8192304692696383488 494570380 494570380 -9528 +8195103847607967744 15020431 15020431 18555 +8199513544090730496 758926227 758926227 16693 +820 -409673169 746904285 47295 +8201303040648052736 -774406989 -774406989 -18385 +8201491077550874624 1677197847 1677197847 -19295 +8208354137450766336 1377144283 1377144283 23205 +8210813831744118784 139661585 139661585 31502 +8213810702473183232 587797446 587797446 -6513 +8219326436390821888 2064448036 2064448036 -17689 +8220104397160169472 -1274158260 -1274158260 27071 +8221561626658881536 -1626062014 -1626062014 -4211 +8222714144797368320 -318380015 -318380015 -10532 +8223732800007864320 -599396052 -599396052 7579 +823 1660088606 1660088606 NULL +8230371298967609344 1660278264 1660278264 24436 +8235179243092090880 187893585 187893585 -28932 +8244041599171862528 402173272 402173272 -7201 +8254763178969915392 658850444 658850444 18972 +8268875586442256384 1271280812 1271280812 6115 +8269730157217062912 127051381 127051381 4952 +8272001752345690112 3999930 3999930 22006 +8279056098670198784 2133492883 2133492883 -240 +8282648443538710528 -402441123 -402441123 -19427 +8283099811330506752 737149747 737149747 16195 +8286706213485297664 -916495008 -916495008 6587 +8287522765741301760 -1817564067 -1817564067 -27705 +8290014929764040704 -1424027104 -1424027104 -25624 +8290944180915871744 684561551 684561551 -24115 +8294315622451740672 -43858652 -43858652 29922 +8295110846998233088 -1945738830 -1945738830 19917 +83 -684022323 -684022323 -23836 +8302473563519950848 -1524081566 -1524081566 28358 +8316336224427483136 345556325 345556325 -18485 +8323460620425330688 -1524554771 -1524554771 24298 +8325227661920133120 -178568841 -178568841 28000 +8332670681629106176 -314935936 -314935936 21932 +8333523087360901120 -442732016 -442732016 NULL +8337549596011102208 904604938 904604938 16110 +8345435427356090368 323919214 323919214 198 +835 -1054609414 -1054609414 -4159 +8351163199364390912 391186487 391186487 -232 +8362046808797306880 89366322 89366322 -31764 +8365058996333953024 -2043805661 -2043805661 -14280 +8367680396909404160 -1269216718 -1269216718 -12517 +8368012468775608320 -1665164127 -1665164127 21941 +837 170870820 170870820 13161 +8371939471056470016 826143442 826143442 -22000 +8372408423196270592 564349193 564349193 -29468 +8372588378498777088 1321678350 1321678350 30936 +8374321007870836736 -329336519 -329336519 -15874 +8376440110255243264 1665724041 1665724041 3325 +8383159090746204160 605141554 605141554 -19276 +8388363436324085760 -707108808 -707108808 22678 +8391407951622815744 NULL NULL 19968 +8391785334471589888 -630900418 -630900418 -15957 +8396433451610652672 -180280420 -180280420 28940 +8398862954249560064 669871113 669871113 -22447 +8407869317250220032 -1240912824 -1240912824 NULL +8410599906334097408 -1606567895 -1606567895 17701 +8411494452500930560 -1568646283 -1568646283 28551 +8415171956168417280 541118710 541118710 19862 +8416121695917498368 63706286 63706286 18140 +8417381121663746048 1458051497 1458051497 -24267 +8419958579638157312 -99916247 -99916247 18690 +8424515140664360960 1847210729 1847210729 -20112 +8435912708683087872 -2081809883 -2081809883 -19028 +845 -1026746699 -1026746699 14234 +8451612303224520704 -971203543 -971203543 26241 +8454154705460666368 -1421396891 -1421396891 -8321 +8455496814886002688 107680423 107680423 6379 +8457906374051020800 106847364 106847364 -30244 +8461498293348065280 1636364987 1636364987 3186 +8463868417649524736 -1643714866 -1643714866 25986 +8467976965865799680 916057807 916057807 -23622 +8470141334513098752 NULL NULL 30861 +8472429318602268672 -308225568 -308225568 -16518 +8473699639908261888 -591879497 -591879497 -5829 +8487573502287478784 1895282160 1895282160 27787 +8489584373231919104 1416850873 1416850873 -18659 +8489735221193138176 -1124028213 -1124028213 29333 +85 -913906252 -913906252 -3202 +8501910015960735744 1579460630 1579460630 -2060 +8508401924853850112 -1578387726 -1578387726 -2825 +8509508263705477120 1107757211 1107757211 -20934 +8514851182589771776 415234946 415234946 -13805 +8514979402185596928 1902676205 1902676205 NULL +8515682078777081856 -1026458834 -1026458834 14331 +8518454006987948032 -379174037 -379174037 -22941 +8519937082746634240 -1745449855 -1745449855 -28566 +8523972434954510336 2134433675 2134433675 17720 +8524940073536954368 476858779 476858779 24488 +8525336514806317056 350802495 350802495 -14405 +8525894870444638208 1216287232 1216287232 -9735 +8532016240026279936 -1726585032 -1726585032 -7172 +8536948829863198720 1723691683 1723691683 -6024 +8540237852367446016 398960205 398960205 2728 +8543177193114779648 2048533360 2048533360 18637 +8547243497773457408 -534991774 -534991774 29721 +8551446856960942080 -1312782341 -1312782341 24446 +8553195689344991232 566646177 566646177 -9065 +8554899472487596032 -491882534 -491882534 -13978 +8555933456197828608 NULL NULL 24105 +8555948987770511360 107941738 107941738 18071 +8557218322962644992 -1210550573 -1210550573 22278 +8558000156325707776 -370901197 -370901197 -30638 +8560526613401714688 1592467112 1592467112 -16622 +8569030475428511744 1743671220 1743671220 -25166 +8570983266408103936 950545385 950545385 NULL +8571268359622172672 1187495452 1187495452 -6384 +8573305425181941760 1583280136 1583280136 14089 +8577096957495025664 NULL NULL 7954 +8579974641030365184 -1545388906 -1545388906 -3619 +8583916402383601664 -733239404 -733239404 8551 +8613562211893919744 -1109134719 -1109134719 -21357 +8625937019655200768 272086526 272086526 -6736 +8631515095562887168 -1244527286 -1244527286 -9494 +8637720762289659904 1669519977 1669519977 NULL +8639254009546055680 477584560 477584560 26952 +8641221723991433216 -1531040609 -1531040609 18350 +8643198489997254656 -1079086534 -1079086534 10273 +8644602243484803072 -1218592418 -1218592418 -23663 +8649296591032172544 -1744964279 -1744964279 -13979 +8652485812846567424 1372705672 1372705672 10699 +8656571350884048896 NULL NULL -16002 +8660248367767076864 1520375588 1520375588 -16872 +8665969966920990720 1372982791 1372982791 -25596 +8666178591503564800 -1565785026 -1565785026 -21025 +8677632093825916928 2040926345 2040926345 30632 +8677794924343164928 115470151 115470151 -20409 +868 -2133145181 -2133145181 -14644 +8682955459667951616 2009215103 2009215103 -25282 +8687042963221159936 -870624802 -870624802 3063 +8688483860094599168 -273937943 -273937943 -25734 +8693036785094565888 2090496825 2090496825 NULL +8697823501349609472 922553769 922553769 -14597 +8698055291501543424 -1755088362 -1755088362 27905 +8708232769657815040 6526476 6526476 31135 +8708845895460577280 1860113703 1860113703 -27553 +871 915505006 915505006 -9496 +8714829359200747520 672919099 672919099 23834 +8716401555586727936 -789126455 -789126455 8188 +8720504651219001344 825677248 825677248 18820 +8723248113030782976 144499388 144499388 NULL +873 842283345 842283345 NULL +8731960288562044928 869288953 869288953 7392 +8734584858442498048 -946830673 -946830673 9962 +8736061027343859712 -1974972123 -1974972123 -28084 +874 58313734 58313734 6367 +8752150411997356032 -1502924486 -1502924486 913 +8759089349412847616 1972940844 1972940844 16439 +8759184090543857664 435426302 435426302 -373 +8760285623204290560 -573787626 -573787626 -24296 +8761174805938331648 1205391962 1205391962 28048 +8769199243315814400 2100377172 2100377172 25732 +8773222500321361920 217823040 217823040 4261 +8775009214012456960 -213198503 -213198503 -29988 +8779073705407963136 -1979314577 -1979314577 -31967 +8779711700787298304 -859535015 -859535015 27960 +878 290601612 290601612 -21723 +8780196485890555904 -607285491 -607285491 -9183 +8782900615468302336 -1411407810 -1411407810 -12396 +8783241818558193664 -714270951 -714270951 NULL +8785153741735616512 1028092807 1028092807 15530 +8792059919353348096 -745678338 -745678338 -10569 +8793387410919038976 -1058166020 -1058166020 -1011 +8795069490394882048 1366402722 1366402722 -5946 +8806507556248731648 1190554937 1190554937 32734 +8808467247666241536 -1706867123 -1706867123 297 +8811693967537774592 1731764471 1731764471 24299 +8815398225009967104 -1701502632 -1701502632 NULL +8817665768680906752 1550375386 1550375386 -24320 +8822384228057604096 -1371840597 -1371840597 26579 +8825059717746376704 872554087 872554087 12802 +8829545979081744384 NULL NULL -27844 +883 -1554130090 -1554130090 12048 +8836228556823977984 1499399891 1499399891 -26061 +8837420822750314496 2052773366 2052773366 -29475 +8849475396952514560 718692886 718692886 NULL +8850055384477401088 1503176016 1503176016 -20657 +8853989376829833216 -1505397109 -1505397109 5196 +8854495099223375872 2065408093 2065408093 -12588 +8854677881758162944 1883400319 1883400319 -32263 +8854715632851345408 1301997393 1301997393 22511 +8856674723376668672 -4943292 -4943292 NULL +8868529429494071296 1830870769 1830870769 19003 +8871707618793996288 -677778959 -677778959 NULL +8875745082589929472 -1460613213 -1460613213 -28968 +888 1012696613 1012696613 15862 +8895174927321243648 -522450861 -522450861 30921 +8896237972875370496 1540680149 1540680149 -31404 +8897901899039473664 -535056977 -535056977 3228 +8899122608190930944 -2146432765 -2146432765 -1067 +8900180888218329088 -1058356124 -1058356124 13048 +8900351886974279680 1000106109 1000106109 -15497 +8900545829211299840 352214248 352214248 256 +8905330479248064512 NULL NULL 27675 +8910706980937261056 1166237779 1166237779 -12506 +8920344895701393408 -1126628450 -1126628450 7299 +8920533610804609024 1739911574 1739911574 7569 +8927691194719174656 -917062754 -917062754 5025 +8928133990107881472 -1511162508 -1511162508 23063 +8935252708196999168 1603612975 1603612975 12327 +8936639033158410240 -1305139473 -1305139473 21469 +8939431770838810624 -934008333 -934008333 -18292 +8945004737083555840 252169185 252169185 19887 +8945302550165004288 1117805438 1117805438 22118 +8962097525980225536 -329695030 -329695030 -26946 +8972161729142095872 1709983738 1709983738 NULL +8979012655944220672 -120692484 -120692484 -29722 +898 -234278308 338805871 5469 +8983857919580209152 1273798925 1273798925 -29285 +8983912573761167360 NULL NULL -17690 +8984935029383389184 -1565671389 -1565671389 NULL +8987827141270880256 -1024500955 -1024500955 -27015 +8991071342495531008 -574475259 -574475259 15655 +8991442360387584000 2081243058 2081243058 -5468 +8994608999945125888 -839512271 -839512271 -23323 +8995562121346260992 -618505946 -618505946 11664 +8996824426131390464 -214166042 -214166042 28774 +9000633029632499712 -641062448 -641062448 -10420 +9001907486943993856 -1974257754 -1974257754 7483 +9005866015985713152 652118640 652118640 -5374 +9016280522993975296 388707554 388707554 20794 +9020143715350814720 NULL NULL 16565 +9023663198045544448 1145627305 1145627305 22388 +9030480306789818368 -758973175 -758973175 NULL +9038087402564657152 NULL NULL -14836 +9040958359122640896 -1635301453 -1635301453 -30157 +9043089884440068096 -1527024213 -1527024213 -19020 +9048002942653710336 -1079231269 -1079231269 14982 +9048297564833079296 -1534307678 -1534307678 29851 +9050032047355125760 -1240048334 -1240048334 27527 +9053187076403060736 1075444504 1075444504 -32208 +9054887854393950208 -1517536924 -1517536924 13522 +9062227900376203264 1260101584 1260101584 4206 +9064847977742032896 -1849091666 -1849091666 10727 +9067985867711291392 43672187 43672187 NULL +9073672806863790080 -2144241640 -2144241640 -32119 +9075404705968840704 712816880 712816880 22289 +9078604269481148416 -298221893 -298221893 -8309 +908 266601601 266601601 -9102 +9083076230151864320 2111462911 2111462911 -23667 +9083704659251798016 -1359838019 -1359838019 1280 +9084402694981533696 NULL NULL 28570 +9085381906890203136 -240529113 -240529113 -11066 +9085434340468473856 76381404 76381404 -14551 +9086905513121890304 1796013407 1796013407 -4808 +9089435102788009984 2102440065 2102440065 -21274 +9091082386452684800 748185058 748185058 -25463 +9091085792947666944 254921167 254921167 22618 +9094945190752903168 2126491387 2126491387 -32480 +9096395849845194752 100270148 100270148 25038 +91 -1288198020 -1288198020 15628 +9104574294205636608 1257621270 1257621270 -20834 +9107991000536498176 -847235873 -847235873 10615 +9112400579327483904 1111985530 1111985530 17073 +9114850402293882880 1571267481 1571267481 -23153 +9116137265342169088 -236700442 -236700442 NULL +9117063974299148288 -297664578 -297664578 29954 +9119046173224370176 1604076720 1604076720 -6088 +9123116008004288512 1882932986 1882932986 -1801 +913 1845797092 1845797092 -25077 +9131533983989358592 -1234163924 -1234163924 -7178 +9132009829414584320 -1856034030 -1856034030 -2027 +9136234417125007360 NULL NULL -21820 +9136548192574529536 1121512594 1121512594 -19926 +9139805788041134080 881396599 881396599 -5338 +914 -1257859205 -1257859205 -7300 +9148071980848742400 1370723240 1370723240 30619 +9149216169284091904 -694520014 -694520014 -31033 +9165199002069458944 430686478 430686478 312 +9169248521377374208 1566958573 1566958573 32547 +917 -2076460151 -2076460151 -15493 +9174894805640142848 1336842978 1336842978 -30397 +918 1359437295 1359437295 -21292 +9180098147855769600 1950882901 1950882901 -6349 +9182828596851990528 -1012329052 -1012329052 21091 +9185458640237641728 -1011125931 -1011125931 31316 +9185952983951343616 889733679 889733679 -14315 +9188173682239275008 -1248781172 -1248781172 -17236 +919 -357680544 -357680544 30166 +9190466190353661952 1918230406 1918230406 18823 +9191943992860327936 -595769210 -595769210 -16940 +9194388393453060096 1002519329 1002519329 -16362 +9199741683232399360 -1096771844 -1096771844 22704 +9207107990561972224 -765190882 -765190882 13265 +9207927479837319168 2066707767 2066707767 18354 +9209153648361848832 471464395 471464395 2952 +921 1238986437 1238986437 -23550 +9211455920344088576 166320811 166320811 -15936 +922 932774185 932774185 -16425 +923 -1506324615 -1506324615 20704 +927 1044196568 1044196568 NULL +928 413090363 413090363 -11160 +939 -982238309 -982238309 -739 +94 NULL NULL -5837 +945 219415594 219415594 27454 +947 -896274896 -896274896 30237 +950 -2065080832 -1541281934 -20831 +958 NULL NULL -4910 +961 1805139501 1805139501 10473 +965 1336951982 1336951982 26292 +967 -1240208945 -1240208945 11843 +976 -1563676282 -1563676282 7058 +979 1022214896 1022214896 -9798 +982 -835198551 -835198551 -18140 +987 1807877618 1807877618 -19159 +997 -742707249 -742707249 15342 +999 -346607939 -346607939 11159 +NULL -2069439395 2142592987 130757 +PREHOOK: query: explain vectorization detail +select b, count(i), min(i), max(i), sum(si) from vectortab2korc group by b +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b, count(i), min(i), max(i), sum(si) from vectortab2korc group by b +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: true + enabledConditionsMet: [hive.vectorized.execution.enabled IS true] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez +#### A masked pattern was here #### + Edges: + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + TableScan Vectorization: + native: true + projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + Select Operator + expressions: si (type: smallint), i (type: int), b (type: bigint) + outputColumnNames: si, i, b + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [1, 2, 3] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count(i), min(i), max(i), sum(si) + Group By Vectorization: + className: VectorGroupByHashOneLongKeyOperator + groupByMode: HASH + vectorOutput: true + keyExpressions: col 3 + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + vectorProcessingMode: HASH + projectedOutputColumns: [0, 1, 2, 3] + runtimeHashAggrOutputInfos: {COUNT_FUNC:0, PRIMITIVE, LONG, aggrOffset: 3, MIN_FUNC:1, PRIMITIVE, LONG, aggrOffset: 4, MAX_FUNC:2, PRIMITIVE, LONG, aggrOffset: 5, SUM_FUNC:3, PRIMITIVE, LONG, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 + keys: b (type: bigint) + mode: hash + outputColumnNames: _col0, _col1, _col2, _col3, _col4 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint) + sort order: + + Map-reduce partition columns: _col0 (type: bigint) + Reduce Sink Vectorization: + className: VectorReduceSinkLongOperator + keyColumns: [0] + native: true + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + valueColumns: [1, 2, 3, 4] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint), _col2 (type: int), _col3 (type: int), _col4 (type: bigint) + Execution mode: vectorized, llap + LLAP IO: all inputs + Map Vectorization: + enabled: true + enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true + groupByVectorOutput: true + inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + allNative: true + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 13 + includeColumns: [1, 2, 3] + dataColumns: t:tinyint, si:smallint, i:int, b:bigint, f:float, d:double, dc:decimal(38,18), bo:boolean, s:string, s2:string, ts:timestamp, ts2:timestamp, dt:date + partitionColumnCount: 0 + Reducer 2 + Execution mode: vectorized, llap + Reduce Vectorization: + enabled: true + enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true + reduceColumnNullOrder: a + reduceColumnSortOrder: + + groupByVectorOutput: true + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 5 + dataColumns: KEY._col0:bigint, VALUE._col0:bigint, VALUE._col1:int, VALUE._col2:int, VALUE._col3:bigint + partitionColumnCount: 0 + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0), min(VALUE._col1), max(VALUE._col2), sum(VALUE._col3) + Group By Vectorization: + aggregators: VectorUDAFCountMerge(col 1) -> bigint, VectorUDAFMinLong(col 2) -> int, VectorUDAFMaxLong(col 3) -> int, VectorUDAFSumLong(col 4) -> bigint + className: VectorGroupByOperator + groupByMode: MERGEPARTIAL + vectorOutput: true + keyExpressions: col 0 + native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false + vectorProcessingMode: MERGE_PARTIAL + projectedOutputColumns: [0, 1, 2, 3] + keys: KEY._col0 (type: bigint) + mode: mergepartial + outputColumnNames: _col0, _col1, _col2, _col3, _col4 + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + File Sink Vectorization: + className: VectorFileSinkOperator + native: false + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b, count(i), min(i), max(i), sum(si) from vectortab2korc group by b +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(i), min(i), max(i), sum(si) from vectortab2korc group by b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 1 -603273425 -603273425 -1307 +-6919476845891313664 1 710856472 710856472 8811 +-6920172215209426944 1 -764412063 -764412063 -26832 +-6921654334727036928 1 -1066775085 -1066775085 21673 +-6933565857643814912 1 581259902 581259902 NULL +-6934304742087655424 1 955171928 955171928 NULL +-6935038507792801792 1 174310705 174310705 -1928 +-6935548339131138048 1 -1062159435 -1062159435 24858 +-6938706403992854528 1 980732494 980732494 30420 +-6941777546186579968 1 121663320 121663320 21611 +-6947955278050181120 1 641695802 641695802 16357 +-6951350560260784128 1 1342923026 1342923026 12256 +-6957946688477274112 1 1505168716 1505168716 28272 +-6960947572095770624 1 1136976809 1136976809 -19343 +-6962271229404348416 1 1106995930 1106995930 -9734 +-6962292590214234112 1 -1147471772 -1147471772 20540 +-6968771079156654080 1 -939348081 -939348081 -25698 +-6968892545529896960 1 470993066 470993066 -16307 +-6970396058557005824 1 2140632003 2140632003 2643 +-6974654664348033024 1 -968377273 -968377273 26540 +-6975459232300236800 1 1151752586 1151752586 16796 +-6986178228432322560 1 -1369253050 -1369253050 18845 +-6988811476286873600 1 -1968097621 -1968097621 -15573 +-6988970700649168896 1 -1230459100 -1230459100 NULL +-6992217501957169152 1 1472487454 1472487454 -32755 +-6997233584896229376 1 -76654979 -76654979 3486 +-7000925438663041024 1 596045726 596045726 1755 +-7003696402314215424 1 -1458382451 -1458382451 -15348 +-7011425384222244864 0 NULL NULL 9017 +-7017212700635545600 1 304860245 304860245 20680 +-7020852530219171840 1 824836988 824836988 -25115 +-7030489936116252672 1 1115197541 1115197541 24847 +-7035132060308643840 0 NULL NULL 21784 +-7036607470351654912 1 -1933192293 -1933192293 -31458 +-7037375807670501376 1 -1168823523 -1168823523 1728 +-7037638331316469760 1 14573904 14573904 5093 +-7038455462786334720 1 524317972 524317972 343 +-7040248820505149440 1 196581473 196581473 -10326 +-7041362811802148864 1 -455114104 -455114104 9948 +-7042183597114081280 1 658636280 658636280 22333 +-7046180371529351168 1 -117723745 -117723745 4397 +-7049618574399692800 1 -978892011 -978892011 23441 +-7052619594823221248 1 -1117358187 -1117358187 7821 +-7055619148037554176 1 -838656526 -838656526 -13008 +-7055760785575665664 1 759899363 759899363 -24478 +-7057750467944931328 1 -71449585 -71449585 -10316 +-7058986555327307776 1 1942004879 1942004879 26796 +-7063777488249085952 1 -507250351 -507250351 21991 +-7078068944081002496 1 2013178181 2013178181 -32533 +-7079898537463537664 1 -1205034356 -1205034356 -31711 +-7081500255163727872 1 -1969751342 -1969751342 -18283 +-7083646746411720704 1 780938234 780938234 NULL +-7085247548404178944 1 1640192895 1640192895 -31828 +-7093825013581979648 1 -628790799 -628790799 -17607 +-7094189393339678720 1 1796486238 1796486238 20349 +-7094827141662539776 1 -632803945 -632803945 -24805 +-7104310188119834624 1 -1928197479 -1928197479 -10569 +-7106210529681350656 1 1718167702 1718167702 30585 +-7109790267244814336 1 -291577538 -291577538 11617 +-7115054815375073280 0 NULL NULL -29977 +-7120456708338688000 1 1751468853 1751468853 NULL +-7127548949860818944 1 260463232 260463232 28089 +-7138415011665043456 1 -1345391395 -1345391395 -29811 +-7139677575412686848 1 -1556127172 -1556127172 -15762 +-7140008543769042944 1 -1938290238 -1938290238 -30974 +-7144791190333546496 1 -876122064 -876122064 -13426 +-7145585429014888448 1 -817093900 -817093900 29245 +-7147490721376591872 1 1759741857 1759741857 -10312 +-7152177800841502720 1 -37773326 -37773326 -12463 +-7155539549555105792 1 -345542922 -345542922 -22421 +-7158472098920390656 1 -71305062 -71305062 -31998 +-7159700138947862528 1 -76430653 -76430653 26134 +-7161165959057334272 1 1352649032 1352649032 -22949 +-7162299524557471744 1 1813010930 1813010930 NULL +-7172594404186693632 1 -1949359208 -1949359208 2234 +-7185369278665605120 1 -374337252 -374337252 1864 +-7192529627893858304 1 -45439614 -45439614 10425 +-7194281951646187520 1 -797889292 -797889292 5661 +-7195217207163166720 1 -1977762695 -1977762695 -1767 +-7198372044947275776 1 -1424770359 -1424770359 -28941 +-7199983995864711168 1 -1870912732 -1870912732 -16570 +-7201085131997011968 1 -1356601829 -1356601829 4111 +-7209060152494817280 1 -2071851852 -2071851852 -23284 +-7213775605408178176 1 1222935237 1222935237 -32462 +-7220731681653604352 1 -851663638 -851663638 27796 +-7221474017515347968 1 -1421860505 -1421860505 23220 +-7228589258642194432 1 1958701268 1958701268 NULL +-7240213957902663680 1 -841634659 -841634659 NULL +-7242345057866285056 1 548375173 548375173 16799 +-7245872320493322240 1 -134686276 -134686276 4781 +-7246123871306244096 1 1686537335 1686537335 -25959 +-7255010240787030016 1 1373871781 1373871781 2612 +-7255686273677328384 1 2100839074 2100839074 -21005 +-7262049693594943488 1 1295073553 1295073553 -6142 +-7262384251828518912 1 1647411522 1647411522 NULL +-7262798781688651776 1 -423190290 -423190290 32212 +-7263060340185194496 1 1590744669 1590744669 -30669 +-7265998318110711808 1 1437057145 1437057145 6144 +-7266719102957125632 1 960187615 960187615 6036 +-7270034223527993344 1 -1984079412 -1984079412 2542 +-7273590251991162880 1 994798486 994798486 4332 +-7273694358642851840 1 2009890220 2009890220 -25155 +-7276111129363046400 1 -1462604138 -1462604138 2683 +-7287583262310350848 1 -1108723753 -1108723753 31099 +-7292078334519894016 1 -785261879 -785261879 -3757 +-7296096276653391872 1 160290374 160290374 13632 +-7303847963918393344 1 -1769423338 -1769423338 13795 +-7319315187617587200 1 -235238928 -235238928 11077 +-7326863346317598720 1 958866509 958866509 -5282 +-7328087811698909184 1 -1017629298 -1017629298 -21795 +-7329767178250018816 1 -448060992 -448060992 -23462 +-7329807949048193024 1 -369183838 -369183838 1519 +-7330203470474985472 1 -1065248998 -1065248998 29015 +-7330413050756235264 1 -2024003241 -2024003241 14335 +-7333278178640953344 1 1393506704 1393506704 -15819 +-7333362172439035904 1 -835002549 -835002549 -11675 +-7340231535789727744 1 526502851 526502851 -14815 +-7344146703223496704 1 789871166 789871166 -30907 +-7344947507044466688 1 -340951385 -340951385 -19912 +-7345562788132315136 1 1750433588 1750433588 -16647 +-7356685674003021824 1 1319589591 1319589591 -21389 +-7357888618985873408 0 NULL NULL 27116 +-7362189611124563968 1 -496915240 -496915240 11804 +-7366430883634929664 1 1592153312 1592153312 20746 +-7378096180613840896 1 218917585 218917585 29639 +-7380731416973295616 1 -1114208576 -1114208576 -22554 +-7395343938785738752 1 830944953 830944953 28011 +-7395553021620731904 1 1056997296 1056997296 NULL +-7399631791131074560 1 -932921363 -932921363 -11110 +-7404052043914526720 1 -1349876582 -1349876582 29023 +-7404057145074712576 1 56316391 56316391 -15109 +-7409317158045442048 1 -1463884101 -1463884101 2955 +-7409653086454030336 1 -624029057 -624029057 -6884 +-7412431471807283200 1 622925063 622925063 27982 +-7413317118463164416 1 -507015439 -507015439 -9566 +-7419068456205385728 1 -4393552 -4393552 -5635 +-7420448501073051648 1 -1155174991 -1155174991 10600 +-7425160895830573056 1 -765102534 -765102534 22678 +-7429331808102899712 1 -1057522129 -1057522129 9264 +-7433265617153343488 0 NULL NULL -20946 +-7442593976514420736 1 1851805558 1851805558 -29228 +-7444070205513138176 1 -520725912 -520725912 26108 +-7451660755269853184 1 1338047392 1338047392 10217 +-7453525026342617088 1 1505665168 1505665168 4568 +-7455898404374921216 1 1544482684 1544482684 18558 +-7456869587112255488 1 -224865887 -224865887 -14783 +-7461750143936897024 1 -1343425152 -1343425152 -695 +-7464270453557993472 1 -1439293109 -1439293109 -12647 +-7469660864676585472 1 85774760 85774760 25847 +-7470307155642245120 1 1137950964 1137950964 17489 +-7476082621253402624 1 1083855659 1083855659 23928 +-7483435388852559872 1 -914329027 -914329027 28041 +-7488345684795342848 1 -1668736016 -1668736016 -458 +-7488415863027367936 1 1286367391 1286367391 28128 +-7494411162675691520 1 1595326878 1595326878 -21358 +-7496839341561954304 1 868714547 868714547 21849 +-7497303453253402624 1 1415647436 1415647436 -26565 +-7500200359698907136 1 -423074450 -423074450 -5216 +-7501803640821456896 1 1809795770 1809795770 -27807 +-7506254246954500096 1 -511198293 -511198293 23766 +-7507424948896415744 1 -828522499 -828522499 -14093 +-7507578199583694848 1 -1784633305 -1784633305 32133 +-7510418793070075904 1 975932228 975932228 27983 +-7511202710200885248 1 -2042647152 -2042647152 -22960 +-7511952204985049088 1 -1351437382 -1351437382 -25664 +-7512289590991544320 1 1409872356 1409872356 19350 +-7512297136103800832 1 -1180153422 -1180153422 18439 +-7515996202498473984 1 344989592 344989592 26296 +-7524170566881329152 1 -1908696083 -1908696083 -27358 +-7526793959592140800 1 -570632618 -570632618 28309 +-7528526815026692096 1 2125479431 2125479431 -3896 +-7532751268425261056 1 1752520642 1752520642 -26433 +-7535857766791577600 1 1846184880 1846184880 11168 +-7535958203887706112 1 656636097 656636097 -15862 +-7536330682873937920 1 -1289501869 -1289501869 -134 +-7540104552219860992 1 1081187102 1081187102 -14675 +-7541860097718902784 1 -625788713 -625788713 -11571 +-7542857121910046720 1 1495575878 1495575878 20872 +-7547245548870025216 1 1784291853 1784291853 -716 +-7547432761381339136 1 434679307 434679307 2338 +-7551394356730339328 1 1179528290 1179528290 -6460 +-7557017910095650816 1 195281533 195281533 -14661 +-7558524160894427136 1 375106978 375106978 18372 +-7571293705217687552 1 1240875512 1240875512 -10935 +-7571957778022178816 1 1042184256 1042184256 13595 +-7572262898020278272 1 -1875699183 -1875699183 23683 +-7572962089372991488 1 -841268868 -841268868 30730 +-7576194692683563008 1 2080249726 2080249726 28393 +-7593363318079610880 1 -1811563127 -1811563127 -23387 +-7594824008626372608 1 824743780 824743780 -24942 +-7598782894648565760 1 -983874694 -983874694 12762 +-7600138468036386816 1 -722294882 -722294882 17436 +-7603467428164009984 1 -619311578 -619311578 NULL +-7603569103205916672 1 390124976 390124976 -18358 +-7610137349734883328 1 683320224 683320224 7356 +-7611584069753552896 1 -1765795567 -1765795567 -29864 +-7612455481940246528 0 NULL NULL 1558 +-7612466483992051712 1 -1969235238 -1969235238 39 +-7616522969329262592 1 1924741890 1924741890 -2254 +-7617860842651017216 1 386741352 386741352 718 +-7623047151287754752 1 -1050029724 -1050029724 -23325 +-7623359796281999360 1 1829544791 1829544791 -27259 +-7623405558242500608 1 283322761 283322761 5235 +-7624057992767782912 1 -1218581850 -1218581850 31986 +-7629401308029976576 1 -1655030261 -1655030261 -12575 +-7637494527844343808 1 2005560498 2005560498 -27372 +-7637755520917741568 1 648935848 648935848 -10662 +-7642381493746483200 1 583458404 583458404 NULL +-7647020450676146176 1 609917172 609917172 17286 +-7661192563533062144 1 -1319753324 -1319753324 NULL +-7661250850555633664 1 -693249555 -693249555 -25689 +-7663293054873812992 1 -1478812842 -1478812842 -6518 +-7665186441284968448 1 791096295 791096295 -20218 +-7668388017287020544 0 NULL NULL 24244 +-7669169138124275712 1 -1484033125 -1484033125 -19535 +-7673901622181953536 1 1141303816 1141303816 13154 +-7679894005808693248 1 -306214368 -306214368 9943 +-7686220526274502656 1 -892839693 -892839693 -20182 +-7687052294777208832 1 -1989778424 -1989778424 28360 +-7692192232238678016 1 745725681 745725681 -25683 +-7695491171376291840 1 1225312439 1225312439 -15748 +-7700203302632210432 1 1805308672 1805308672 17531 +-7703540456272994304 1 1312270193 1312270193 2458 +-7707242953271500800 1 1568180994 1568180994 -13335 +-7707867749256445952 1 -596963345 -596963345 16734 +-7708932208121225216 1 307333276 307333276 -17840 +-7709958788604936192 1 595836061 595836061 5191 +-7712425776235274240 1 -1432316859 -1432316859 -26932 +-7720966287634112512 0 NULL NULL -18659 +-7739424919198187520 1 712625264 712625264 -12103 +-7744462446680375296 1 2029657999 2029657999 17958 +-7751265769984491520 1 700341242 700341242 -28914 +-7751427073017544704 1 615619268 615619268 31581 +-7753051494275432448 1 -1599905147 -1599905147 28921 +-7759238919361888256 1 -2065287410 -2065287410 30119 +-7759425383684849664 1 -938762477 -938762477 NULL +-7772064021830574080 1 -1201785350 -1201785350 NULL +-7773957003968675840 1 270090617 270090617 -9943 +-7777884099756122112 1 914583645 914583645 16217 +-7778829032042790912 1 -807242371 -807242371 -26064 +-7779270198785875968 1 -1242677422 -1242677422 -15129 +-7782344916178796544 1 -1213081886 -1213081886 -17356 +-7784419454650843136 1 -1210907929 -1210907929 -3179 +-7792903881635938304 1 -191899537 -191899537 27523 +-7793447076762345472 1 1196151988 1196151988 17942 +-7797149520019062784 1 -1262842192 -1262842192 -26439 +-7797151404935618560 1 -507955215 -507955215 -14928 +-7800879252150779904 1 1352739140 1352739140 -8578 +-7802538500225777664 1 215759857 215759857 31334 +-7804116532814151680 1 -1146649990 -1146649990 11159 +-7805985795815342080 1 -2076886223 -2076886223 -11679 +-7811060170911375360 1 1513689502 1513689502 -26128 +-7818454479651135488 1 -559270035 -559270035 -4491 +-7819437864839495680 1 -370093295 -370093295 -23389 +-7822452149325094912 1 60847311 60847311 24253 +-7824788571789279232 1 -1406691044 -1406691044 -14667 +-7827420207675105280 1 -36682325 -36682325 6197 +-7831320202242228224 1 -1726479726 -1726479726 -6637 +-7831595638727565312 1 1626884085 1626884085 -7738 +-7833618000492109824 1 589546540 589546540 -27715 +-7835907977757245440 1 -87470856 -87470856 -11165 +-7838598833900584960 1 1028204648 1028204648 -20789 +-7840338174858199040 1 -300717684 -300717684 3245 +-7845896959112658944 1 -1688105985 -1688105985 -3061 +-7848043121524228096 1 1667594394 1667594394 30222 +-7849504559236210688 1 -2052386812 -2052386812 -23248 +-7858505678035951616 0 NULL NULL -32240 +-7866079955473989632 1 196980893 196980893 NULL +-7867219225874571264 1 -1078579367 -1078579367 -11123 +-7868306678534193152 1 -2144138362 -2144138362 18395 +-7873753603299540992 1 -971698865 -971698865 NULL +-7875953567586451456 1 816439627 816439627 -29601 +-7877598807023386624 1 340384179 340384179 -22938 +-7878145001776152576 1 -1489628668 -1489628668 26744 +-7879864376629567488 1 -472303419 -472303419 24677 +-7881262505761710080 1 -103219371 -103219371 -1034 +-7881351200983613440 1 720703232 720703232 -20180 +-7883252982752665600 1 1136548971 1136548971 -12782 +-7884460946615984128 1 1772349172 1772349172 -14936 +-7888051992910274560 1 1818213677 1818213677 12045 +-7892780594910871552 1 -779743333 -779743333 -12571 +-7893577088764174336 1 268888160 268888160 NULL +-7894382303337832448 1 1832650234 1832650234 -24368 +-7895991410072928256 1 1467284000 1467284000 17394 +-7902517224300036096 1 -950738312 -950738312 41 +-7903158849011843072 1 -217930632 -217930632 7128 +-7904188195431661568 1 -442839889 -442839889 27697 +-7907355742053883904 1 794783516 794783516 28247 +-7910019233726242816 1 -1259611508 -1259611508 1409 +-7911421221625077760 1 476704350 476704350 7401 +-7915999634274369536 1 1814570016 1814570016 -7178 +-7916510129632296960 1 -2136052026 -2136052026 23468 +-7928062266382778368 1 152654715 152654715 1436 +-7928440849566146560 1 -800975421 -800975421 -31352 +-7939634346485858304 1 1012843193 1012843193 4363 +-7949309059286163456 1 88774647 88774647 11814 +-7949445503604604928 1 1695098246 1695098246 -17082 +-7953426740065312768 1 22308780 22308780 1847 +-7964801953178091520 1 661659208 661659208 -18867 +-7966960765508280320 1 -884109192 -884109192 -19517 +-7978782649203228672 1 491016124 491016124 16250 +-7989766326847807488 1 -1731820254 -1731820254 8675 +-7998947380180819968 1 -136514115 -136514115 -9759 +-8007017894942638080 1 1219616145 1219616145 -31582 +-8013397854633648128 1 -1391183008 -1391183008 -18295 +-8016589197379289088 1 -1721763321 -1721763321 4715 +-8017791189288869888 1 -2057666812 -2057666812 4447 +-8018511948141748224 1 661380540 661380540 3523 +-8021859935185928192 1 1420099773 1420099773 32019 +-8022573309127000064 1 1194243726 1194243726 28828 +-8023708819947323392 1 198539698 198539698 24178 +-8028275725610909696 1 -1937640350 -1937640350 -28682 +-8028910243475038208 1 873035819 873035819 22557 +-8030058711611629568 1 -752222556 -752222556 6734 +-8034414142083170304 1 -267130580 -267130580 18984 +-8046189486447017984 1 925032386 925032386 22603 +-8046238369820344320 1 819069589 819069589 -16027 +-8047774491688255488 1 -1339495001 -1339495001 -25301 +-8051395538179063808 1 -469749219 -469749219 20969 +-8051587217208967168 1 51376784 51376784 -9398 +-8051871680800120832 0 NULL NULL -14229 +-8054581198284668928 1 1395450272 1395450272 5601 +-8067243114610532352 1 214068706 214068706 -9365 +-8070535484085895168 1 829101712 829101712 -7865 +-8076479329071955968 1 2017314998 2017314998 -12605 +-8082793390939193344 1 -1878838836 -1878838836 6761 +-8084716955963252736 1 -1609864597 -1609864597 21103 +-8086577583338061824 1 -340462064 -340462064 20120 +-8088337436168830976 1 2124297747 2124297747 30839 +-8099313480512716800 1 -392713245 -392713245 -3091 +-8103788088118018048 1 -533227056 -533227056 25835 +-8104684579106914304 1 -1091003492 -1091003492 -17269 +-8108693586698706944 1 -896261100 -896261100 -13603 +-8115963579415650304 1 -951728053 -951728053 32092 +-8117838333114212352 1 -1642207005 -1642207005 -19786 +-8122639684164501504 1 1425456189 1425456189 -23630 +-8127494999848919040 1 1701817607 1701817607 -24670 +-8131997716860526592 1 -457341338 -457341338 -32364 +-8136227554401107968 1 127917714 127917714 12187 +-8140349174954893312 0 NULL NULL 19894 +-8142667274351345664 1 453613037 453613037 32581 +-8147405381260345344 1 659397992 659397992 25381 +-8158011642485825536 0 NULL NULL -25344 +-8161047750470279168 1 -621365995 -621365995 -32180 +-8172827216441573376 1 -113253627 -113253627 -29675 +-8182421179156905984 1 -1892816721 -1892816721 6980 +-8191825921746305024 1 703111607 703111607 16082 +-8194062064124362752 1 1482983157 1482983157 13845 +-8203008052020879360 1 -1127100849 -1127100849 -29685 +-8203075743525806080 1 -626484313 -626484313 15815 +-8205148279289085952 1 768198315 768198315 27693 +-8214462866994339840 0 NULL NULL -5097 +-8219876839318716416 1 1452244326 1452244326 30883 +-8232763638546694144 1 -514010922 -514010922 24455 +-8240034910581153792 1 -665623523 -665623523 5599 +-8240684139569233920 1 -1721368386 -1721368386 -31663 +-8243487285852766208 1 1153811197 1153811197 10891 +-8244116388227104768 1 1893512909 1893512909 31411 +-8244657976255889408 1 688547276 688547276 -28939 +-8260340354454503424 1 1456367662 1456367662 -13539 +-8269917980278980608 1 -1700451326 -1700451326 -17297 +-8270479187688816640 1 1519993904 1519993904 -22726 +-8275337702906757120 1 210003006 210003006 -19677 +-8280276629934981120 1 -588160623 -588160623 5266 +-8293833565967810560 1 -1464514590 -1464514590 30075 +-8297230235506343936 1 283618733 283618733 -18601 +-8300526097982226432 1 1314531900 1314531900 27101 +-8300764106868350976 1 -1196101029 -1196101029 NULL +-8302817097848307712 1 -1021859098 -1021859098 32553 +-8317591428117274624 1 -670925379 -670925379 -28730 +-8318886086186213376 1 1033609549 1033609549 -10095 +-8322751250650218496 1 -1212524805 -1212524805 13792 +-8330233444291084288 1 -409404534 -409404534 -776 +-8335810316927213568 1 -1562552002 -1562552002 -6045 +-8340523561480437760 1 39723411 39723411 -18214 +-8345065519816695808 1 654939016 654939016 -18796 +-8347088645602050048 1 76299337 76299337 -20559 +-8357136656913686528 1 1517915751 1517915751 11999 +-8358130693961195520 1 -122391516 -122391516 28008 +-8359839265974165504 1 1572563948 1572563948 -2559 +-8368269352975982592 0 NULL NULL -30890 +-8368487814665895936 1 156101201 156101201 17165 +-8369487968903897088 1 -194270271 -194270271 4701 +-8379109122834997248 1 1566607834 1566607834 -11740 +-8379964450833367040 1 -181122344 -181122344 20766 +-8384695077413412864 1 -1818456584 -1818456584 22213 +-8387347109404286976 1 -2011708220 -2011708220 -6487 +-8387536830476820480 1 -1703620970 -1703620970 9969 +-8395998375405912064 1 -1141801925 -1141801925 -15944 +-8400045653258444800 1 1523657918 1523657918 -5869 +-8411282676082565120 1 253621570 253621570 2677 +-8418913260807217152 1 -41864614 -41864614 -10126 +-8425998949410889728 1 -656478771 -656478771 -16793 +-8426531414463545344 1 1701761102 1701761102 -10872 +-8430283518005846016 1 -16094879 -16094879 -21156 +-8430370933326536704 0 NULL NULL 23229 +-8431492599012163584 1 -1131684944 -1131684944 31427 +-8438554249514491904 1 232405034 232405034 28775 +-8445801063348281344 1 -1247325089 -1247325089 7899 +-8453491903284994048 1 1524010024 1524010024 -14223 +-8454143651040444416 1 516479816 516479816 -31454 +-8465978403747037184 1 1347876055 1347876055 16430 +-8469607298426437632 1 374283948 374283948 26031 +-8471480409335513088 1 1891680787 1891680787 -9724 +-8485389240529354752 1 -1528033060 -1528033060 3213 +-8488247955875618816 1 1802498539 1802498539 -20343 +-8490382417169408000 1 987917448 987917448 -24208 +-8494118409594650624 1 631207613 631207613 25518 +-8503342882470019072 1 1367179645 1367179645 32017 +-8503573595507761152 1 2068018858 2068018858 NULL +-8507279516485566464 1 631711489 631711489 28064 +-8509547439040757760 1 -1749415887 -1749415887 -18581 +-8518060755719585792 1 -1100641049 -1100641049 17964 +-8518258741831680000 1 -809805200 -809805200 29502 +-8521578237232529408 1 -373034494 -373034494 -3602 +-8522878384019169280 1 633813435 633813435 6899 +-8523434203900674048 1 -590374062 -590374062 6306 +-8525212657458348032 1 -1280919769 -1280919769 -20100 +-8535957064499879936 1 -99205196 -99205196 -15866 +-8536369662934401024 1 447426619 447426619 12358 +-8543982423727128576 1 -607667405 -607667405 10382 +-8544299740525461504 1 -846450672 -846450672 17534 +-8545239748068941824 1 -897586947 -897586947 24439 +-8546758906409312256 1 -1236536142 -1236536142 -9278 +-8552393882631389184 1 1920863389 1920863389 21984 +-8555709701170552832 1 -1364322216 -1364322216 -9619 +-8559008501282832384 1 895945459 895945459 29365 +-8559252110266564608 1 259204652 259204652 -18090 +-8562524688907485184 1 1775355987 1775355987 -4364 +-8566856504746352640 1 2018442973 2018442973 -921 +-8566940231897874432 1 -1409508377 -1409508377 20307 +-8570933074545745920 1 -749042352 -749042352 6836 +-8572823448513445888 1 -101960322 -101960322 -19738 +-8572949572756774912 1 1787826883 1787826883 NULL +-8581765103969312768 1 -890374552 -890374552 -28098 +-8581979259158929408 1 -674478103 -674478103 15379 +-8584520406368493568 1 -19116270 -19116270 28656 +-8585134536083660800 1 -1196808950 -1196808950 8786 +-8585966098173870080 1 318631333 318631333 -16978 +-8593419958317056000 1 6266567 6266567 7057 +-8603817012434198528 1 1114521964 1114521964 11059 +-8604758220106014720 1 -1798573685 -1798573685 4475 +-8607195685207408640 1 -1111937842 -1111937842 -21648 +-8615168537390571520 1 1469775272 1469775272 -4539 +-8619303037130301440 1 -2074079977 -2074079977 10430 +-8623238306523824128 1 -1442424087 -1442424087 17373 +-8623965248051789824 1 1637295757 1637295757 15015 +-8632237187473088512 0 NULL NULL -12876 +-8649711322250362880 1 -500921094 -500921094 NULL +-8651641150831362048 1 -1533934649 -1533934649 -12809 +-8654433008222797824 1 -1728171376 -1728171376 30052 +-8654797319350927360 1 895763504 895763504 -1367 +-8658387566611996672 0 NULL NULL 6493 +-8659643752269242368 1 1204834275 1204834275 31370 +-8659692318743314432 1 25400543 25400543 -33 +-8660149447361404928 1 1317690178 1317690178 28301 +-8664374244449050624 1 1059212450 1059212450 -22919 +-8664806103426252800 1 964810954 964810954 -28536 +-8665218198816497664 1 -1031592590 -1031592590 NULL +-8665764757143658496 1 -45460011 -45460011 23725 +-8675661101615489024 1 -1918651448 -1918651448 -8857 +-8675892979328212992 1 1478365409 1478365409 6372 +-8683802826440105984 1 -1344287228 -1344287228 19636 +-8688153842294595584 1 -1741895392 -1741895392 -3206 +-8689606130068611072 1 488559595 488559595 NULL +-8694818694700048384 1 94220511 94220511 29011 +-8696162322976997376 1 1228837108 1228837108 -21117 +-8703026916864802816 1 -397683105 -397683105 -22582 +-8704234107608203264 1 -1318045616 -1318045616 24014 +-8705403811649355776 1 206121314 206121314 -29907 +-8710298418608619520 1 -1817938378 -1817938378 16664 +-8714995808835444736 1 206454818 206454818 24718 +-8719510423723155456 1 -327648289 -327648289 -19357 +-8730803262481580032 0 NULL NULL NULL +-8731068123910987776 1 -1434562279 -1434562279 12915 +-8746702976270385152 1 1767359228 1767359228 -24538 +-8754966081778565120 1 -125419186 -125419186 3251 +-8754992450211692544 1 1785455842 1785455842 7066 +-8756989568739835904 1 -158420748 -158420748 -13743 +-8760655406971863040 1 -1249011023 -1249011023 -9243 +-8763062627136864256 1 -454598288 -454598288 -9130 +-8768744394742235136 1 -726879427 -726879427 -26481 +-8782213262837530624 1 1565313938 1565313938 6743 +-8783777723063099392 1 877053605 877053605 -15431 +-8789178184387641344 1 -1045771991 -1045771991 NULL +-8797972842900307968 1 284646137 284646137 29992 +-8807361476639629312 0 NULL NULL -16218 +-8813211231120031744 1 1575300276 1575300276 27630 +-8831091081349758976 1 -1832606512 -1832606512 -21772 +-8832750849949892608 1 -66010816 -66010816 5947 +-8833019327569510400 1 -189393743 -189393743 1691 +-8835408234247168000 1 -938112972 -938112972 -26526 +-8836899523028312064 1 397255100 397255100 27046 +-8843859708698583040 1 2008211296 2008211296 -24194 +-8844949406948671488 1 315973457 315973457 -4953 +-8845239510002753536 1 -1358159222 -1358159222 -14537 +-8852770376039219200 1 311478497 311478497 7959 +-8853553406533894144 1 -1820436871 -1820436871 240 +-8856151919723003904 1 -575513309 -575513309 -25176 +-8856821118526734336 1 618321042 618321042 4233 +-8857335871148171264 1 1061043704 1061043704 31721 +-8858063395050110976 1 -1117019030 -1117019030 27340 +-8859107121649893376 1 -37876543 -37876543 -2118 +-8866442231663067136 1 -1079633326 -1079633326 26697 +-8870186814744420352 0 NULL NULL 29461 +-8870673219965001728 1 -1620148746 -1620148746 30824 +-8875546987176206336 1 414645489 414645489 16856 +-8877053610728161280 1 706823078 706823078 -6474 +-8877431933441327104 1 1650676897 1650676897 -22184 +-8879742387365429248 1 1912175355 1912175355 -13973 +-8881446757271846912 1 1224662770 1224662770 18857 +-8887058200926093312 1 -191704948 -191704948 -17916 +-8892963883085578240 1 -2087815643 -2087815643 NULL +-8896045754034978816 1 1392980712 1392980712 -21432 +-8914039133569400832 1 1332042427 1332042427 18827 +-8916987977485312000 1 -839176151 -839176151 NULL +-8922409715403112448 1 -536315467 -536315467 32567 +-8923529803981905920 1 1148500740 1148500740 -24178 +-8927968289860370432 1 1033836308 1033836308 20254 +-8930307926221807616 1 -966979668 -966979668 7258 +-8938849835283677184 1 1318606691 1318606691 -15299 +-8940944155843461120 1 -858439361 -858439361 -15526 +-8941201923743703040 0 NULL NULL 9127 +-8946656952763777024 1 -759911896 -759911896 NULL +-8948335470186373120 1 -1078397698 -1078397698 -15946 +-8959796625322680320 1 1318956413 1318956413 31509 +-8961059046745669632 1 1783034168 1783034168 150 +-8962547695651323904 1 1091736925 1091736925 NULL +-8965578088652095488 1 -1216166764 -1216166764 -22241 +-8989473881707921408 1 1310360849 1310360849 NULL +-8990843030306717696 1 -311437801 -311437801 -6283 +-8992599250893979648 1 1677494300 1677494300 -7850 +-8996954350906294272 1 -1769037737 -1769037737 28923 +-9002912355472736256 1 -561932449 -561932449 23417 +-9004892183139811328 1 -1949698319 -1949698319 3796 +-9008631121684832256 1 704038411 704038411 -23943 +-9012093603044245504 1 538766635 538766635 -19464 +-9013952631912325120 1 -1052493316 -1052493316 -15695 +-9014145341570203648 1 273256071 273256071 NULL +-9022154842129547264 1 1130043800 1130043800 3253 +-9032650742739836928 1 1102561039 1102561039 27028 +-9049720998034137088 1 1747664003 1747664003 17023 +-9051477157204770816 1 -1648991909 -1648991909 -15119 +-9058029636530003968 1 -1197602595 -1197602595 -11010 +-9066993118333706240 1 -425196209 -425196209 8488 +-9071565764086521856 1 2058640744 2058640744 -5593 +-9075302542655684608 1 -295186284 -295186284 -26087 +-9075486079396069376 1 -1805915233 -1805915233 6451 +-9078662294976061440 1 -235819331 -235819331 -22426 +-9079801920509001728 1 -705887590 -705887590 19350 +-9080568167841226752 1 906074599 906074599 24913 +-9080956291212132352 1 1330219997 1330219997 -9482 +-9084940280061485056 1 128430191 128430191 9177 +-9088239683374350336 1 -18917438 -18917438 -2993 +-9091113592821972992 1 1861276585 1861276585 -12295 +-9095689235523264512 1 1687784247 1687784247 10940 +-9101953184875757568 1 -1918847735 -1918847735 -16390 +-9102482277760983040 1 742866312 742866312 -10439 +-9105358806324035584 1 1679381813 1679381813 -21388 +-9105701280936501248 1 1109664665 1109664665 -15633 +-9109392978217484288 1 407098216 407098216 -16327 +-9117959922369060864 1 936133387 936133387 -11393 +-9126793997498957824 1 770574055 770574055 -10821 +-9136398397785948160 1 376076075 376076075 -22358 +-9142610685888192512 1 -387395264 -387395264 12271 +-9145593811310010368 1 -202409329 -202409329 NULL +-9148197394287779840 1 -1568536214 -1568536214 13247 +-9149719074367946752 1 234452496 234452496 14376 +-9157613004431998976 1 1362740312 1362740312 25683 +-9175038118837149696 1 -1701492480 -1701492480 -23241 +-9175279464813223936 1 2080412555 2080412555 2326 +-9178166810751909888 1 -1407817977 -1407817977 -14810 +-9187662685618348032 0 NULL NULL -20949 +-9189155542884474880 1 -1955545912 -1955545912 -1660 +-9203804401302323200 1 -671853199 -671853199 -5357 +-9203942396257984512 1 -1625800024 -1625800024 -22431 +-9206329156028112896 1 2084666529 2084666529 22588 +-9210275791460499456 1 601376532 601376532 9165 +-9213132862973829120 1 -1216206795 -1216206795 4948 +-9215144824304721920 1 -399643110 -399643110 -79 +-9218875542187065344 1 785382955 785382955 -4371 +-9219066990552760320 1 2090044777 2090044777 -15708 +1021 1 -1884780525 -1884780525 -22423 +1030 1 -300429552 -300429552 -17429 +1032 1 -1914210382 -1914210382 -8241 +1039 1 914062370 914062370 10261 +1046 1 -990781312 -990781312 NULL +1048 1 -249150336 -249150336 -30109 +1053 1 -1369302744 -1369302744 13491 +1055 1 371383749 371383749 -3103 +1058 1 -1497098905 -1497098905 -4550 +1065 1 1194089079 1194089079 5542 +1066 1 1767019352 1767019352 22150 +1074 1 161210995 161210995 16516 +1075 2 -534894953 2144365072 2160 +108 1 -835107230 -835107230 -5919 +1086 1 -1341627565 -1341627565 24776 +1093 0 NULL NULL NULL +1094 1 -359194591 -359194591 -23271 +1095 1 291866793 291866793 -28097 +1099 1 1390704286 1390704286 14408 +1115 1 -144862954 -144862954 NULL +112 1 -2147071655 -2147071655 8095 +1127 1 -423378447 -423378447 -1180 +1128 1 -932525608 -932525608 -2546 +1132 1 239078089 239078089 -9076 +1134 1 187718349 187718349 -8781 +1141 1 -540820650 -540820650 16858 +1142 1 1184001017 1184001017 -10015 +1145 1 669484010 669484010 20265 +1153 1 1646811064 1646811064 27758 +1157 1 590719541 590719541 67 +1158 1 990246086 990246086 -10972 +1165 2 477857533 1153089364 -41118 +1168 0 NULL NULL 21511 +1177 1 1182595271 1182595271 530 +1187 1 69110370 69110370 -25183 +1189 1 215508794 215508794 27636 +1198 1 -1857500489 -1857500489 -20329 +120 1 29680001 29680001 -28489 +1201 1 945911081 945911081 1773 +1217 1 -1802746460 -1802746460 6675 +1234 1 -1921909135 -1921909135 9447 +1243 1 1938788165 1938788165 -28374 +1247 1 -866304147 -866304147 -13238 +1252 1 30036142 30036142 19215 +1261 1 -343173797 -343173797 -13466 +1270 1 1969239701 1969239701 14180 +1280 1 991397535 991397535 -31765 +1282 1 -1140071443 -1140071443 -18151 +1286 1 -480058682 -480058682 -10781 +1287 1 -1362178985 -1362178985 4491 +1290 1 177837042 177837042 -7204 +1291 1 1398486099 1398486099 9110 +1299 1 765656980 765656980 -24682 +130 1 -2081501748 -2081501748 20183 +1307 1 882331889 882331889 -11015 +1312 1 742059797 742059797 101 +1316 1 997193329 997193329 -5897 +1321 1 731241198 731241198 -14652 +1337 1 -1948257321 -1948257321 23320 +1341 1 492120544 492120544 7197 +1342 1 1203482872 1203482872 18142 +1343 1 -217785690 -217785690 17164 +1345 1 -600315936 -600315936 -20262 +1346 1 -158233823 -158233823 -24801 +135 1 198017473 198017473 -6114 +1366 1 748358417 748358417 6080 +1368 2 -223311809 1650573576 41135 +1371 2 -2041825946 821316302 42813 +138 1 843282593 843282593 -7046 +1386 1 2081152819 2081152819 4939 +1398 1 955267058 955267058 -14445 +1409 1 865013617 865013617 -15389 +1422 1 -1402821064 -1402821064 NULL +1423 1 631954352 631954352 -13424 +1436 1 1765173148 1765173148 25118 +1439 1 531459992 531459992 14783 +1447 0 NULL NULL -950 +1450 1 740883263 740883263 -29171 +1454 0 NULL NULL 21904 +1458 1 -1001529082 -1001529082 7197 +1462 1 287239980 287239980 14286 +1466 1 574069547 574069547 -5267 +1470 1 1406029775 1406029775 -27871 +1477 1 -707228984 -707228984 17769 +1481 2 819875108 1022707418 -39852 +1489 1 766737781 766737781 -17697 +1493 1 557053197 557053197 -4501 +1495 1 -1222897252 -1222897252 21299 +1501 1 1081920048 1081920048 -21648 +1506 1 1893632113 1893632113 -27998 +1508 1 1632769786 1632769786 22366 +1509 2 1304812803 1920662116 -3309 +1518 1 824235855 824235855 -3360 +1520 0 NULL NULL 20391 +1521 1 -993029335 -993029335 -1443 +1524 1 -1851280202 -1851280202 6741 +1530 1 1934970004 1934970004 22013 +1537 2 -20660936 278601840 -6363 +154 2 -445353909 998793176 1960 +1541 1 -1430903652 -1430903652 -23853 +1542 0 NULL NULL 32324 +1545 1 564366133 564366133 -800 +1556 1 -1202975006 -1202975006 2295 +1559 1 -206177972 -206177972 20018 +1561 0 NULL NULL 30736 +1566 1 747122546 747122546 -23750 +1604 1 -2077771325 -2077771325 2677 +1606 1 -1901806083 -1901806083 -5259 +1608 1 142722637 142722637 -3257 +1613 1 -1422780798 -1422780798 23844 +1614 1 -296195507 -296195507 -19571 +1620 1 -1989378509 -1989378509 31374 +1638 1 92777932 92777932 -2287 +1641 0 NULL NULL 32640 +1643 1 1346627771 1346627771 -23109 +1648 1 -496870819 -496870819 -24591 +1651 1 -1575588203 -1575588203 -31335 +1667 1 -499533481 -499533481 9716 +1671 1 1504919241 1504919241 19276 +1674 1 1488440165 1488440165 -4142 +1676 1 -393723522 -393723522 -25033 +1678 1 -1104268719 -1104268719 -22163 +168 1 -53587991 -53587991 25931 +1681 1 929751599 929751599 13488 +169 1 -1759354458 -1759354458 16236 +1693 1 -1545572711 -1545572711 -2441 +1701 2 -648766606 1404346934 -7822 +1704 1 -605370177 -605370177 32309 +1719 2 -1477897348 1008698636 -13475 +1726 0 NULL NULL -4509 +1728 1 626251612 626251612 16105 +1745 1 368170021 368170021 32420 +1751 1 -667383951 -667383951 29288 +1752 1 -1538978853 -1538978853 -9094 +1769 1 805672638 805672638 30201 +1774 1 -1974777102 -1974777102 14773 +1775 1 1928365430 1928365430 -6564 +1777 1 1061638369 1061638369 3846 +1780 1 -71433796 -71433796 -9585 +1781 0 NULL NULL 22378 +1785 1 -524189419 -524189419 4319 +1786 1 -1009249550 -1009249550 -10258 +1788 1 -997463353 -997463353 NULL +1789 1 -1098379914 -1098379914 -4618 +1791 1 -1900369503 -1900369503 -25973 +1796 1 -1625062942 -1625062942 4397 +1806 1 -40284975 -40284975 NULL +181 1 1742536084 1742536084 31651 +1811 1 -922200749 -922200749 10278 +1813 1 -738157651 -738157651 -13410 +1826 1 505902480 505902480 -13623 +1827 1 -956668825 -956668825 12836 +1835 1 1768399622 1768399622 NULL +1837 1 290921475 290921475 26749 +1845 1 -909024258 -909024258 -2113 +1846 1 418182899 418182899 19513 +1856 2 -1873004551 44009986 -44928 +1862 1 674547678 674547678 -22215 +1863 1 -1017027298 -1017027298 -3318 +1864 0 NULL NULL NULL +1866 1 -400501472 -400501472 -8706 +187 1 2133950868 2133950868 10161 +1870 1 25644069 25644069 11572 +188 1 316438994 316438994 11451 +1880 1 1293876597 1293876597 -32383 +1890 1 -1660344634 -1660344634 19568 +1892 1 596595603 596595603 26298 +1899 1 734267314 734267314 30457 +19 2 -1900894010 -436386350 8094 +1906 1 1070989126 1070989126 -13 +1910 1 1978200605 1978200605 -28244 +1914 2 -1462331586 -1146055387 -21833 +1926 1 -490337498 -490337498 -16722 +1937 1 -987995271 -987995271 12954 +1940 1 950997304 950997304 -31365 +1941 1 -54793232 -54793232 -31182 +1948 3 -1446132523 735732067 -13403 +1955 1 -316678117 -316678117 7537 +1965 1 1173098061 1173098061 -13309 +1972 1 -1404921781 -1404921781 3694 +1981 1 -980869630 -980869630 6875 +1983 1 -1954890941 -1954890941 -12085 +1987 1 65956045 65956045 -6219 +1990 1 1050809633 1050809633 30090 +1995 1 1012230484 1012230484 -27401 +1999 1 -9958400 -9958400 8721 +2001 1 217476429 217476429 31795 +2002 1 1535954353 1535954353 -13847 +2004 1 1464703053 1464703053 -6073 +2009 1 -1471147786 -1471147786 -28519 +2011 1 33234633 33234633 -23671 +2013 1 1142098316 1142098316 17581 +2016 1 135341845 135341845 13078 +2017 1 44628821 44628821 -12111 +2020 2 -244778184 37730738 -7949 +2025 1 989475408 989475408 -16477 +2026 1 -1454941039 -1454941039 -9883 +2029 1 546555204 546555204 NULL +203 1 2070969353 2070969353 24819 +204 1 2018249426 2018249426 11317 +2046 1 363981930 363981930 4809 +2056 1 1941527322 1941527322 21162 +2067 0 NULL NULL 28003 +2072 1 -1652600376 -1652600376 13138 +2073 1 -856843296 -856843296 29023 +2085 1 -1179668872 -1179668872 6893 +2089 1 945683736 945683736 20014 +2092 1 1678261510 1678261510 -23540 +2105 1 1550112473 1550112473 28641 +2106 1 1597303154 1597303154 -22641 +2108 1 977292235 977292235 -10687 +213 2 -1081328752 -361944328 9690 +2131 1 -464804906 -464804906 -29895 +2138 1 -1048181367 -1048181367 15070 +2140 1 -1319686435 -1319686435 25603 +2144 1 117620760 117620760 12779 +2155 1 1126157283 1126157283 12291 +2177 1 -1960344717 -1960344717 NULL +2179 1 1394370866 1394370866 6651 +2180 1 -120704505 -120704505 -19413 +2183 1 -1947868215 -1947868215 -9196 +2186 1 -1655396452 -1655396452 -24095 +2187 1 -906986958 -906986958 26625 +2189 0 NULL NULL 26880 +2193 2 -2037628236 -598552521 7939 +2194 1 -853967587 -853967587 29892 +22 1 176792505 176792505 -22937 +2201 1 1425362689 1425362689 -26060 +2205 1 2013376408 2013376408 8929 +2214 1 1602631923 1602631923 20784 +2217 1 479566810 479566810 -25469 +2218 0 NULL NULL 16312 +2223 1 1605596441 1605596441 -6806 +2227 1 1054864168 1054864168 -26304 +2229 1 516843026 516843026 -32455 +2232 1 277582670 277582670 28606 +2241 1 810157660 810157660 -28501 +2244 1 -1699049982 -1699049982 19739 +2255 1 -1561738723 -1561738723 5014 +2262 1 1283898734 1283898734 25967 +2264 1 -425103007 -425103007 5639 +2270 1 -1429346144 -1429346144 4203 +2274 1 -1676261015 -1676261015 7474 +2277 1 -1447263708 -1447263708 26232 +2279 1 -1412187081 -1412187081 -22534 +228 1 167432368 167432368 -18533 +2283 1 530274409 530274409 11929 +2285 2 340929437 1533817551 -28395 +2295 1 -1914072976 -1914072976 NULL +2306 1 -604362582 -604362582 6900 +2320 1 -1919939921 -1919939921 32231 +2323 1 -2028355450 -2028355450 -4772 +2325 2 1471913583 1645067708 -8255 +2335 1 1281277970 1281277970 999 +2341 1 1951869763 1951869763 30376 +2348 1 -40407627 -40407627 -12880 +2358 1 -370798230 -370798230 -7058 +236 1 514833409 514833409 -11129 +2373 1 -1602792666 -1602792666 6163 +238 1 713031549 713031549 32348 +2386 1 930008274 930008274 12722 +2393 2 901084309 1852725744 28413 +2398 1 1489169773 1489169773 -26361 +2400 1 663222148 663222148 -11848 +2410 0 NULL NULL -23638 +2412 2 -1749841790 -887663189 31057 +2420 1 480849725 480849725 31706 +2426 1 62293025 62293025 -21574 +2434 1 1621606222 1621606222 9028 +244 1 860708524 860708524 12471 +2461 1 -1668974292 -1668974292 -13525 +2463 3 -655118881 2031604236 5128 +2465 1 -1819075185 -1819075185 6490 +2469 1 524808 524808 -14423 +2475 1 -1116100266 -1116100266 1100 +2476 1 -1210261177 -1210261177 -32755 +2485 2 -379643543 1594107168 -4037 +2487 0 NULL NULL -7873 +2492 1 -270683864 -270683864 21415 +2494 1 -1830870295 -1830870295 27852 +2502 1 -336625622 -336625622 1077 +2506 1 776606164 776606164 9158 +2509 1 693331761 693331761 -31537 +2512 1 -1164833898 -1164833898 17680 +2514 1 407233168 407233168 -26054 +2515 1 -601946913 -601946913 23850 +2517 1 198624903 198624903 -28784 +2524 1 -1081766449 -1081766449 10646 +2533 1 672266669 672266669 -17056 +2539 1 1090344463 1090344463 6892 +2540 1 1103878879 1103878879 8407 +255 1 -1106469823 -1106469823 -25939 +2551 1 -1762037754 -1762037754 -3286 +2553 1 1112783661 1112783661 -19479 +2560 2 -1946023520 -1493282775 23076 +2563 1 -1141652793 -1141652793 -1613 +2565 1 -1302592941 -1302592941 -9378 +2569 1 -837503491 -837503491 -17873 +2579 1 1640445482 1640445482 8410 +2580 1 1933545427 1933545427 -31881 +2587 1 -1125605439 -1125605439 -9148 +259 1 -922875124 -922875124 -30515 +2599 1 -1903090602 -1903090602 5539 +2607 0 NULL NULL NULL +2608 1 335359004 335359004 15417 +2619 2 -2019287179 1895751360 17341 +2625 1 -1897998366 -1897998366 24366 +2626 1 1620529246 1620529246 -15779 +263 2 1094778643 1807358029 -11048 +2637 1 1522208504 1522208504 -26180 +2647 1 92834720 92834720 -1223 +2649 1 659343542 659343542 21102 +2662 1 209430502 209430502 -1749 +2663 1 43983130 43983130 -16820 +2675 1 1305668933 1305668933 17014 +268 2 -203416622 860658464 -10972 +2680 1 825977391 825977391 -9845 +2682 1 -675125724 -675125724 -28867 +2688 1 -1249134513 -1249134513 -19493 +2689 1 -1343327 -1343327 6015 +2692 0 NULL NULL -31596 +2700 1 -123529324 -123529324 25454 +2712 1 -901778330 -901778330 -28146 +2714 1 1284956108 1284956108 -15341 +2715 2 962712814 1569269522 -51675 +2719 1 1516149502 1516149502 9863 +2724 1 922373046 922373046 -18269 +2725 1 257821327 257821327 11067 +2735 1 1307148254 1307148254 29834 +2745 1 1134416796 1134416796 -2410 +275 1 1517488324 1517488324 23031 +2752 1 962091264 962091264 -21268 +2762 1 314232856 314232856 -24696 +2772 1 1835749815 1835749815 -16290 +2776 1 -1801684055 -1801684055 -6046 +2786 2 -2117280385 343362793 25889 +279 1 -1709246310 -1709246310 29507 +2790 1 686081268 686081268 21792 +2791 1 -714594143 -714594143 -25692 +2803 3 493977568 923980398 2772 +2805 1 -295751373 -295751373 14041 +281 1 -42151403 -42151403 -5635 +2810 1 1844415080 1844415080 NULL +2811 1 -170643477 -170643477 22075 +2816 1 -912429611 -912429611 6226 +2821 1 829055499 829055499 1911 +2824 1 -1679120527 -1679120527 30926 +2835 1 144428297 144428297 -32688 +2842 1 889772203 889772203 5469 +2843 2 -1621721177 -887790938 6109 +2846 1 -121162464 -121162464 -27667 +2847 1 1634441052 1634441052 NULL +2848 1 -985817478 -985817478 20270 +2850 1 1618123796 1618123796 32669 +2855 2 -1770250407 1756592797 -57008 +2862 1 1956887369 1956887369 -12071 +2878 1 -906545548 -906545548 -3885 +2886 1 84231802 84231802 -32296 +289 1 -1144976744 -1144976744 -2828 +2897 2 -47662800 1211873318 13666 +2900 1 2114363167 2114363167 -26461 +2903 1 1552351592 1552351592 -14593 +2905 1 -1232183416 -1232183416 -32491 +2911 1 1483580941 1483580941 23564 +2915 1 -470798506 -470798506 20124 +2919 1 1002132158 1002132158 27039 +2933 2 -1674623501 -1484787952 12090 +2938 1 -2032576637 -2032576637 -24561 +294 1 -1817096156 -1817096156 -8927 +2941 1 -1862095575 -1862095575 11050 +2942 1 1638471881 1638471881 -26367 +296 2 -1348149160 597657990 11864 +2962 1 1042237722 1042237722 -28299 +2968 1 1556919269 1556919269 25420 +2971 1 -373541958 -373541958 4725 +2977 1 -2007662579 -2007662579 -16129 +2979 1 131031898 131031898 30056 +2984 1 1440427914 1440427914 -16815 +2986 1 -933324607 -933324607 18508 +2988 1 492639283 492639283 24600 +2991 0 NULL NULL 6451 +3002 1 -1538558250 -1538558250 2376 +3006 1 1328225044 1328225044 364 +301 1 -1924909143 -1924909143 -24092 +302 1 -1730740504 -1730740504 -31395 +3021 2 -360113158 177294487 31545 +3024 1 -891543038 -891543038 23881 +3029 1 -1198036877 -1198036877 -4676 +3031 0 NULL NULL 25683 +3036 1 -449333854 -449333854 22111 +3043 1 692666133 692666133 325 +3054 1 -973128166 -973128166 32671 +3055 1 -1198465530 -1198465530 -23194 +3058 1 -1144920802 -1144920802 21976 +3059 1 1386071996 1386071996 -11247 +3060 2 -2122509553 818313200 8398 +3067 1 1256676429 1256676429 2085 +3071 1 1129173487 1129173487 7076 +3073 1 722737062 722737062 9572 +3079 1 -882028850 -882028850 5909 +3083 1 -385247581 -385247581 6484 +3084 1 1333148555 1333148555 15532 +3089 1 584084934 584084934 -18646 +3094 1 1335803002 1335803002 -28840 +3103 1 -1622653291 -1622653291 -11956 +311 1 -1850492820 -1850492820 18430 +3111 1 -1299159155 -1299159155 -27295 +3118 0 NULL NULL 725 +3119 1 673904922 673904922 -17995 +3144 1 -758231588 -758231588 28899 +3147 1 1102069050 1102069050 -7065 +3159 2 -78240945 1127080164 45508 +3163 1 26270580 26270580 8461 +3174 1 -1871446009 -1871446009 -24248 +3183 1 1363459426 1363459426 -24763 +3190 1 297577612 297577612 NULL +3197 1 976870621 976870621 21168 +3199 1 -2086352100 -2086352100 -6306 +320 1 1198172036 1198172036 19001 +3203 1 -491377296 -491377296 -15576 +3206 1 -733756717 -733756717 -10392 +3208 1 -211669740 -211669740 -5907 +3212 1 900992177 900992177 19458 +3213 1 -1171326281 -1171326281 -31163 +3231 1 -817383093 -817383093 -705 +3232 1 1434588588 1434588588 3270 +3235 1 -287400633 -287400633 -8003 +3244 1 1303632852 1303632852 3354 +3245 1 1385883394 1385883394 18240 +3248 1 1202720813 1202720813 29434 +3249 1 206942178 206942178 NULL +3253 1 -1218871391 -1218871391 22786 +3255 1 -1212433954 -1212433954 -9368 +3263 1 -419335927 -419335927 NULL +3286 1 -1078214868 -1078214868 31688 +3300 1 1743696703 1743696703 -22858 +3307 1 -1128317466 -1128317466 -5240 +3322 1 -1544877665 -1544877665 29775 +3333 1 -462541618 -462541618 NULL +3352 1 -1621814212 -1621814212 -8532 +336 1 1376818328 1376818328 23910 +3365 1 1712411993 1712411993 -2734 +3366 1 -606214770 -606214770 21440 +3397 1 -2066134281 -2066134281 -20787 +34 1 1969650228 1969650228 7988 +3401 1 -2138343289 -2138343289 -6735 +3407 0 NULL NULL -20835 +3409 1 -337586880 -337586880 NULL +341 1 278643258 278643258 5516 +3418 2 -940504641 786565385 -8267 +342 1 -884796655 -884796655 -32403 +3421 1 -1878572820 -1878572820 -10533 +3430 1 -395499919 -395499919 29515 +3443 1 -1006768637 -1006768637 -4507 +3446 1 440393309 440393309 -11081 +345 0 NULL NULL NULL +3456 0 NULL NULL NULL +346 2 -1880877824 -938756287 -42984 +3460 1 1204325852 1204325852 5736 +3462 3 -1716506227 511836073 -31348 +3467 2 -1134786190 596802082 185 +347 1 -414207254 -414207254 5683 +3472 1 868717604 868717604 -12628 +3478 1 1772545157 1772545157 18675 +3493 1 -890552359 -890552359 -26666 +350 1 330302407 330302407 -13144 +3507 1 2032271149 2032271149 -21180 +3510 1 197056787 197056787 -3190 +3512 1 636901402 636901402 31396 +3533 1 1076088102 1076088102 NULL +3534 0 NULL NULL -26284 +3541 1 -996953616 -996953616 NULL +3542 1 459269456 459269456 -15053 +355 1 1258721737 1258721737 -24884 +3554 1 48554395 48554395 NULL +3555 2 41063276 458190500 -7242 +3563 1 1332181668 1332181668 -7533 +3566 1 -519978947 -519978947 -3883 +3567 1 410340192 410340192 11238 +3568 0 NULL NULL -10516 +3579 1 -1426893312 -1426893312 29828 +3588 2 696229550 850625480 48095 +3599 1 2069258195 2069258195 -25112 +3606 1 -1032306832 -1032306832 -11286 +3608 1 773730574 773730574 21814 +3609 1 -1380191654 -1380191654 10457 +361 1 -434747475 -434747475 24663 +3613 1 1191238870 1191238870 -25531 +3622 2 -1583445177 2057486961 -7988 +3625 1 -1656822229 -1656822229 -1433 +3630 1 693876030 693876030 27981 +3637 1 929560791 929560791 -20411 +364 1 1336365018 1336365018 4138 +3648 1 1142481557 1142481557 -17502 +3663 1 -886741158 -886741158 -1900 +3664 1 -186600427 -186600427 -10247 +367 1 -1324624386 -1324624386 22505 +3672 1 1825828852 1825828852 -27707 +3673 1 -362603422 -362603422 -10629 +3677 1 470575409 470575409 18190 +3680 1 1124269631 1124269631 -9614 +3682 1 -1718163874 -1718163874 -1510 +3690 1 1500437122 1500437122 7678 +3691 1 -664111469 -664111469 3714 +3701 1 760466914 760466914 -4059 +3702 1 -1423467446 -1423467446 4416 +3703 1 1796950944 1796950944 32096 +3707 1 1377359511 1377359511 1387 +3722 1 -1322736153 -1322736153 -5283 +3724 1 1625751062 1625751062 -7323 +3725 2 -2119539915 1911834442 26932 +3728 2 -938342473 -800799595 -45459 +3739 1 -192181579 -192181579 17242 +3747 1 1001732850 1001732850 16062 +3749 1 1027147837 1027147837 18482 +375 1 -1754347372 -1754347372 14493 +3755 1 -7929246 -7929246 NULL +3763 1 -679230165 -679230165 -909 +3764 1 -2027812975 -2027812975 27922 +3769 1 -1431196400 -1431196400 -7531 +3770 2 -1727003541 -1627366321 29421 +378 1 -1270523286 -1270523286 -20876 +3781 2 -161884324 141492068 -36249 +3789 1 -139448716 -139448716 -21281 +379 1 1625699061 1625699061 -2518 +3810 1 -1043413503 -1043413503 -30534 +3812 1 -870900240 -870900240 -31793 +3823 1 1563120121 1563120121 -32541 +3824 1 1372224352 1372224352 -260 +383 2 -191434898 1063524922 -2585 +3830 1 1443426396 1443426396 -31551 +3835 1 133276416 133276416 -3540 +3841 1 -901079162 -901079162 8466 +3848 1 1436480682 1436480682 22594 +3858 1 1925283040 1925283040 -5435 +3860 1 -423945469 -423945469 31892 +3866 2 -88576126 436093771 -7932 +3874 1 -1603071732 -1603071732 15589 +3879 1 461680901 461680901 -30818 +388 1 -66112513 -66112513 -6933 +3887 1 476919973 476919973 24715 +3901 1 -1909635960 -1909635960 -27139 +3904 1 1473503196 1473503196 -20532 +3907 1 -373038706 -373038706 -13474 +391 1 1107258026 1107258026 -9375 +3910 0 NULL NULL 26288 +3911 1 -1283465451 -1283465451 -14055 +3913 1 1506907734 1506907734 -23852 +392 1 1664736741 1664736741 -13904 +3932 1 2145269593 2145269593 -31707 +3940 1 923353533 923353533 -7024 +3941 1 -734921821 -734921821 7654 +3945 1 -1758125445 -1758125445 3891 +3946 1 523289079 523289079 8727 +3949 1 1797164732 1797164732 -28646 +3958 1 65172363 65172363 NULL +3960 1 1509573831 1509573831 -19213 +3961 1 -1955647385 -1955647385 -302 +3962 0 NULL NULL -27035 +3965 1 771827308 771827308 -10452 +3974 2 -253084551 670667262 22079 +3980 1 -564495517 -564495517 -6334 +3990 1 -1392487784 -1392487784 -15393 +4018 1 -396852483 -396852483 -12896 +4020 1 -1447140800 -1447140800 20052 +4024 1 -202035134 -202035134 -25412 +4030 1 -216495498 -216495498 -21693 +4037 1 1003667927 1003667927 2335 +4051 1 1052255272 1052255272 12642 +4054 1 1998185704 1998185704 -733 +4056 1 -1516259168 -1516259168 -23527 +4075 0 NULL NULL -18547 +4078 1 727802564 727802564 16437 +4088 1 947846543 947846543 5972 +41 1 -203911033 -203911033 31740 +412 2 -505879576 2144454927 -26499 +417 1 152891873 152891873 NULL +425 1 1336194583 1336194583 32584 +443 1 596242714 596242714 -11929 +454 1 -1227085134 -1227085134 17107 +455 1 1159353899 1159353899 -254 +462 1 1677444379 1677444379 -7871 +470 1 -181523892 -181523892 -7846 +471 1 -207899360 -207899360 -30730 +481 1 536235636 536235636 NULL +482 1 765084282 765084282 NULL +485 1 874824958 874824958 11979 +489 1 -928013434 -928013434 -21009 +49 1 1673218677 1673218677 -20729 +490 1 1229172951 1229172951 -2617 +491 1 -201554470 -201554470 4747 +5 1 -1063673827 -1063673827 -18933 +500 1 1216016081 1216016081 NULL +501 2 -1469463456 715333063 36766 +504 1 851975276 851975276 2671 +522 1 -853606287 -853606287 22074 +523 1 149701884 149701884 15923 +524 1 -1326025787 -1326025787 -29218 +530 1 -1851680302 -1851680302 -22558 +535 1 888896424 888896424 NULL +579 1 -1804244259 -1804244259 3009 +583 1 -1554325042 -1554325042 26859 +584 1 -2017279089 -2017279089 -24305 +586 1 -310343273 -310343273 5011 +587 1 1485934602 1485934602 -4799 +590 1 -186764959 -186764959 -16247 +597 1 1577999613 1577999613 -9584 +601 1 -592568201 -592568201 17086 +612 1 1131663263 1131663263 -7564 +615 1 2097519027 2097519027 23956 +618 1 -412333994 -412333994 32063 +65 1 919363072 919363072 -8685 +650 1 1222217404 1222217404 -6494 +658 1 -1254129998 -1254129998 32210 +66 1 2013444562 2013444562 -32498 +661 2 -407089271 1045719941 26557 +663 1 -1261099087 -1261099087 -4209 +664 1 899810881 899810881 24019 +677 1 -1038565721 -1038565721 -3449 +68 1 879290165 879290165 -4169 +681 1 -893863493 -893863493 -22701 +687 1 1888675011 1888675011 32124 +688 0 NULL NULL 16764 +690 1 -1112062809 -1112062809 NULL +691 1 -1156193121 -1156193121 25636 +6923604860394528768 1 -1095938490 -1095938490 -13325 +6924820982050758656 1 -1709117770 -1709117770 26324 +6926925215281774592 1 987734049 987734049 7826 +6927260280037097472 1 1668094749 1668094749 15578 +6928080429732536320 1 1300798829 1300798829 -17840 +6933001829416034304 1 2089198703 2089198703 -16998 +6933451028794925056 1 1776456512 1776456512 -16367 +6933731240564056064 1 780859673 780859673 18910 +6934570741217755136 1 491758252 491758252 -17642 +694 1 -2015780444 -2015780444 NULL +6947488599548215296 1 1141595012 1141595012 15279 +695 1 -521886983 -521886983 17132 +6960137166475911168 1 -558456218 -558456218 -11769 +6962726713896484864 1 2051470532 2051470532 -4923 +6963217546192322560 1 -1340213051 -1340213051 10083 +6964585306125008896 1 2146312499 2146312499 10544 +6967631925774639104 1 373031319 373031319 NULL +6969599299897163776 1 -2042831105 -2042831105 -5135 +6974475559697768448 1 1493555718 1493555718 -1725 +6982145326341423104 1 -941433219 -941433219 -27049 +6987889924212203520 1 -2053551539 -2053551539 25197 +6991316084916879360 1 -1345085327 -1345085327 20655 +6996686091335884800 1 -1738775004 -1738775004 -29442 +7006803044329021440 1 1614297403 1614297403 -398 +7013693841855774720 1 656187584 656187584 26158 +7014537632150224896 1 -44426049 -44426049 -4451 +7017956982081404928 1 -828724467 -828724467 -244 +7022349041913978880 1 -1096013673 -1096013673 505 +7027529814236192768 1 -1988508336 -1988508336 -4804 +7031339012080549888 1 1182390248 1182390248 -696 +7039820685967343616 1 -483740394 -483740394 -3517 +7045967493826387968 1 -1669227632 -1669227632 7066 +7049773031131283456 1 814544198 814544198 -4726 +7052226236896256000 1 1119976718 1119976718 -19270 +7054271419461812224 1 -1266138408 -1266138408 -12422 +7054938591408996352 1 -352146259 -352146259 -23137 +7060236714847412224 1 -1858443953 -1858443953 552 +7061498706968428544 1 -290558484 -290558484 29999 +7061809776248545280 1 -469870330 -469870330 28413 +7062382339142156288 1 536876888 536876888 -10513 +7062605127422894080 1 -1614194712 -1614194712 NULL +7065344324692443136 1 -1881263242 -1881263242 -18672 +7068517339681259520 1 -1871209811 -1871209811 -24186 +7069729473166090240 0 NULL NULL -20517 +707 1 1343581455 1343581455 22320 +7077311975029555200 1 1103797891 1103797891 20348 +7078641038157643776 0 NULL NULL -13499 +7080269176324218880 1 -337073639 -337073639 -19374 +7084659344078970880 1 963854010 963854010 22655 +7086206629592252416 1 -1106685577 -1106685577 21418 +7091300332052062208 0 NULL NULL 13145 +7099005292698550272 1 917891418 917891418 -10874 +71 1 -20639382 -20639382 NULL +7107604675626008576 1 1949494660 1949494660 11120 +7125231541858205696 1 -2111312205 -2111312205 -7467 +7128222874437238784 1 -283378057 -283378057 29171 +7130159794259353600 1 -837506172 -837506172 4104 +7130306447560826880 1 77063155 77063155 -7715 +7149417430082027520 1 -1352545619 -1352545619 -22915 +7153922334283776000 0 NULL NULL -17426 +7157247449513484288 1 -36038293 -36038293 NULL +7164349895861829632 1 -1153978907 -1153978907 3316 +7165364563962191872 1 -1272838092 -1272838092 -24518 +7166263463731421184 1 -1838281337 -1838281337 -15578 +7175638927948562432 1 596280431 596280431 30532 +7186401810812059648 1 1430614653 1430614653 8243 +7195454019231834112 1 -1419573027 -1419573027 25777 +7198687580227043328 1 563507584 563507584 -20192 +7199539820886958080 0 NULL NULL NULL +7204802700490858496 1 -1719427168 -1719427168 15176 +7210160489915236352 1 -1353470095 -1353470095 -12755 +7212016545671348224 1 1309976380 1309976380 NULL +7212090742612467712 1 -1067083033 -1067083033 5549 +7217123582035116032 1 -90029636 -90029636 -3165 +7220131672176058368 1 1017953606 1017953606 -25780 +7220581538170413056 1 615661052 615661052 21402 +7223569671814987776 1 -1004204053 -1004204053 -14973 +7226360892091416576 1 -935723237 -935723237 NULL +7229607057201127424 1 -1818380492 -1818380492 NULL +723 1 1616782308 1616782308 -13972 +7231399302953377792 1 1990792684 1990792684 21665 +7232273749940838400 1 -1231821948 -1231821948 -3373 +7235109456886816768 1 -2098078720 -2098078720 26181 +7237310132329488384 1 -1061859761 -1061859761 15011 +7238339720750948352 1 -1770229099 -1770229099 -12193 +724 1 -616724730 -616724730 -20663 +7242751359672631296 1 -2016985611 -2016985611 -31659 +7249443195032985600 1 -51612681 -51612681 7180 +7250237407877382144 1 -772236518 -772236518 8918 +7254710367022645248 1 1911809937 1911809937 14741 +7255302164215013376 1 1281159709 1281159709 -5118 +7259955893466931200 0 NULL NULL 21509 +7260908278294560768 1 826519029 826519029 -23250 +7265141874315517952 1 -571587579 -571587579 26910 +7266437490436341760 1 177391521 177391521 22870 +7271786885641666560 1 936752497 936752497 -19291 +7271887863395459072 1 -94709066 -94709066 -21708 +7274777328897802240 1 482977302 482977302 32611 +7291432593139507200 1 1570238232 1570238232 21529 +7295502697317097472 1 210728566 210728566 -28906 +7295926343524163584 1 1182646662 1182646662 -28366 +7296164580491075584 1 1412102605 1412102605 -797 +7299197687217856512 1 172075892 172075892 -12564 +73 1 488014426 488014426 -3405 +7304839835188609024 1 1961954939 1961954939 -25417 +7308289763456000000 1 -1423477356 -1423477356 -1335 +7309156463509061632 1 1304431147 1304431147 1211 +7310869618402910208 1 -359943425 -359943425 -16301 +7319711402123149312 1 1036391201 1036391201 31125 +7333512171174223872 1 -332125121 -332125121 -24885 +7339426767877390336 1 538268118 538268118 19302 +7343171468838567936 1 879289168 879289168 4032 +7344029858387820544 1 -1669848306 -1669848306 12263 +7345991518378442752 1 849859032 849859032 10916 +7347732772348870656 1 -1800413845 -1800413845 -670 +7348598907182800896 1 -1940205653 -1940205653 12411 +735 1 115111911 115111911 6240 +7354813692542304256 1 1426152053 1426152053 -11232 +7359004378440146944 1 1082837515 1082837515 11811 +736 1 -1183469360 -1183469360 -31514 +7368920486374989824 1 -1822850051 -1822850051 -15064 +7370078518278397952 1 -215703544 -215703544 -27284 +7370803940448305152 1 -533281137 -533281137 25621 +7375521127126089728 1 -688296901 -688296901 NULL +7376467688511455232 1 -348628614 -348628614 -6611 +7378993334503694336 1 1870464222 1870464222 -24911 +738 1 -453739759 -453739759 -14597 +7381659098423926784 1 867587289 867587289 22463 +7384150968511315968 1 1447462863 1447462863 NULL +7386087924003676160 1 2038381675 2038381675 7603 +7391208370547269632 1 -743680989 -743680989 -22217 +7393308503950548992 1 -849551464 -849551464 4400 +7394967727502467072 1 -1983567458 -1983567458 -23672 +7401968422230032384 1 -504529358 -504529358 14021 +7410096605330227200 1 1987336880 1987336880 -7948 +7410872053689794560 1 -916344293 -916344293 -15115 +7411793502161182720 1 -177025818 -177025818 -32000 +7412924364686458880 1 1817671655 1817671655 12674 +7414865343000322048 1 -829717122 -829717122 15626 +7418271723644403712 1 1202593021 1202593021 24768 +743 1 1004241194 1004241194 -10277 +7432428551399669760 1 -805288503 -805288503 -9171 +7432998950057975808 1 -434656160 -434656160 -24336 +7436133434239229952 1 203688965 203688965 -6874 +7440265908266827776 1 -1425942083 -1425942083 -6396 +7450416810848313344 1 1393262450 1393262450 29498 +7452756603516190720 1 -2009569943 -2009569943 -11008 +7454442625055145984 1 -267554590 -267554590 21377 +7454632396542074880 1 859140926 859140926 4749 +7461153404961128448 1 -23865350 -23865350 -17166 +7471208109437304832 1 -1603374745 -1603374745 18346 +7473537548003352576 1 -1439424023 -1439424023 1350 +7486884806277611520 1 1516236846 1516236846 5190 +7487338208419823616 1 1974939899 1974939899 5445 +7487538600082554880 1 2068538934 2068538934 -19330 +7490717730239250432 1 -1829691116 -1829691116 -3219 +7491898395977523200 1 1265528735 1265528735 -12811 +7492436934952574976 0 NULL NULL 20179 +7497276415392407552 1 1543611951 1543611951 -21805 +7497306924248834048 1 550594651 550594651 10807 +7500716020874674176 1 -1953605752 -1953605752 20243 +7514552840617558016 1 334208532 334208532 26338 +7517159036469575680 1 -1437126017 -1437126017 7697 +7524958388842078208 1 -664856187 -664856187 -7027 +7528074274555305984 1 550186724 550186724 27999 +7528211148397944832 1 -512198016 -512198016 -17944 +7534042483076857856 1 1645753684 1645753684 -21662 +7534145866886782976 1 -532755480 -532755480 26155 +7534549597202194432 1 2044130430 2044130430 -30163 +7545689659010949120 1 -1380678829 -1380678829 6756 +7548958830580563968 1 1836499981 1836499981 6913 +7549858023389003776 0 NULL NULL -13226 +7555301305375858688 1 1916363472 1916363472 2652 +7566273236152721408 1 881673558 881673558 12814 +7569249672628789248 1 -1952235832 -1952235832 -28689 +7570474972934488064 1 -432218419 -432218419 28118 +7573530789362262016 0 NULL NULL -12626 +7575087487730196480 1 1421779455 1421779455 -30020 +7581052107944361984 1 1493152791 1493152791 -15538 +7581614118458335232 1 -1129489281 -1129489281 -2421 +7584007864107778048 1 1410516523 1410516523 -22910 +7592440105065308160 0 NULL NULL -13713 +7593521922173419520 1 1260480653 1260480653 20023 +7596563216912211968 1 605946758 605946758 31242 +7599019810193211392 1 -2112149052 -2112149052 -11528 +7608447395949109248 1 882762933 882762933 1356 +7614435638888210432 1 735600165 735600165 17129 +7620183559667081216 1 -1967660827 -1967660827 15688 +7621013099259527168 1 -553349593 -553349593 -6927 +7625728883085025280 1 -1699044525 -1699044525 28558 +7626715182847090688 1 1905812339 1905812339 7153 +763 1 -1933374662 -1933374662 -408 +7637152193832886272 1 1880017800 1880017800 20036 +7647481735646363648 1 1164895226 1164895226 -15024 +7648729477297987584 0 NULL NULL -28551 +7652123583449161728 1 472901914 472901914 -1679 +7659279803863146496 1 1541249928 1541249928 -9609 +7662037650719850496 1 -175727228 -175727228 820 +7675009476762918912 1 522895626 522895626 -12709 +7678790769408172032 1 -1313618168 -1313618168 -19681 +7682327310082531328 1 879500678 879500678 30154 +7686992843032010752 1 -897622427 -897622427 14144 +7689489436826804224 1 -909127123 -909127123 20884 +7690986322714066944 1 -2124994385 -2124994385 276 +7691062622443044864 1 1516165279 1516165279 -17531 +7696737688942567424 1 -269702086 -269702086 20059 +7697541332524376064 1 -1070951602 -1070951602 -6950 +7700734109530767360 1 194754262 194754262 30199 +7701723309715685376 1 -1831957182 -1831957182 14261 +7705445437881278464 1 527598540 527598540 3374 +7710447533880614912 1 -583908704 -583908704 -11158 +7718825401976684544 1 -1226425562 -1226425562 10761 +7720187583697502208 1 -1366059787 -1366059787 22837 +7731443941834678272 1 -1092872261 -1092872261 31948 +7735566678126616576 1 1626868156 1626868156 -4819 +774 1 449788961 449788961 -28736 +7741854854673367040 1 -1743938290 -1743938290 27830 +7746402369011277824 1 -1735287250 -1735287250 -30748 +7747874976739016704 1 315055746 315055746 -11384 +7748799008146366464 1 -540401598 -540401598 6074 +7752740515534422016 1 1851654062 1851654062 28447 +7753359568986636288 1 -816661030 -816661030 23910 +7753882935005880320 1 1190302173 1190302173 -14888 +7761834341179375616 1 1273877405 1273877405 -30360 +7762823913046556672 1 1198701102 1198701102 16767 +7765456790394871808 1 1074488452 1074488452 -4286 +7768984605670604800 0 NULL NULL 21606 +7775034125776363520 1 -1628799508 -1628799508 11877 +7778936842502275072 1 -1702587308 -1702587308 -6502 +7779486624537370624 1 -1998652546 -1998652546 -8795 +7779735136559579136 1 -1228063838 -1228063838 -13393 +7782245855193874432 1 618991041 618991041 6320 +7784169796350730240 1 -958165276 -958165276 -11083 +7784489776013295616 1 -158848747 -158848747 26915 +779 1 -1939362279 -1939362279 -24422 +7790728456522784768 1 1575091509 1575091509 32589 +7792036342592348160 1 -538812082 -538812082 -10317 +7794244032613703680 1 1301426600 1301426600 -3222 +78 1 95356298 95356298 133 +780 1 -737624128 -737624128 -29646 +7800332581637259264 1 592011541 592011541 -17772 +7801697837312884736 1 -116484575 -116484575 -11863 +7818464507324121088 1 -2119724898 -2119724898 2833 +782 1 -1552053883 -1552053883 10702 +7823874904139849728 1 344239980 344239980 -23546 +784 1 44595790 44595790 21407 +7843804446688264192 1 -397951021 -397951021 -23124 +7844258063629852672 1 972835688 972835688 -20591 +7845953007588401152 0 NULL NULL -27232 +7857878068300898304 1 977624089 977624089 2616 +7868367829080506368 1 658008867 658008867 NULL +7870277756614623232 1 985634256 985634256 -20752 +7871189141676998656 1 1363568842 1363568842 -11006 +7871554728617025536 1 -309571354 -309571354 28146 +7874764415950176256 1 2127682701 2127682701 -11187 +7885697257930588160 1 1992977592 1992977592 -3813 +7888238729321496576 1 978044705 978044705 NULL +789 0 NULL NULL 31140 +7892026679115554816 1 626941809 626941809 -22922 +7892281003266408448 1 -371779520 -371779520 -26138 +7898670840507031552 1 776459017 776459017 -22689 +7909645665163804672 1 -1289665817 -1289665817 -20188 +7917494645725765632 1 2076370203 2076370203 20411 +7919597361814577152 1 2125311222 2125311222 6781 +7921639119138070528 1 -1030565036 -1030565036 31432 +7922443154272395264 1 -1333770335 -1333770335 -12904 +7926898770090491904 1 1582537271 1582537271 14176 +7933040277013962752 1 -1061222139 -1061222139 -30677 +7936149988210212864 1 1769324649 1769324649 -10815 +7944741547145502720 1 372099650 372099650 -12203 +7947544013461512192 1 -1184620079 -1184620079 -15501 +7948803266578161664 1 1766517223 1766517223 -28864 +7955126053367119872 1 1447438548 1447438548 -25988 +7961515985722605568 1 866084887 866084887 NULL +7961909238130270208 1 -1138530007 -1138530007 22852 +797 1 996831203 996831203 5550 +7983789401706094592 1 230954385 230954385 -29239 +7989119273552158720 0 NULL NULL -4877 +7989160253372817408 1 1848935036 1848935036 1393 +7997694023324975104 1 -1826997220 -1826997220 10216 +7998357471114969088 1 346562088 346562088 -18387 +7998687089080467456 0 NULL NULL 5591 +80 0 NULL NULL NULL +8000440057238052864 1 1251556414 1251556414 4989 +8002769767000145920 1 1668446119 1668446119 -12016 +8004633750273925120 1 -1754203978 -1754203978 21081 +8011181697250631680 1 1773417290 1773417290 -6948 +8011602724663336960 1 667283966 667283966 756 +8014986215157530624 1 -799249885 -799249885 -21922 +8017403886247927808 1 -1491722659 -1491722659 13020 +803 1 -2096425960 -2096425960 -11047 +8045070943673671680 1 435407142 435407142 30764 +8048726769133592576 1 -406264741 -406264741 -12239 +8059284960252731392 1 -251576563 -251576563 896 +8069531888205086720 1 1978171687 1978171687 9469 +8071961599867387904 1 52667480 52667480 -4218 +8073733016154431488 1 1815882183 1815882183 -22923 +8079573715140485120 1 503752931 503752931 NULL +808 1 -1836166334 -1836166334 4536 +8087737899452432384 1 -2137168636 -2137168636 18900 +809 1 -682333536 -682333536 -21506 +8091421389575282688 0 NULL NULL 22232 +8099215208813903872 1 492968645 492968645 -16680 +8100036735858401280 1 -146961490 -146961490 -30304 +8109381965028548608 1 2022944702 2022944702 -11110 +8111757081791733760 1 -234758376 -234758376 -5314 +8113585123802529792 1 129675822 129675822 -17254 +8116738401948377088 1 1914993018 1914993018 24782 +812 1 -954480325 -954480325 19874 +8120593157178228736 1 -1379039356 -1379039356 -31709 +8129551357032259584 1 323817967 323817967 26664 +8135164922674872320 1 -1459528251 -1459528251 -3436 +8142241016679735296 1 -163859725 -163859725 -5699 +8143462899383345152 1 644934949 644934949 2784 +8144552446127972352 1 2083836439 2083836439 4081 +8145745969573666816 1 467753905 467753905 -21233 +8145750910080745472 1 1275228381 1275228381 -30482 +8146288732715196416 1 -728015067 -728015067 -8293 +8146492373537660928 1 1316369941 1316369941 18535 +8148211378319933440 0 NULL NULL 26869 +815 1 1910930064 1910930064 23177 +8150115791664340992 1 793047956 793047956 -32022 +8156018594610790400 1 1384071499 1384071499 -12071 +8156782979767238656 1 -1651993300 -1651993300 2756 +8160569434550403072 1 -1808960215 -1808960215 19986 +8160662610166194176 1 -310584775 -310584775 27077 +8163948965373386752 1 1968813171 1968813171 -2835 +8168742078705262592 1 -303747347 -303747347 -8286 +8169878743136043008 1 1765874562 1765874562 -19545 +8171188598958407680 1 1996235654 1996235654 NULL +8183233196086214656 1 1450881368 1450881368 -2827 +8184799300477943808 1 -579916775 -579916775 9069 +8190539859890601984 1 1418228573 1418228573 7343 +8190967051000659968 1 604460005 604460005 -562 +8192304692696383488 1 494570380 494570380 -9528 +8195103847607967744 1 15020431 15020431 18555 +8199513544090730496 1 758926227 758926227 16693 +820 2 -409673169 746904285 47295 +8201303040648052736 1 -774406989 -774406989 -18385 +8201491077550874624 1 1677197847 1677197847 -19295 +8208354137450766336 1 1377144283 1377144283 23205 +8210813831744118784 1 139661585 139661585 31502 +8213810702473183232 1 587797446 587797446 -6513 +8219326436390821888 1 2064448036 2064448036 -17689 +8220104397160169472 1 -1274158260 -1274158260 27071 +8221561626658881536 1 -1626062014 -1626062014 -4211 +8222714144797368320 1 -318380015 -318380015 -10532 +8223732800007864320 1 -599396052 -599396052 7579 +823 1 1660088606 1660088606 NULL +8230371298967609344 1 1660278264 1660278264 24436 +8235179243092090880 1 187893585 187893585 -28932 +8244041599171862528 1 402173272 402173272 -7201 +8254763178969915392 1 658850444 658850444 18972 +8268875586442256384 1 1271280812 1271280812 6115 +8269730157217062912 1 127051381 127051381 4952 +8272001752345690112 1 3999930 3999930 22006 +8279056098670198784 1 2133492883 2133492883 -240 +8282648443538710528 1 -402441123 -402441123 -19427 +8283099811330506752 1 737149747 737149747 16195 +8286706213485297664 1 -916495008 -916495008 6587 +8287522765741301760 1 -1817564067 -1817564067 -27705 +8290014929764040704 1 -1424027104 -1424027104 -25624 +8290944180915871744 1 684561551 684561551 -24115 +8294315622451740672 1 -43858652 -43858652 29922 +8295110846998233088 1 -1945738830 -1945738830 19917 +83 1 -684022323 -684022323 -23836 +8302473563519950848 1 -1524081566 -1524081566 28358 +8316336224427483136 1 345556325 345556325 -18485 +8323460620425330688 1 -1524554771 -1524554771 24298 +8325227661920133120 1 -178568841 -178568841 28000 +8332670681629106176 1 -314935936 -314935936 21932 +8333523087360901120 1 -442732016 -442732016 NULL +8337549596011102208 1 904604938 904604938 16110 +8345435427356090368 1 323919214 323919214 198 +835 1 -1054609414 -1054609414 -4159 +8351163199364390912 1 391186487 391186487 -232 +8362046808797306880 1 89366322 89366322 -31764 +8365058996333953024 1 -2043805661 -2043805661 -14280 +8367680396909404160 1 -1269216718 -1269216718 -12517 +8368012468775608320 1 -1665164127 -1665164127 21941 +837 1 170870820 170870820 13161 +8371939471056470016 1 826143442 826143442 -22000 +8372408423196270592 1 564349193 564349193 -29468 +8372588378498777088 1 1321678350 1321678350 30936 +8374321007870836736 1 -329336519 -329336519 -15874 +8376440110255243264 1 1665724041 1665724041 3325 +8383159090746204160 1 605141554 605141554 -19276 +8388363436324085760 1 -707108808 -707108808 22678 +8391407951622815744 0 NULL NULL 19968 +8391785334471589888 1 -630900418 -630900418 -15957 +8396433451610652672 1 -180280420 -180280420 28940 +8398862954249560064 1 669871113 669871113 -22447 +8407869317250220032 1 -1240912824 -1240912824 NULL +8410599906334097408 1 -1606567895 -1606567895 17701 +8411494452500930560 1 -1568646283 -1568646283 28551 +8415171956168417280 1 541118710 541118710 19862 +8416121695917498368 1 63706286 63706286 18140 +8417381121663746048 1 1458051497 1458051497 -24267 +8419958579638157312 1 -99916247 -99916247 18690 +8424515140664360960 1 1847210729 1847210729 -20112 +8435912708683087872 1 -2081809883 -2081809883 -19028 +845 1 -1026746699 -1026746699 14234 +8451612303224520704 1 -971203543 -971203543 26241 +8454154705460666368 1 -1421396891 -1421396891 -8321 +8455496814886002688 1 107680423 107680423 6379 +8457906374051020800 1 106847364 106847364 -30244 +8461498293348065280 1 1636364987 1636364987 3186 +8463868417649524736 1 -1643714866 -1643714866 25986 +8467976965865799680 1 916057807 916057807 -23622 +8470141334513098752 0 NULL NULL 30861 +8472429318602268672 1 -308225568 -308225568 -16518 +8473699639908261888 1 -591879497 -591879497 -5829 +8487573502287478784 1 1895282160 1895282160 27787 +8489584373231919104 1 1416850873 1416850873 -18659 +8489735221193138176 1 -1124028213 -1124028213 29333 +85 1 -913906252 -913906252 -3202 +8501910015960735744 1 1579460630 1579460630 -2060 +8508401924853850112 1 -1578387726 -1578387726 -2825 +8509508263705477120 1 1107757211 1107757211 -20934 +8514851182589771776 1 415234946 415234946 -13805 +8514979402185596928 1 1902676205 1902676205 NULL +8515682078777081856 1 -1026458834 -1026458834 14331 +8518454006987948032 1 -379174037 -379174037 -22941 +8519937082746634240 1 -1745449855 -1745449855 -28566 +8523972434954510336 1 2134433675 2134433675 17720 +8524940073536954368 1 476858779 476858779 24488 +8525336514806317056 1 350802495 350802495 -14405 +8525894870444638208 1 1216287232 1216287232 -9735 +8532016240026279936 1 -1726585032 -1726585032 -7172 +8536948829863198720 1 1723691683 1723691683 -6024 +8540237852367446016 1 398960205 398960205 2728 +8543177193114779648 1 2048533360 2048533360 18637 +8547243497773457408 1 -534991774 -534991774 29721 +8551446856960942080 1 -1312782341 -1312782341 24446 +8553195689344991232 1 566646177 566646177 -9065 +8554899472487596032 1 -491882534 -491882534 -13978 +8555933456197828608 0 NULL NULL 24105 +8555948987770511360 1 107941738 107941738 18071 +8557218322962644992 1 -1210550573 -1210550573 22278 +8558000156325707776 1 -370901197 -370901197 -30638 +8560526613401714688 1 1592467112 1592467112 -16622 +8569030475428511744 1 1743671220 1743671220 -25166 +8570983266408103936 1 950545385 950545385 NULL +8571268359622172672 1 1187495452 1187495452 -6384 +8573305425181941760 1 1583280136 1583280136 14089 +8577096957495025664 0 NULL NULL 7954 +8579974641030365184 1 -1545388906 -1545388906 -3619 +8583916402383601664 1 -733239404 -733239404 8551 +8613562211893919744 1 -1109134719 -1109134719 -21357 +8625937019655200768 1 272086526 272086526 -6736 +8631515095562887168 1 -1244527286 -1244527286 -9494 +8637720762289659904 1 1669519977 1669519977 NULL +8639254009546055680 1 477584560 477584560 26952 +8641221723991433216 1 -1531040609 -1531040609 18350 +8643198489997254656 1 -1079086534 -1079086534 10273 +8644602243484803072 1 -1218592418 -1218592418 -23663 +8649296591032172544 1 -1744964279 -1744964279 -13979 +8652485812846567424 1 1372705672 1372705672 10699 +8656571350884048896 0 NULL NULL -16002 +8660248367767076864 1 1520375588 1520375588 -16872 +8665969966920990720 1 1372982791 1372982791 -25596 +8666178591503564800 1 -1565785026 -1565785026 -21025 +8677632093825916928 1 2040926345 2040926345 30632 +8677794924343164928 1 115470151 115470151 -20409 +868 1 -2133145181 -2133145181 -14644 +8682955459667951616 1 2009215103 2009215103 -25282 +8687042963221159936 1 -870624802 -870624802 3063 +8688483860094599168 1 -273937943 -273937943 -25734 +8693036785094565888 1 2090496825 2090496825 NULL +8697823501349609472 1 922553769 922553769 -14597 +8698055291501543424 1 -1755088362 -1755088362 27905 +8708232769657815040 1 6526476 6526476 31135 +8708845895460577280 1 1860113703 1860113703 -27553 +871 1 915505006 915505006 -9496 +8714829359200747520 1 672919099 672919099 23834 +8716401555586727936 1 -789126455 -789126455 8188 +8720504651219001344 1 825677248 825677248 18820 +8723248113030782976 1 144499388 144499388 NULL +873 1 842283345 842283345 NULL +8731960288562044928 1 869288953 869288953 7392 +8734584858442498048 1 -946830673 -946830673 9962 +8736061027343859712 1 -1974972123 -1974972123 -28084 +874 1 58313734 58313734 6367 +8752150411997356032 1 -1502924486 -1502924486 913 +8759089349412847616 1 1972940844 1972940844 16439 +8759184090543857664 1 435426302 435426302 -373 +8760285623204290560 1 -573787626 -573787626 -24296 +8761174805938331648 1 1205391962 1205391962 28048 +8769199243315814400 1 2100377172 2100377172 25732 +8773222500321361920 1 217823040 217823040 4261 +8775009214012456960 1 -213198503 -213198503 -29988 +8779073705407963136 1 -1979314577 -1979314577 -31967 +8779711700787298304 1 -859535015 -859535015 27960 +878 1 290601612 290601612 -21723 +8780196485890555904 1 -607285491 -607285491 -9183 +8782900615468302336 1 -1411407810 -1411407810 -12396 +8783241818558193664 1 -714270951 -714270951 NULL +8785153741735616512 1 1028092807 1028092807 15530 +8792059919353348096 1 -745678338 -745678338 -10569 +8793387410919038976 1 -1058166020 -1058166020 -1011 +8795069490394882048 1 1366402722 1366402722 -5946 +8806507556248731648 1 1190554937 1190554937 32734 +8808467247666241536 1 -1706867123 -1706867123 297 +8811693967537774592 1 1731764471 1731764471 24299 +8815398225009967104 1 -1701502632 -1701502632 NULL +8817665768680906752 1 1550375386 1550375386 -24320 +8822384228057604096 1 -1371840597 -1371840597 26579 +8825059717746376704 1 872554087 872554087 12802 +8829545979081744384 0 NULL NULL -27844 +883 1 -1554130090 -1554130090 12048 +8836228556823977984 1 1499399891 1499399891 -26061 +8837420822750314496 1 2052773366 2052773366 -29475 +8849475396952514560 1 718692886 718692886 NULL +8850055384477401088 1 1503176016 1503176016 -20657 +8853989376829833216 1 -1505397109 -1505397109 5196 +8854495099223375872 1 2065408093 2065408093 -12588 +8854677881758162944 1 1883400319 1883400319 -32263 +8854715632851345408 1 1301997393 1301997393 22511 +8856674723376668672 1 -4943292 -4943292 NULL +8868529429494071296 1 1830870769 1830870769 19003 +8871707618793996288 1 -677778959 -677778959 NULL +8875745082589929472 1 -1460613213 -1460613213 -28968 +888 1 1012696613 1012696613 15862 +8895174927321243648 1 -522450861 -522450861 30921 +8896237972875370496 1 1540680149 1540680149 -31404 +8897901899039473664 1 -535056977 -535056977 3228 +8899122608190930944 1 -2146432765 -2146432765 -1067 +8900180888218329088 1 -1058356124 -1058356124 13048 +8900351886974279680 1 1000106109 1000106109 -15497 +8900545829211299840 1 352214248 352214248 256 +8905330479248064512 0 NULL NULL 27675 +8910706980937261056 1 1166237779 1166237779 -12506 +8920344895701393408 1 -1126628450 -1126628450 7299 +8920533610804609024 1 1739911574 1739911574 7569 +8927691194719174656 1 -917062754 -917062754 5025 +8928133990107881472 1 -1511162508 -1511162508 23063 +8935252708196999168 1 1603612975 1603612975 12327 +8936639033158410240 1 -1305139473 -1305139473 21469 +8939431770838810624 1 -934008333 -934008333 -18292 +8945004737083555840 1 252169185 252169185 19887 +8945302550165004288 1 1117805438 1117805438 22118 +8962097525980225536 1 -329695030 -329695030 -26946 +8972161729142095872 1 1709983738 1709983738 NULL +8979012655944220672 1 -120692484 -120692484 -29722 +898 2 -234278308 338805871 5469 +8983857919580209152 1 1273798925 1273798925 -29285 +8983912573761167360 0 NULL NULL -17690 +8984935029383389184 1 -1565671389 -1565671389 NULL +8987827141270880256 1 -1024500955 -1024500955 -27015 +8991071342495531008 1 -574475259 -574475259 15655 +8991442360387584000 1 2081243058 2081243058 -5468 +8994608999945125888 1 -839512271 -839512271 -23323 +8995562121346260992 1 -618505946 -618505946 11664 +8996824426131390464 1 -214166042 -214166042 28774 +9000633029632499712 1 -641062448 -641062448 -10420 +9001907486943993856 1 -1974257754 -1974257754 7483 +9005866015985713152 1 652118640 652118640 -5374 +9016280522993975296 1 388707554 388707554 20794 +9020143715350814720 0 NULL NULL 16565 +9023663198045544448 1 1145627305 1145627305 22388 +9030480306789818368 1 -758973175 -758973175 NULL +9038087402564657152 0 NULL NULL -14836 +9040958359122640896 1 -1635301453 -1635301453 -30157 +9043089884440068096 1 -1527024213 -1527024213 -19020 +9048002942653710336 1 -1079231269 -1079231269 14982 +9048297564833079296 1 -1534307678 -1534307678 29851 +9050032047355125760 1 -1240048334 -1240048334 27527 +9053187076403060736 1 1075444504 1075444504 -32208 +9054887854393950208 1 -1517536924 -1517536924 13522 +9062227900376203264 1 1260101584 1260101584 4206 +9064847977742032896 1 -1849091666 -1849091666 10727 +9067985867711291392 1 43672187 43672187 NULL +9073672806863790080 1 -2144241640 -2144241640 -32119 +9075404705968840704 1 712816880 712816880 22289 +9078604269481148416 1 -298221893 -298221893 -8309 +908 1 266601601 266601601 -9102 +9083076230151864320 1 2111462911 2111462911 -23667 +9083704659251798016 1 -1359838019 -1359838019 1280 +9084402694981533696 0 NULL NULL 28570 +9085381906890203136 1 -240529113 -240529113 -11066 +9085434340468473856 1 76381404 76381404 -14551 +9086905513121890304 1 1796013407 1796013407 -4808 +9089435102788009984 1 2102440065 2102440065 -21274 +9091082386452684800 1 748185058 748185058 -25463 +9091085792947666944 1 254921167 254921167 22618 +9094945190752903168 1 2126491387 2126491387 -32480 +9096395849845194752 1 100270148 100270148 25038 +91 1 -1288198020 -1288198020 15628 +9104574294205636608 1 1257621270 1257621270 -20834 +9107991000536498176 1 -847235873 -847235873 10615 +9112400579327483904 1 1111985530 1111985530 17073 +9114850402293882880 1 1571267481 1571267481 -23153 +9116137265342169088 1 -236700442 -236700442 NULL +9117063974299148288 1 -297664578 -297664578 29954 +9119046173224370176 1 1604076720 1604076720 -6088 +9123116008004288512 1 1882932986 1882932986 -1801 +913 1 1845797092 1845797092 -25077 +9131533983989358592 1 -1234163924 -1234163924 -7178 +9132009829414584320 1 -1856034030 -1856034030 -2027 +9136234417125007360 0 NULL NULL -21820 +9136548192574529536 1 1121512594 1121512594 -19926 +9139805788041134080 1 881396599 881396599 -5338 +914 1 -1257859205 -1257859205 -7300 +9148071980848742400 1 1370723240 1370723240 30619 +9149216169284091904 1 -694520014 -694520014 -31033 +9165199002069458944 1 430686478 430686478 312 +9169248521377374208 1 1566958573 1566958573 32547 +917 1 -2076460151 -2076460151 -15493 +9174894805640142848 1 1336842978 1336842978 -30397 +918 1 1359437295 1359437295 -21292 +9180098147855769600 1 1950882901 1950882901 -6349 +9182828596851990528 1 -1012329052 -1012329052 21091 +9185458640237641728 1 -1011125931 -1011125931 31316 +9185952983951343616 1 889733679 889733679 -14315 +9188173682239275008 1 -1248781172 -1248781172 -17236 +919 1 -357680544 -357680544 30166 +9190466190353661952 1 1918230406 1918230406 18823 +9191943992860327936 1 -595769210 -595769210 -16940 +9194388393453060096 1 1002519329 1002519329 -16362 +9199741683232399360 1 -1096771844 -1096771844 22704 +9207107990561972224 1 -765190882 -765190882 13265 +9207927479837319168 1 2066707767 2066707767 18354 +9209153648361848832 1 471464395 471464395 2952 +921 1 1238986437 1238986437 -23550 +9211455920344088576 1 166320811 166320811 -15936 +922 1 932774185 932774185 -16425 +923 1 -1506324615 -1506324615 20704 +927 1 1044196568 1044196568 NULL +928 1 413090363 413090363 -11160 +939 1 -982238309 -982238309 -739 +94 0 NULL NULL -5837 +945 1 219415594 219415594 27454 +947 1 -896274896 -896274896 30237 +950 2 -2065080832 -1541281934 -20831 +958 0 NULL NULL -4910 +961 1 1805139501 1805139501 10473 +965 1 1336951982 1336951982 26292 +967 1 -1240208945 -1240208945 11843 +976 1 -1563676282 -1563676282 7058 +979 1 1022214896 1022214896 -9798 +982 1 -835198551 -835198551 -18140 +987 1 1807877618 1807877618 -19159 +997 1 -742707249 -742707249 15342 +999 1 -346607939 -346607939 11159 +NULL 80 -2069439395 2142592987 130757 +PREHOOK: query: explain vectorization detail +select b, count(b) from vectortab2korc group by b +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b, count(b) from vectortab2korc group by b +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: true + enabledConditionsMet: [hive.vectorized.execution.enabled IS true] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez +#### A masked pattern was here #### + Edges: + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + TableScan Vectorization: + native: true + projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + Select Operator + expressions: b (type: bigint) + outputColumnNames: b + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [3] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count(b) + Group By Vectorization: + className: VectorGroupByHashOneLongKeyCountKeyOperator + groupByMode: HASH + vectorOutput: true + keyExpressions: col 3 + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + vectorProcessingMode: HASH + projectedOutputColumns: [0] + singleCountAggreation: COUNT_KEY + keys: b (type: bigint) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint) + sort order: + + Map-reduce partition columns: _col0 (type: bigint) + Reduce Sink Vectorization: + className: VectorReduceSinkLongOperator + keyColumns: [0] + native: true + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + valueColumns: [1] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Execution mode: vectorized, llap + LLAP IO: all inputs + Map Vectorization: + enabled: true + enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true + groupByVectorOutput: true + inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + allNative: true + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 13 + includeColumns: [3] + dataColumns: t:tinyint, si:smallint, i:int, b:bigint, f:float, d:double, dc:decimal(38,18), bo:boolean, s:string, s2:string, ts:timestamp, ts2:timestamp, dt:date + partitionColumnCount: 0 + Reducer 2 + Execution mode: vectorized, llap + Reduce Vectorization: + enabled: true + enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true + reduceColumnNullOrder: a + reduceColumnSortOrder: + + groupByVectorOutput: true + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 2 + dataColumns: KEY._col0:bigint, VALUE._col0:bigint + partitionColumnCount: 0 + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + Group By Vectorization: + aggregators: VectorUDAFCountMerge(col 1) -> bigint + className: VectorGroupByOperator + groupByMode: MERGEPARTIAL + vectorOutput: true + keyExpressions: col 0 + native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + vectorProcessingMode: MERGE_PARTIAL + projectedOutputColumns: [0] + keys: KEY._col0 (type: bigint) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + File Sink Vectorization: + className: VectorFileSinkOperator + native: false + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b, count(b) from vectortab2korc group by b +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(b) from vectortab2korc group by b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 1 +-6919476845891313664 1 +-6920172215209426944 1 +-6921654334727036928 1 +-6933565857643814912 1 +-6934304742087655424 1 +-6935038507792801792 1 +-6935548339131138048 1 +-6938706403992854528 1 +-6941777546186579968 1 +-6947955278050181120 1 +-6951350560260784128 1 +-6957946688477274112 1 +-6960947572095770624 1 +-6962271229404348416 1 +-6962292590214234112 1 +-6968771079156654080 1 +-6968892545529896960 1 +-6970396058557005824 1 +-6974654664348033024 1 +-6975459232300236800 1 +-6986178228432322560 1 +-6988811476286873600 1 +-6988970700649168896 1 +-6992217501957169152 1 +-6997233584896229376 1 +-7000925438663041024 1 +-7003696402314215424 1 +-7011425384222244864 1 +-7017212700635545600 1 +-7020852530219171840 1 +-7030489936116252672 1 +-7035132060308643840 1 +-7036607470351654912 1 +-7037375807670501376 1 +-7037638331316469760 1 +-7038455462786334720 1 +-7040248820505149440 1 +-7041362811802148864 1 +-7042183597114081280 1 +-7046180371529351168 1 +-7049618574399692800 1 +-7052619594823221248 1 +-7055619148037554176 1 +-7055760785575665664 1 +-7057750467944931328 1 +-7058986555327307776 1 +-7063777488249085952 1 +-7078068944081002496 1 +-7079898537463537664 1 +-7081500255163727872 1 +-7083646746411720704 1 +-7085247548404178944 1 +-7093825013581979648 1 +-7094189393339678720 1 +-7094827141662539776 1 +-7104310188119834624 1 +-7106210529681350656 1 +-7109790267244814336 1 +-7115054815375073280 1 +-7120456708338688000 1 +-7127548949860818944 1 +-7138415011665043456 1 +-7139677575412686848 1 +-7140008543769042944 1 +-7144791190333546496 1 +-7145585429014888448 1 +-7147490721376591872 1 +-7152177800841502720 1 +-7155539549555105792 1 +-7158472098920390656 1 +-7159700138947862528 1 +-7161165959057334272 1 +-7162299524557471744 1 +-7172594404186693632 1 +-7185369278665605120 1 +-7192529627893858304 1 +-7194281951646187520 1 +-7195217207163166720 1 +-7198372044947275776 1 +-7199983995864711168 1 +-7201085131997011968 1 +-7209060152494817280 1 +-7213775605408178176 1 +-7220731681653604352 1 +-7221474017515347968 1 +-7228589258642194432 1 +-7240213957902663680 1 +-7242345057866285056 1 +-7245872320493322240 1 +-7246123871306244096 1 +-7255010240787030016 1 +-7255686273677328384 1 +-7262049693594943488 1 +-7262384251828518912 1 +-7262798781688651776 1 +-7263060340185194496 1 +-7265998318110711808 1 +-7266719102957125632 1 +-7270034223527993344 1 +-7273590251991162880 1 +-7273694358642851840 1 +-7276111129363046400 1 +-7287583262310350848 1 +-7292078334519894016 1 +-7296096276653391872 1 +-7303847963918393344 1 +-7319315187617587200 1 +-7326863346317598720 1 +-7328087811698909184 1 +-7329767178250018816 1 +-7329807949048193024 1 +-7330203470474985472 1 +-7330413050756235264 1 +-7333278178640953344 1 +-7333362172439035904 1 +-7340231535789727744 1 +-7344146703223496704 1 +-7344947507044466688 1 +-7345562788132315136 1 +-7356685674003021824 1 +-7357888618985873408 1 +-7362189611124563968 1 +-7366430883634929664 1 +-7378096180613840896 1 +-7380731416973295616 1 +-7395343938785738752 1 +-7395553021620731904 1 +-7399631791131074560 1 +-7404052043914526720 1 +-7404057145074712576 1 +-7409317158045442048 1 +-7409653086454030336 1 +-7412431471807283200 1 +-7413317118463164416 1 +-7419068456205385728 1 +-7420448501073051648 1 +-7425160895830573056 1 +-7429331808102899712 1 +-7433265617153343488 1 +-7442593976514420736 1 +-7444070205513138176 1 +-7451660755269853184 1 +-7453525026342617088 1 +-7455898404374921216 1 +-7456869587112255488 1 +-7461750143936897024 1 +-7464270453557993472 1 +-7469660864676585472 1 +-7470307155642245120 1 +-7476082621253402624 1 +-7483435388852559872 1 +-7488345684795342848 1 +-7488415863027367936 1 +-7494411162675691520 1 +-7496839341561954304 1 +-7497303453253402624 1 +-7500200359698907136 1 +-7501803640821456896 1 +-7506254246954500096 1 +-7507424948896415744 1 +-7507578199583694848 1 +-7510418793070075904 1 +-7511202710200885248 1 +-7511952204985049088 1 +-7512289590991544320 1 +-7512297136103800832 1 +-7515996202498473984 1 +-7524170566881329152 1 +-7526793959592140800 1 +-7528526815026692096 1 +-7532751268425261056 1 +-7535857766791577600 1 +-7535958203887706112 1 +-7536330682873937920 1 +-7540104552219860992 1 +-7541860097718902784 1 +-7542857121910046720 1 +-7547245548870025216 1 +-7547432761381339136 1 +-7551394356730339328 1 +-7557017910095650816 1 +-7558524160894427136 1 +-7571293705217687552 1 +-7571957778022178816 1 +-7572262898020278272 1 +-7572962089372991488 1 +-7576194692683563008 1 +-7593363318079610880 1 +-7594824008626372608 1 +-7598782894648565760 1 +-7600138468036386816 1 +-7603467428164009984 1 +-7603569103205916672 1 +-7610137349734883328 1 +-7611584069753552896 1 +-7612455481940246528 1 +-7612466483992051712 1 +-7616522969329262592 1 +-7617860842651017216 1 +-7623047151287754752 1 +-7623359796281999360 1 +-7623405558242500608 1 +-7624057992767782912 1 +-7629401308029976576 1 +-7637494527844343808 1 +-7637755520917741568 1 +-7642381493746483200 1 +-7647020450676146176 1 +-7661192563533062144 1 +-7661250850555633664 1 +-7663293054873812992 1 +-7665186441284968448 1 +-7668388017287020544 1 +-7669169138124275712 1 +-7673901622181953536 1 +-7679894005808693248 1 +-7686220526274502656 1 +-7687052294777208832 1 +-7692192232238678016 1 +-7695491171376291840 1 +-7700203302632210432 1 +-7703540456272994304 1 +-7707242953271500800 1 +-7707867749256445952 1 +-7708932208121225216 1 +-7709958788604936192 1 +-7712425776235274240 1 +-7720966287634112512 1 +-7739424919198187520 1 +-7744462446680375296 1 +-7751265769984491520 1 +-7751427073017544704 1 +-7753051494275432448 1 +-7759238919361888256 1 +-7759425383684849664 1 +-7772064021830574080 1 +-7773957003968675840 1 +-7777884099756122112 1 +-7778829032042790912 1 +-7779270198785875968 1 +-7782344916178796544 1 +-7784419454650843136 1 +-7792903881635938304 1 +-7793447076762345472 1 +-7797149520019062784 1 +-7797151404935618560 1 +-7800879252150779904 1 +-7802538500225777664 1 +-7804116532814151680 1 +-7805985795815342080 1 +-7811060170911375360 1 +-7818454479651135488 1 +-7819437864839495680 1 +-7822452149325094912 1 +-7824788571789279232 1 +-7827420207675105280 1 +-7831320202242228224 1 +-7831595638727565312 1 +-7833618000492109824 1 +-7835907977757245440 1 +-7838598833900584960 1 +-7840338174858199040 1 +-7845896959112658944 1 +-7848043121524228096 1 +-7849504559236210688 1 +-7858505678035951616 1 +-7866079955473989632 1 +-7867219225874571264 1 +-7868306678534193152 1 +-7873753603299540992 1 +-7875953567586451456 1 +-7877598807023386624 1 +-7878145001776152576 1 +-7879864376629567488 1 +-7881262505761710080 1 +-7881351200983613440 1 +-7883252982752665600 1 +-7884460946615984128 1 +-7888051992910274560 1 +-7892780594910871552 1 +-7893577088764174336 1 +-7894382303337832448 1 +-7895991410072928256 1 +-7902517224300036096 1 +-7903158849011843072 1 +-7904188195431661568 1 +-7907355742053883904 1 +-7910019233726242816 1 +-7911421221625077760 1 +-7915999634274369536 1 +-7916510129632296960 1 +-7928062266382778368 1 +-7928440849566146560 1 +-7939634346485858304 1 +-7949309059286163456 1 +-7949445503604604928 1 +-7953426740065312768 1 +-7964801953178091520 1 +-7966960765508280320 1 +-7978782649203228672 1 +-7989766326847807488 1 +-7998947380180819968 1 +-8007017894942638080 1 +-8013397854633648128 1 +-8016589197379289088 1 +-8017791189288869888 1 +-8018511948141748224 1 +-8021859935185928192 1 +-8022573309127000064 1 +-8023708819947323392 1 +-8028275725610909696 1 +-8028910243475038208 1 +-8030058711611629568 1 +-8034414142083170304 1 +-8046189486447017984 1 +-8046238369820344320 1 +-8047774491688255488 1 +-8051395538179063808 1 +-8051587217208967168 1 +-8051871680800120832 1 +-8054581198284668928 1 +-8067243114610532352 1 +-8070535484085895168 1 +-8076479329071955968 1 +-8082793390939193344 1 +-8084716955963252736 1 +-8086577583338061824 1 +-8088337436168830976 1 +-8099313480512716800 1 +-8103788088118018048 1 +-8104684579106914304 1 +-8108693586698706944 1 +-8115963579415650304 1 +-8117838333114212352 1 +-8122639684164501504 1 +-8127494999848919040 1 +-8131997716860526592 1 +-8136227554401107968 1 +-8140349174954893312 1 +-8142667274351345664 1 +-8147405381260345344 1 +-8158011642485825536 1 +-8161047750470279168 1 +-8172827216441573376 1 +-8182421179156905984 1 +-8191825921746305024 1 +-8194062064124362752 1 +-8203008052020879360 1 +-8203075743525806080 1 +-8205148279289085952 1 +-8214462866994339840 1 +-8219876839318716416 1 +-8232763638546694144 1 +-8240034910581153792 1 +-8240684139569233920 1 +-8243487285852766208 1 +-8244116388227104768 1 +-8244657976255889408 1 +-8260340354454503424 1 +-8269917980278980608 1 +-8270479187688816640 1 +-8275337702906757120 1 +-8280276629934981120 1 +-8293833565967810560 1 +-8297230235506343936 1 +-8300526097982226432 1 +-8300764106868350976 1 +-8302817097848307712 1 +-8317591428117274624 1 +-8318886086186213376 1 +-8322751250650218496 1 +-8330233444291084288 1 +-8335810316927213568 1 +-8340523561480437760 1 +-8345065519816695808 1 +-8347088645602050048 1 +-8357136656913686528 1 +-8358130693961195520 1 +-8359839265974165504 1 +-8368269352975982592 1 +-8368487814665895936 1 +-8369487968903897088 1 +-8379109122834997248 1 +-8379964450833367040 1 +-8384695077413412864 1 +-8387347109404286976 1 +-8387536830476820480 1 +-8395998375405912064 1 +-8400045653258444800 1 +-8411282676082565120 1 +-8418913260807217152 1 +-8425998949410889728 1 +-8426531414463545344 1 +-8430283518005846016 1 +-8430370933326536704 1 +-8431492599012163584 1 +-8438554249514491904 1 +-8445801063348281344 1 +-8453491903284994048 1 +-8454143651040444416 1 +-8465978403747037184 1 +-8469607298426437632 1 +-8471480409335513088 1 +-8485389240529354752 1 +-8488247955875618816 1 +-8490382417169408000 1 +-8494118409594650624 1 +-8503342882470019072 1 +-8503573595507761152 1 +-8507279516485566464 1 +-8509547439040757760 1 +-8518060755719585792 1 +-8518258741831680000 1 +-8521578237232529408 1 +-8522878384019169280 1 +-8523434203900674048 1 +-8525212657458348032 1 +-8535957064499879936 1 +-8536369662934401024 1 +-8543982423727128576 1 +-8544299740525461504 1 +-8545239748068941824 1 +-8546758906409312256 1 +-8552393882631389184 1 +-8555709701170552832 1 +-8559008501282832384 1 +-8559252110266564608 1 +-8562524688907485184 1 +-8566856504746352640 1 +-8566940231897874432 1 +-8570933074545745920 1 +-8572823448513445888 1 +-8572949572756774912 1 +-8581765103969312768 1 +-8581979259158929408 1 +-8584520406368493568 1 +-8585134536083660800 1 +-8585966098173870080 1 +-8593419958317056000 1 +-8603817012434198528 1 +-8604758220106014720 1 +-8607195685207408640 1 +-8615168537390571520 1 +-8619303037130301440 1 +-8623238306523824128 1 +-8623965248051789824 1 +-8632237187473088512 1 +-8649711322250362880 1 +-8651641150831362048 1 +-8654433008222797824 1 +-8654797319350927360 1 +-8658387566611996672 1 +-8659643752269242368 1 +-8659692318743314432 1 +-8660149447361404928 1 +-8664374244449050624 1 +-8664806103426252800 1 +-8665218198816497664 1 +-8665764757143658496 1 +-8675661101615489024 1 +-8675892979328212992 1 +-8683802826440105984 1 +-8688153842294595584 1 +-8689606130068611072 1 +-8694818694700048384 1 +-8696162322976997376 1 +-8703026916864802816 1 +-8704234107608203264 1 +-8705403811649355776 1 +-8710298418608619520 1 +-8714995808835444736 1 +-8719510423723155456 1 +-8730803262481580032 1 +-8731068123910987776 1 +-8746702976270385152 1 +-8754966081778565120 1 +-8754992450211692544 1 +-8756989568739835904 1 +-8760655406971863040 1 +-8763062627136864256 1 +-8768744394742235136 1 +-8782213262837530624 1 +-8783777723063099392 1 +-8789178184387641344 1 +-8797972842900307968 1 +-8807361476639629312 1 +-8813211231120031744 1 +-8831091081349758976 1 +-8832750849949892608 1 +-8833019327569510400 1 +-8835408234247168000 1 +-8836899523028312064 1 +-8843859708698583040 1 +-8844949406948671488 1 +-8845239510002753536 1 +-8852770376039219200 1 +-8853553406533894144 1 +-8856151919723003904 1 +-8856821118526734336 1 +-8857335871148171264 1 +-8858063395050110976 1 +-8859107121649893376 1 +-8866442231663067136 1 +-8870186814744420352 1 +-8870673219965001728 1 +-8875546987176206336 1 +-8877053610728161280 1 +-8877431933441327104 1 +-8879742387365429248 1 +-8881446757271846912 1 +-8887058200926093312 1 +-8892963883085578240 1 +-8896045754034978816 1 +-8914039133569400832 1 +-8916987977485312000 1 +-8922409715403112448 1 +-8923529803981905920 1 +-8927968289860370432 1 +-8930307926221807616 1 +-8938849835283677184 1 +-8940944155843461120 1 +-8941201923743703040 1 +-8946656952763777024 1 +-8948335470186373120 1 +-8959796625322680320 1 +-8961059046745669632 1 +-8962547695651323904 1 +-8965578088652095488 1 +-8989473881707921408 1 +-8990843030306717696 1 +-8992599250893979648 1 +-8996954350906294272 1 +-9002912355472736256 1 +-9004892183139811328 1 +-9008631121684832256 1 +-9012093603044245504 1 +-9013952631912325120 1 +-9014145341570203648 1 +-9022154842129547264 1 +-9032650742739836928 1 +-9049720998034137088 1 +-9051477157204770816 1 +-9058029636530003968 1 +-9066993118333706240 1 +-9071565764086521856 1 +-9075302542655684608 1 +-9075486079396069376 1 +-9078662294976061440 1 +-9079801920509001728 1 +-9080568167841226752 1 +-9080956291212132352 1 +-9084940280061485056 1 +-9088239683374350336 1 +-9091113592821972992 1 +-9095689235523264512 1 +-9101953184875757568 1 +-9102482277760983040 1 +-9105358806324035584 1 +-9105701280936501248 1 +-9109392978217484288 1 +-9117959922369060864 1 +-9126793997498957824 1 +-9136398397785948160 1 +-9142610685888192512 1 +-9145593811310010368 1 +-9148197394287779840 1 +-9149719074367946752 1 +-9157613004431998976 1 +-9175038118837149696 1 +-9175279464813223936 1 +-9178166810751909888 1 +-9187662685618348032 1 +-9189155542884474880 1 +-9203804401302323200 1 +-9203942396257984512 1 +-9206329156028112896 1 +-9210275791460499456 1 +-9213132862973829120 1 +-9215144824304721920 1 +-9218875542187065344 1 +-9219066990552760320 1 +1021 1 +1030 1 +1032 1 +1039 1 +1046 1 +1048 1 +1053 1 +1055 1 +1058 1 +1065 1 +1066 1 +1074 1 +1075 3 +108 1 +1086 1 +1093 1 +1094 1 +1095 1 +1099 1 +1115 1 +112 1 +1127 1 +1128 1 +1132 1 +1134 1 +1141 1 +1142 1 +1145 1 +1153 1 +1157 1 +1158 1 +1165 2 +1168 1 +1177 1 +1187 1 +1189 1 +1198 1 +120 1 +1201 1 +1217 1 +1234 1 +1243 1 +1247 1 +1252 1 +1261 1 +1270 1 +1280 1 +1282 1 +1286 1 +1287 1 +1290 1 +1291 1 +1299 1 +130 1 +1307 1 +1312 1 +1316 1 +1321 1 +1337 1 +1341 1 +1342 1 +1343 1 +1345 1 +1346 1 +135 1 +1366 1 +1368 2 +1371 2 +138 1 +1386 1 +1398 1 +1409 1 +1422 1 +1423 1 +1436 1 +1439 1 +1447 1 +1450 1 +1454 1 +1458 1 +1462 1 +1466 1 +1470 1 +1477 1 +1481 2 +1489 1 +1493 1 +1495 1 +1501 1 +1506 1 +1508 1 +1509 2 +1518 1 +1520 1 +1521 1 +1524 1 +1530 1 +1537 2 +154 2 +1541 1 +1542 1 +1545 1 +1556 1 +1559 1 +1561 1 +1566 1 +1604 1 +1606 1 +1608 1 +1613 1 +1614 1 +1620 1 +1638 1 +1641 1 +1643 1 +1648 1 +1651 1 +1667 1 +1671 1 +1674 1 +1676 1 +1678 1 +168 1 +1681 1 +169 1 +1693 1 +1701 2 +1704 1 +1719 2 +1726 1 +1728 1 +1745 1 +1751 1 +1752 1 +1769 1 +1774 1 +1775 1 +1777 2 +1780 1 +1781 1 +1785 1 +1786 1 +1788 1 +1789 1 +1791 1 +1796 1 +1806 1 +181 1 +1811 1 +1813 1 +1826 1 +1827 1 +1835 1 +1837 1 +1845 1 +1846 1 +1856 2 +1862 1 +1863 1 +1864 1 +1866 1 +187 1 +1870 1 +188 1 +1880 1 +1890 1 +1892 1 +1899 1 +19 2 +1906 1 +1910 1 +1914 2 +1926 1 +1937 1 +1940 1 +1941 1 +1948 3 +1955 1 +1965 1 +1972 1 +1981 1 +1983 1 +1987 1 +1990 1 +1995 1 +1999 1 +2001 1 +2002 1 +2004 1 +2009 1 +2011 1 +2013 1 +2016 1 +2017 1 +2020 2 +2025 1 +2026 1 +2029 1 +203 1 +204 1 +2046 1 +2056 1 +2067 1 +2072 1 +2073 1 +2085 1 +2089 1 +2092 1 +2105 1 +2106 1 +2108 1 +213 2 +2131 1 +2138 1 +2140 1 +2144 1 +2155 1 +2177 1 +2179 1 +2180 1 +2183 1 +2186 1 +2187 1 +2189 1 +2193 2 +2194 1 +22 1 +2201 1 +2205 1 +2214 1 +2217 1 +2218 1 +2223 1 +2227 1 +2229 1 +2232 1 +2241 1 +2244 1 +2255 1 +2262 1 +2264 1 +2270 1 +2274 1 +2277 1 +2279 1 +228 1 +2283 1 +2285 2 +2295 1 +2306 1 +2320 1 +2323 1 +2325 2 +2335 1 +2341 1 +2348 1 +2358 1 +236 1 +2373 1 +238 1 +2386 1 +2393 2 +2398 1 +2400 1 +2410 1 +2412 2 +2420 1 +2426 1 +2434 1 +244 1 +2461 1 +2463 3 +2465 1 +2469 1 +2475 1 +2476 1 +2485 2 +2487 1 +2492 1 +2494 1 +2502 1 +2506 1 +2509 1 +2512 1 +2514 1 +2515 1 +2517 1 +2524 1 +2533 1 +2539 1 +2540 1 +255 1 +2551 1 +2553 1 +2560 2 +2563 1 +2565 1 +2569 1 +2579 1 +2580 1 +2587 1 +259 1 +2599 1 +2607 1 +2608 1 +2619 2 +2625 1 +2626 1 +263 2 +2637 1 +2647 1 +2649 1 +2662 1 +2663 1 +2675 1 +268 2 +2680 1 +2682 1 +2688 1 +2689 1 +2692 1 +2700 1 +2712 1 +2714 1 +2715 2 +2719 1 +2724 1 +2725 1 +2735 1 +2745 1 +275 1 +2752 1 +2762 1 +2772 1 +2776 1 +2786 2 +279 1 +2790 1 +2791 1 +2803 3 +2805 1 +281 1 +2810 1 +2811 1 +2816 1 +2821 1 +2824 1 +2835 1 +2842 1 +2843 2 +2846 1 +2847 1 +2848 1 +2850 1 +2855 2 +2862 1 +2878 1 +2886 1 +289 1 +2897 2 +2900 1 +2903 1 +2905 1 +2911 1 +2915 1 +2919 1 +2933 2 +2938 1 +294 1 +2941 1 +2942 1 +296 2 +2962 1 +2968 2 +2971 1 +2977 1 +2979 1 +2984 1 +2986 1 +2988 1 +2991 1 +3002 1 +3006 1 +301 1 +302 1 +3021 2 +3024 1 +3029 1 +3031 1 +3036 1 +3043 1 +3054 1 +3055 1 +3058 1 +3059 1 +3060 2 +3067 1 +3071 1 +3073 1 +3079 2 +3083 1 +3084 1 +3089 1 +3094 1 +3103 1 +311 1 +3111 1 +3118 1 +3119 1 +3144 1 +3147 1 +3159 2 +3163 1 +3174 1 +3183 1 +3190 1 +3197 1 +3199 1 +320 1 +3203 1 +3206 1 +3208 1 +3212 1 +3213 1 +3231 1 +3232 1 +3235 1 +3244 1 +3245 1 +3248 1 +3249 1 +3253 1 +3255 1 +3263 1 +3286 1 +3300 1 +3307 1 +3322 1 +3333 1 +3352 1 +336 1 +3365 1 +3366 1 +3397 1 +34 1 +3401 1 +3407 1 +3409 1 +341 1 +3418 2 +342 1 +3421 1 +3430 1 +3443 1 +3446 1 +345 1 +3456 1 +346 2 +3460 1 +3462 3 +3467 2 +347 1 +3472 1 +3478 1 +3493 1 +350 1 +3507 1 +3510 1 +3512 1 +3533 1 +3534 1 +3541 1 +3542 1 +355 1 +3554 1 +3555 2 +3563 1 +3566 1 +3567 1 +3568 1 +3579 1 +3588 2 +3599 1 +3606 1 +3608 1 +3609 1 +361 1 +3613 1 +3622 2 +3625 1 +3630 1 +3637 1 +364 1 +3648 1 +3663 1 +3664 1 +367 1 +3672 1 +3673 1 +3677 1 +3680 1 +3682 1 +3690 1 +3691 1 +3701 1 +3702 1 +3703 1 +3707 1 +3722 1 +3724 1 +3725 2 +3728 2 +3739 1 +3747 1 +3749 1 +375 1 +3755 1 +3763 1 +3764 1 +3769 1 +3770 2 +378 1 +3781 2 +3789 1 +379 1 +3810 1 +3812 1 +3823 1 +3824 1 +383 2 +3830 1 +3835 1 +3841 1 +3848 1 +3858 1 +3860 1 +3866 2 +3874 1 +3879 1 +388 1 +3887 1 +3901 1 +3904 1 +3907 1 +391 1 +3910 1 +3911 1 +3913 1 +392 1 +3932 1 +3940 1 +3941 1 +3945 1 +3946 1 +3949 1 +3958 1 +3960 1 +3961 1 +3962 1 +3965 1 +3974 2 +3980 1 +3990 1 +4018 1 +4020 1 +4024 1 +4030 1 +4037 1 +4051 1 +4054 1 +4056 1 +4075 1 +4078 1 +4088 1 +41 1 +412 2 +417 1 +425 1 +443 1 +454 1 +455 1 +462 1 +470 1 +471 1 +481 1 +482 1 +485 1 +489 1 +49 1 +490 1 +491 1 +5 1 +500 1 +501 2 +504 1 +522 1 +523 1 +524 1 +530 1 +535 1 +579 1 +583 1 +584 1 +586 1 +587 1 +590 1 +597 1 +601 1 +612 1 +615 1 +618 1 +65 1 +650 1 +658 1 +66 1 +661 2 +663 1 +664 1 +677 1 +68 1 +681 1 +687 1 +688 1 +690 1 +691 1 +6923604860394528768 1 +6924820982050758656 1 +6926925215281774592 1 +6927260280037097472 1 +6928080429732536320 1 +6933001829416034304 1 +6933451028794925056 1 +6933731240564056064 1 +6934570741217755136 1 +694 1 +6947488599548215296 1 +695 1 +6960137166475911168 1 +6962726713896484864 1 +6963217546192322560 1 +6964585306125008896 1 +6967631925774639104 1 +6969599299897163776 1 +6974475559697768448 1 +6982145326341423104 1 +6987889924212203520 1 +6991316084916879360 1 +6996686091335884800 1 +7006803044329021440 1 +7013693841855774720 1 +7014537632150224896 1 +7017956982081404928 1 +7022349041913978880 1 +7027529814236192768 1 +7031339012080549888 1 +7039820685967343616 1 +7045967493826387968 1 +7049773031131283456 1 +7052226236896256000 1 +7054271419461812224 1 +7054938591408996352 1 +7060236714847412224 1 +7061498706968428544 1 +7061809776248545280 1 +7062382339142156288 1 +7062605127422894080 1 +7065344324692443136 1 +7068517339681259520 1 +7069729473166090240 1 +707 1 +7077311975029555200 1 +7078641038157643776 1 +7080269176324218880 1 +7084659344078970880 1 +7086206629592252416 1 +7091300332052062208 1 +7099005292698550272 1 +71 1 +7107604675626008576 1 +7125231541858205696 1 +7128222874437238784 1 +7130159794259353600 1 +7130306447560826880 1 +7149417430082027520 1 +7153922334283776000 1 +7157247449513484288 1 +7164349895861829632 1 +7165364563962191872 1 +7166263463731421184 1 +7175638927948562432 1 +7186401810812059648 1 +7195454019231834112 1 +7198687580227043328 1 +7199539820886958080 1 +7204802700490858496 1 +7210160489915236352 1 +7212016545671348224 1 +7212090742612467712 1 +7217123582035116032 1 +7220131672176058368 1 +7220581538170413056 1 +7223569671814987776 1 +7226360892091416576 1 +7229607057201127424 1 +723 1 +7231399302953377792 1 +7232273749940838400 1 +7235109456886816768 1 +7237310132329488384 1 +7238339720750948352 1 +724 1 +7242751359672631296 1 +7249443195032985600 1 +7250237407877382144 1 +7254710367022645248 1 +7255302164215013376 1 +7259955893466931200 1 +7260908278294560768 1 +7265141874315517952 1 +7266437490436341760 1 +7271786885641666560 1 +7271887863395459072 1 +7274777328897802240 1 +7291432593139507200 1 +7295502697317097472 1 +7295926343524163584 1 +7296164580491075584 1 +7299197687217856512 1 +73 1 +7304839835188609024 1 +7308289763456000000 1 +7309156463509061632 1 +7310869618402910208 1 +7319711402123149312 1 +7333512171174223872 1 +7339426767877390336 1 +7343171468838567936 1 +7344029858387820544 1 +7345991518378442752 1 +7347732772348870656 1 +7348598907182800896 1 +735 1 +7354813692542304256 1 +7359004378440146944 1 +736 1 +7368920486374989824 1 +7370078518278397952 1 +7370803940448305152 1 +7375521127126089728 1 +7376467688511455232 1 +7378993334503694336 1 +738 1 +7381659098423926784 1 +7384150968511315968 1 +7386087924003676160 1 +7391208370547269632 1 +7393308503950548992 1 +7394967727502467072 1 +7401968422230032384 1 +7410096605330227200 1 +7410872053689794560 1 +7411793502161182720 1 +7412924364686458880 1 +7414865343000322048 1 +7418271723644403712 1 +743 1 +7432428551399669760 1 +7432998950057975808 1 +7436133434239229952 1 +7440265908266827776 1 +7450416810848313344 1 +7452756603516190720 1 +7454442625055145984 1 +7454632396542074880 1 +7461153404961128448 1 +7471208109437304832 1 +7473537548003352576 1 +7486884806277611520 1 +7487338208419823616 1 +7487538600082554880 1 +7490717730239250432 1 +7491898395977523200 1 +7492436934952574976 1 +7497276415392407552 1 +7497306924248834048 1 +7500716020874674176 1 +7514552840617558016 1 +7517159036469575680 1 +7524958388842078208 1 +7528074274555305984 1 +7528211148397944832 1 +7534042483076857856 1 +7534145866886782976 1 +7534549597202194432 1 +7545689659010949120 1 +7548958830580563968 1 +7549858023389003776 1 +7555301305375858688 1 +7566273236152721408 1 +7569249672628789248 1 +7570474972934488064 1 +7573530789362262016 1 +7575087487730196480 1 +7581052107944361984 1 +7581614118458335232 1 +7584007864107778048 1 +7592440105065308160 1 +7593521922173419520 1 +7596563216912211968 1 +7599019810193211392 1 +7608447395949109248 1 +7614435638888210432 1 +7620183559667081216 1 +7621013099259527168 1 +7625728883085025280 1 +7626715182847090688 1 +763 1 +7637152193832886272 1 +7647481735646363648 1 +7648729477297987584 1 +7652123583449161728 1 +7659279803863146496 1 +7662037650719850496 1 +7675009476762918912 1 +7678790769408172032 1 +7682327310082531328 1 +7686992843032010752 1 +7689489436826804224 1 +7690986322714066944 1 +7691062622443044864 1 +7696737688942567424 1 +7697541332524376064 1 +7700734109530767360 1 +7701723309715685376 1 +7705445437881278464 1 +7710447533880614912 1 +7718825401976684544 1 +7720187583697502208 1 +7731443941834678272 1 +7735566678126616576 1 +774 1 +7741854854673367040 1 +7746402369011277824 1 +7747874976739016704 1 +7748799008146366464 1 +7752740515534422016 1 +7753359568986636288 1 +7753882935005880320 1 +7761834341179375616 1 +7762823913046556672 1 +7765456790394871808 1 +7768984605670604800 1 +7775034125776363520 1 +7778936842502275072 1 +7779486624537370624 1 +7779735136559579136 1 +7782245855193874432 1 +7784169796350730240 1 +7784489776013295616 1 +779 1 +7790728456522784768 1 +7792036342592348160 1 +7794244032613703680 1 +78 1 +780 1 +7800332581637259264 1 +7801697837312884736 1 +7818464507324121088 1 +782 1 +7823874904139849728 1 +784 1 +7843804446688264192 1 +7844258063629852672 1 +7845953007588401152 1 +7857878068300898304 1 +7868367829080506368 1 +7870277756614623232 1 +7871189141676998656 1 +7871554728617025536 1 +7874764415950176256 1 +7885697257930588160 1 +7888238729321496576 1 +789 1 +7892026679115554816 1 +7892281003266408448 1 +7898670840507031552 1 +7909645665163804672 1 +7917494645725765632 1 +7919597361814577152 1 +7921639119138070528 1 +7922443154272395264 1 +7926898770090491904 1 +7933040277013962752 1 +7936149988210212864 1 +7944741547145502720 1 +7947544013461512192 1 +7948803266578161664 1 +7955126053367119872 1 +7961515985722605568 1 +7961909238130270208 1 +797 1 +7983789401706094592 1 +7989119273552158720 1 +7989160253372817408 1 +7997694023324975104 1 +7998357471114969088 1 +7998687089080467456 1 +80 1 +8000440057238052864 1 +8002769767000145920 1 +8004633750273925120 1 +8011181697250631680 1 +8011602724663336960 1 +8014986215157530624 1 +8017403886247927808 1 +803 1 +8045070943673671680 1 +8048726769133592576 1 +8059284960252731392 1 +8069531888205086720 1 +8071961599867387904 1 +8073733016154431488 1 +8079573715140485120 1 +808 1 +8087737899452432384 1 +809 1 +8091421389575282688 1 +8099215208813903872 1 +8100036735858401280 1 +8109381965028548608 1 +8111757081791733760 1 +8113585123802529792 1 +8116738401948377088 1 +812 1 +8120593157178228736 1 +8129551357032259584 1 +8135164922674872320 1 +8142241016679735296 1 +8143462899383345152 1 +8144552446127972352 1 +8145745969573666816 1 +8145750910080745472 1 +8146288732715196416 1 +8146492373537660928 1 +8148211378319933440 1 +815 1 +8150115791664340992 1 +8156018594610790400 1 +8156782979767238656 1 +8160569434550403072 1 +8160662610166194176 1 +8163948965373386752 1 +8168742078705262592 1 +8169878743136043008 1 +8171188598958407680 1 +8183233196086214656 1 +8184799300477943808 1 +8190539859890601984 1 +8190967051000659968 1 +8192304692696383488 1 +8195103847607967744 1 +8199513544090730496 1 +820 2 +8201303040648052736 1 +8201491077550874624 1 +8208354137450766336 1 +8210813831744118784 1 +8213810702473183232 1 +8219326436390821888 1 +8220104397160169472 1 +8221561626658881536 1 +8222714144797368320 1 +8223732800007864320 1 +823 1 +8230371298967609344 1 +8235179243092090880 1 +8244041599171862528 1 +8254763178969915392 1 +8268875586442256384 1 +8269730157217062912 1 +8272001752345690112 1 +8279056098670198784 1 +8282648443538710528 1 +8283099811330506752 1 +8286706213485297664 1 +8287522765741301760 1 +8290014929764040704 1 +8290944180915871744 1 +8294315622451740672 1 +8295110846998233088 1 +83 1 +8302473563519950848 1 +8316336224427483136 1 +8323460620425330688 1 +8325227661920133120 1 +8332670681629106176 1 +8333523087360901120 1 +8337549596011102208 1 +8345435427356090368 1 +835 1 +8351163199364390912 1 +8362046808797306880 1 +8365058996333953024 1 +8367680396909404160 1 +8368012468775608320 1 +837 1 +8371939471056470016 1 +8372408423196270592 1 +8372588378498777088 1 +8374321007870836736 1 +8376440110255243264 1 +8383159090746204160 1 +8388363436324085760 1 +8391407951622815744 1 +8391785334471589888 1 +8396433451610652672 1 +8398862954249560064 1 +8407869317250220032 1 +8410599906334097408 1 +8411494452500930560 1 +8415171956168417280 1 +8416121695917498368 1 +8417381121663746048 1 +8419958579638157312 1 +8424515140664360960 1 +8435912708683087872 1 +845 1 +8451612303224520704 1 +8454154705460666368 1 +8455496814886002688 1 +8457906374051020800 1 +8461498293348065280 1 +8463868417649524736 1 +8467976965865799680 1 +8470141334513098752 1 +8472429318602268672 1 +8473699639908261888 1 +8487573502287478784 1 +8489584373231919104 1 +8489735221193138176 1 +85 1 +8501910015960735744 1 +8508401924853850112 1 +8509508263705477120 1 +8514851182589771776 1 +8514979402185596928 1 +8515682078777081856 1 +8518454006987948032 1 +8519937082746634240 1 +8523972434954510336 1 +8524940073536954368 1 +8525336514806317056 1 +8525894870444638208 1 +8532016240026279936 1 +8536948829863198720 1 +8540237852367446016 1 +8543177193114779648 1 +8547243497773457408 1 +8551446856960942080 1 +8553195689344991232 1 +8554899472487596032 1 +8555933456197828608 1 +8555948987770511360 1 +8557218322962644992 1 +8558000156325707776 1 +8560526613401714688 1 +8569030475428511744 1 +8570983266408103936 1 +8571268359622172672 1 +8573305425181941760 1 +8577096957495025664 1 +8579974641030365184 1 +8583916402383601664 1 +8613562211893919744 1 +8625937019655200768 1 +8631515095562887168 1 +8637720762289659904 1 +8639254009546055680 1 +8641221723991433216 1 +8643198489997254656 1 +8644602243484803072 1 +8649296591032172544 1 +8652485812846567424 1 +8656571350884048896 1 +8660248367767076864 1 +8665969966920990720 1 +8666178591503564800 1 +8677632093825916928 1 +8677794924343164928 1 +868 1 +8682955459667951616 1 +8687042963221159936 1 +8688483860094599168 1 +8693036785094565888 1 +8697823501349609472 1 +8698055291501543424 1 +8708232769657815040 1 +8708845895460577280 1 +871 1 +8714829359200747520 1 +8716401555586727936 1 +8720504651219001344 1 +8723248113030782976 1 +873 1 +8731960288562044928 1 +8734584858442498048 1 +8736061027343859712 1 +874 1 +8752150411997356032 1 +8759089349412847616 1 +8759184090543857664 1 +8760285623204290560 1 +8761174805938331648 1 +8769199243315814400 1 +8773222500321361920 1 +8775009214012456960 1 +8779073705407963136 1 +8779711700787298304 1 +878 1 +8780196485890555904 1 +8782900615468302336 1 +8783241818558193664 1 +8785153741735616512 1 +8792059919353348096 1 +8793387410919038976 1 +8795069490394882048 1 +8806507556248731648 1 +8808467247666241536 1 +8811693967537774592 1 +8815398225009967104 1 +8817665768680906752 1 +8822384228057604096 1 +8825059717746376704 1 +8829545979081744384 1 +883 1 +8836228556823977984 1 +8837420822750314496 1 +8849475396952514560 1 +8850055384477401088 1 +8853989376829833216 1 +8854495099223375872 1 +8854677881758162944 1 +8854715632851345408 1 +8856674723376668672 1 +8868529429494071296 1 +8871707618793996288 1 +8875745082589929472 1 +888 1 +8895174927321243648 1 +8896237972875370496 1 +8897901899039473664 1 +8899122608190930944 1 +8900180888218329088 1 +8900351886974279680 1 +8900545829211299840 1 +8905330479248064512 1 +8910706980937261056 1 +8920344895701393408 1 +8920533610804609024 1 +8927691194719174656 1 +8928133990107881472 1 +8935252708196999168 1 +8936639033158410240 1 +8939431770838810624 1 +8945004737083555840 1 +8945302550165004288 1 +8962097525980225536 1 +8972161729142095872 1 +8979012655944220672 1 +898 2 +8983857919580209152 1 +8983912573761167360 1 +8984935029383389184 1 +8987827141270880256 1 +8991071342495531008 1 +8991442360387584000 1 +8994608999945125888 1 +8995562121346260992 1 +8996824426131390464 1 +9000633029632499712 1 +9001907486943993856 1 +9005866015985713152 1 +9016280522993975296 1 +9020143715350814720 1 +9023663198045544448 1 +9030480306789818368 1 +9038087402564657152 1 +9040958359122640896 1 +9043089884440068096 1 +9048002942653710336 1 +9048297564833079296 1 +9050032047355125760 1 +9053187076403060736 1 +9054887854393950208 1 +9062227900376203264 1 +9064847977742032896 1 +9067985867711291392 1 +9073672806863790080 1 +9075404705968840704 1 +9078604269481148416 1 +908 1 +9083076230151864320 1 +9083704659251798016 1 +9084402694981533696 1 +9085381906890203136 1 +9085434340468473856 1 +9086905513121890304 1 +9089435102788009984 1 +9091082386452684800 1 +9091085792947666944 1 +9094945190752903168 1 +9096395849845194752 1 +91 1 +9104574294205636608 1 +9107991000536498176 1 +9112400579327483904 1 +9114850402293882880 1 +9116137265342169088 1 +9117063974299148288 1 +9119046173224370176 1 +9123116008004288512 1 +913 1 +9131533983989358592 1 +9132009829414584320 1 +9136234417125007360 1 +9136548192574529536 1 +9139805788041134080 1 +914 1 +9148071980848742400 1 +9149216169284091904 1 +9165199002069458944 1 +9169248521377374208 1 +917 1 +9174894805640142848 1 +918 1 +9180098147855769600 1 +9182828596851990528 1 +9185458640237641728 1 +9185952983951343616 1 +9188173682239275008 1 +919 1 +9190466190353661952 1 +9191943992860327936 1 +9194388393453060096 1 +9199741683232399360 1 +9207107990561972224 1 +9207927479837319168 1 +9209153648361848832 1 +921 1 +9211455920344088576 1 +922 1 +923 1 +927 1 +928 1 +939 1 +94 1 +945 1 +947 1 +950 2 +958 1 +961 1 +965 1 +967 1 +976 1 +979 1 +982 1 +987 1 +997 1 +999 1 +NULL 0 +PREHOOK: query: explain vectorization detail +select b, count(i) from vectortab2korc group by b +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b, count(i) from vectortab2korc group by b +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: true + enabledConditionsMet: [hive.vectorized.execution.enabled IS true] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez +#### A masked pattern was here #### + Edges: + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + TableScan Vectorization: + native: true + projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + Select Operator + expressions: i (type: int), b (type: bigint) + outputColumnNames: i, b + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [2, 3] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count(i) + Group By Vectorization: + className: VectorGroupByHashOneLongKeyCountColumnOperator + groupByMode: HASH + vectorOutput: true + keyExpressions: col 3 + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + vectorProcessingMode: HASH + projectedOutputColumns: [0] + singleCountAggreation: COUNT_COLUMN + keys: b (type: bigint) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint) + sort order: + + Map-reduce partition columns: _col0 (type: bigint) + Reduce Sink Vectorization: + className: VectorReduceSinkLongOperator + keyColumns: [0] + native: true + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + valueColumns: [1] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Execution mode: vectorized, llap + LLAP IO: all inputs + Map Vectorization: + enabled: true + enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true + groupByVectorOutput: true + inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + allNative: true + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 13 + includeColumns: [2, 3] + dataColumns: t:tinyint, si:smallint, i:int, b:bigint, f:float, d:double, dc:decimal(38,18), bo:boolean, s:string, s2:string, ts:timestamp, ts2:timestamp, dt:date + partitionColumnCount: 0 + Reducer 2 + Execution mode: vectorized, llap + Reduce Vectorization: + enabled: true + enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true + reduceColumnNullOrder: a + reduceColumnSortOrder: + + groupByVectorOutput: true + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 2 + dataColumns: KEY._col0:bigint, VALUE._col0:bigint + partitionColumnCount: 0 + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + Group By Vectorization: + aggregators: VectorUDAFCountMerge(col 1) -> bigint + className: VectorGroupByOperator + groupByMode: MERGEPARTIAL + vectorOutput: true + keyExpressions: col 0 + native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + vectorProcessingMode: MERGE_PARTIAL + projectedOutputColumns: [0] + keys: KEY._col0 (type: bigint) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + File Sink Vectorization: + className: VectorFileSinkOperator + native: false + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b, count(i) from vectortab2korc group by b +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(i) from vectortab2korc group by b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 1 +-6919476845891313664 1 +-6920172215209426944 1 +-6921654334727036928 1 +-6933565857643814912 1 +-6934304742087655424 1 +-6935038507792801792 1 +-6935548339131138048 1 +-6938706403992854528 1 +-6941777546186579968 1 +-6947955278050181120 1 +-6951350560260784128 1 +-6957946688477274112 1 +-6960947572095770624 1 +-6962271229404348416 1 +-6962292590214234112 1 +-6968771079156654080 1 +-6968892545529896960 1 +-6970396058557005824 1 +-6974654664348033024 1 +-6975459232300236800 1 +-6986178228432322560 1 +-6988811476286873600 1 +-6988970700649168896 1 +-6992217501957169152 1 +-6997233584896229376 1 +-7000925438663041024 1 +-7003696402314215424 1 +-7011425384222244864 0 +-7017212700635545600 1 +-7020852530219171840 1 +-7030489936116252672 1 +-7035132060308643840 0 +-7036607470351654912 1 +-7037375807670501376 1 +-7037638331316469760 1 +-7038455462786334720 1 +-7040248820505149440 1 +-7041362811802148864 1 +-7042183597114081280 1 +-7046180371529351168 1 +-7049618574399692800 1 +-7052619594823221248 1 +-7055619148037554176 1 +-7055760785575665664 1 +-7057750467944931328 1 +-7058986555327307776 1 +-7063777488249085952 1 +-7078068944081002496 1 +-7079898537463537664 1 +-7081500255163727872 1 +-7083646746411720704 1 +-7085247548404178944 1 +-7093825013581979648 1 +-7094189393339678720 1 +-7094827141662539776 1 +-7104310188119834624 1 +-7106210529681350656 1 +-7109790267244814336 1 +-7115054815375073280 0 +-7120456708338688000 1 +-7127548949860818944 1 +-7138415011665043456 1 +-7139677575412686848 1 +-7140008543769042944 1 +-7144791190333546496 1 +-7145585429014888448 1 +-7147490721376591872 1 +-7152177800841502720 1 +-7155539549555105792 1 +-7158472098920390656 1 +-7159700138947862528 1 +-7161165959057334272 1 +-7162299524557471744 1 +-7172594404186693632 1 +-7185369278665605120 1 +-7192529627893858304 1 +-7194281951646187520 1 +-7195217207163166720 1 +-7198372044947275776 1 +-7199983995864711168 1 +-7201085131997011968 1 +-7209060152494817280 1 +-7213775605408178176 1 +-7220731681653604352 1 +-7221474017515347968 1 +-7228589258642194432 1 +-7240213957902663680 1 +-7242345057866285056 1 +-7245872320493322240 1 +-7246123871306244096 1 +-7255010240787030016 1 +-7255686273677328384 1 +-7262049693594943488 1 +-7262384251828518912 1 +-7262798781688651776 1 +-7263060340185194496 1 +-7265998318110711808 1 +-7266719102957125632 1 +-7270034223527993344 1 +-7273590251991162880 1 +-7273694358642851840 1 +-7276111129363046400 1 +-7287583262310350848 1 +-7292078334519894016 1 +-7296096276653391872 1 +-7303847963918393344 1 +-7319315187617587200 1 +-7326863346317598720 1 +-7328087811698909184 1 +-7329767178250018816 1 +-7329807949048193024 1 +-7330203470474985472 1 +-7330413050756235264 1 +-7333278178640953344 1 +-7333362172439035904 1 +-7340231535789727744 1 +-7344146703223496704 1 +-7344947507044466688 1 +-7345562788132315136 1 +-7356685674003021824 1 +-7357888618985873408 0 +-7362189611124563968 1 +-7366430883634929664 1 +-7378096180613840896 1 +-7380731416973295616 1 +-7395343938785738752 1 +-7395553021620731904 1 +-7399631791131074560 1 +-7404052043914526720 1 +-7404057145074712576 1 +-7409317158045442048 1 +-7409653086454030336 1 +-7412431471807283200 1 +-7413317118463164416 1 +-7419068456205385728 1 +-7420448501073051648 1 +-7425160895830573056 1 +-7429331808102899712 1 +-7433265617153343488 0 +-7442593976514420736 1 +-7444070205513138176 1 +-7451660755269853184 1 +-7453525026342617088 1 +-7455898404374921216 1 +-7456869587112255488 1 +-7461750143936897024 1 +-7464270453557993472 1 +-7469660864676585472 1 +-7470307155642245120 1 +-7476082621253402624 1 +-7483435388852559872 1 +-7488345684795342848 1 +-7488415863027367936 1 +-7494411162675691520 1 +-7496839341561954304 1 +-7497303453253402624 1 +-7500200359698907136 1 +-7501803640821456896 1 +-7506254246954500096 1 +-7507424948896415744 1 +-7507578199583694848 1 +-7510418793070075904 1 +-7511202710200885248 1 +-7511952204985049088 1 +-7512289590991544320 1 +-7512297136103800832 1 +-7515996202498473984 1 +-7524170566881329152 1 +-7526793959592140800 1 +-7528526815026692096 1 +-7532751268425261056 1 +-7535857766791577600 1 +-7535958203887706112 1 +-7536330682873937920 1 +-7540104552219860992 1 +-7541860097718902784 1 +-7542857121910046720 1 +-7547245548870025216 1 +-7547432761381339136 1 +-7551394356730339328 1 +-7557017910095650816 1 +-7558524160894427136 1 +-7571293705217687552 1 +-7571957778022178816 1 +-7572262898020278272 1 +-7572962089372991488 1 +-7576194692683563008 1 +-7593363318079610880 1 +-7594824008626372608 1 +-7598782894648565760 1 +-7600138468036386816 1 +-7603467428164009984 1 +-7603569103205916672 1 +-7610137349734883328 1 +-7611584069753552896 1 +-7612455481940246528 0 +-7612466483992051712 1 +-7616522969329262592 1 +-7617860842651017216 1 +-7623047151287754752 1 +-7623359796281999360 1 +-7623405558242500608 1 +-7624057992767782912 1 +-7629401308029976576 1 +-7637494527844343808 1 +-7637755520917741568 1 +-7642381493746483200 1 +-7647020450676146176 1 +-7661192563533062144 1 +-7661250850555633664 1 +-7663293054873812992 1 +-7665186441284968448 1 +-7668388017287020544 0 +-7669169138124275712 1 +-7673901622181953536 1 +-7679894005808693248 1 +-7686220526274502656 1 +-7687052294777208832 1 +-7692192232238678016 1 +-7695491171376291840 1 +-7700203302632210432 1 +-7703540456272994304 1 +-7707242953271500800 1 +-7707867749256445952 1 +-7708932208121225216 1 +-7709958788604936192 1 +-7712425776235274240 1 +-7720966287634112512 0 +-7739424919198187520 1 +-7744462446680375296 1 +-7751265769984491520 1 +-7751427073017544704 1 +-7753051494275432448 1 +-7759238919361888256 1 +-7759425383684849664 1 +-7772064021830574080 1 +-7773957003968675840 1 +-7777884099756122112 1 +-7778829032042790912 1 +-7779270198785875968 1 +-7782344916178796544 1 +-7784419454650843136 1 +-7792903881635938304 1 +-7793447076762345472 1 +-7797149520019062784 1 +-7797151404935618560 1 +-7800879252150779904 1 +-7802538500225777664 1 +-7804116532814151680 1 +-7805985795815342080 1 +-7811060170911375360 1 +-7818454479651135488 1 +-7819437864839495680 1 +-7822452149325094912 1 +-7824788571789279232 1 +-7827420207675105280 1 +-7831320202242228224 1 +-7831595638727565312 1 +-7833618000492109824 1 +-7835907977757245440 1 +-7838598833900584960 1 +-7840338174858199040 1 +-7845896959112658944 1 +-7848043121524228096 1 +-7849504559236210688 1 +-7858505678035951616 0 +-7866079955473989632 1 +-7867219225874571264 1 +-7868306678534193152 1 +-7873753603299540992 1 +-7875953567586451456 1 +-7877598807023386624 1 +-7878145001776152576 1 +-7879864376629567488 1 +-7881262505761710080 1 +-7881351200983613440 1 +-7883252982752665600 1 +-7884460946615984128 1 +-7888051992910274560 1 +-7892780594910871552 1 +-7893577088764174336 1 +-7894382303337832448 1 +-7895991410072928256 1 +-7902517224300036096 1 +-7903158849011843072 1 +-7904188195431661568 1 +-7907355742053883904 1 +-7910019233726242816 1 +-7911421221625077760 1 +-7915999634274369536 1 +-7916510129632296960 1 +-7928062266382778368 1 +-7928440849566146560 1 +-7939634346485858304 1 +-7949309059286163456 1 +-7949445503604604928 1 +-7953426740065312768 1 +-7964801953178091520 1 +-7966960765508280320 1 +-7978782649203228672 1 +-7989766326847807488 1 +-7998947380180819968 1 +-8007017894942638080 1 +-8013397854633648128 1 +-8016589197379289088 1 +-8017791189288869888 1 +-8018511948141748224 1 +-8021859935185928192 1 +-8022573309127000064 1 +-8023708819947323392 1 +-8028275725610909696 1 +-8028910243475038208 1 +-8030058711611629568 1 +-8034414142083170304 1 +-8046189486447017984 1 +-8046238369820344320 1 +-8047774491688255488 1 +-8051395538179063808 1 +-8051587217208967168 1 +-8051871680800120832 0 +-8054581198284668928 1 +-8067243114610532352 1 +-8070535484085895168 1 +-8076479329071955968 1 +-8082793390939193344 1 +-8084716955963252736 1 +-8086577583338061824 1 +-8088337436168830976 1 +-8099313480512716800 1 +-8103788088118018048 1 +-8104684579106914304 1 +-8108693586698706944 1 +-8115963579415650304 1 +-8117838333114212352 1 +-8122639684164501504 1 +-8127494999848919040 1 +-8131997716860526592 1 +-8136227554401107968 1 +-8140349174954893312 0 +-8142667274351345664 1 +-8147405381260345344 1 +-8158011642485825536 0 +-8161047750470279168 1 +-8172827216441573376 1 +-8182421179156905984 1 +-8191825921746305024 1 +-8194062064124362752 1 +-8203008052020879360 1 +-8203075743525806080 1 +-8205148279289085952 1 +-8214462866994339840 0 +-8219876839318716416 1 +-8232763638546694144 1 +-8240034910581153792 1 +-8240684139569233920 1 +-8243487285852766208 1 +-8244116388227104768 1 +-8244657976255889408 1 +-8260340354454503424 1 +-8269917980278980608 1 +-8270479187688816640 1 +-8275337702906757120 1 +-8280276629934981120 1 +-8293833565967810560 1 +-8297230235506343936 1 +-8300526097982226432 1 +-8300764106868350976 1 +-8302817097848307712 1 +-8317591428117274624 1 +-8318886086186213376 1 +-8322751250650218496 1 +-8330233444291084288 1 +-8335810316927213568 1 +-8340523561480437760 1 +-8345065519816695808 1 +-8347088645602050048 1 +-8357136656913686528 1 +-8358130693961195520 1 +-8359839265974165504 1 +-8368269352975982592 0 +-8368487814665895936 1 +-8369487968903897088 1 +-8379109122834997248 1 +-8379964450833367040 1 +-8384695077413412864 1 +-8387347109404286976 1 +-8387536830476820480 1 +-8395998375405912064 1 +-8400045653258444800 1 +-8411282676082565120 1 +-8418913260807217152 1 +-8425998949410889728 1 +-8426531414463545344 1 +-8430283518005846016 1 +-8430370933326536704 0 +-8431492599012163584 1 +-8438554249514491904 1 +-8445801063348281344 1 +-8453491903284994048 1 +-8454143651040444416 1 +-8465978403747037184 1 +-8469607298426437632 1 +-8471480409335513088 1 +-8485389240529354752 1 +-8488247955875618816 1 +-8490382417169408000 1 +-8494118409594650624 1 +-8503342882470019072 1 +-8503573595507761152 1 +-8507279516485566464 1 +-8509547439040757760 1 +-8518060755719585792 1 +-8518258741831680000 1 +-8521578237232529408 1 +-8522878384019169280 1 +-8523434203900674048 1 +-8525212657458348032 1 +-8535957064499879936 1 +-8536369662934401024 1 +-8543982423727128576 1 +-8544299740525461504 1 +-8545239748068941824 1 +-8546758906409312256 1 +-8552393882631389184 1 +-8555709701170552832 1 +-8559008501282832384 1 +-8559252110266564608 1 +-8562524688907485184 1 +-8566856504746352640 1 +-8566940231897874432 1 +-8570933074545745920 1 +-8572823448513445888 1 +-8572949572756774912 1 +-8581765103969312768 1 +-8581979259158929408 1 +-8584520406368493568 1 +-8585134536083660800 1 +-8585966098173870080 1 +-8593419958317056000 1 +-8603817012434198528 1 +-8604758220106014720 1 +-8607195685207408640 1 +-8615168537390571520 1 +-8619303037130301440 1 +-8623238306523824128 1 +-8623965248051789824 1 +-8632237187473088512 0 +-8649711322250362880 1 +-8651641150831362048 1 +-8654433008222797824 1 +-8654797319350927360 1 +-8658387566611996672 0 +-8659643752269242368 1 +-8659692318743314432 1 +-8660149447361404928 1 +-8664374244449050624 1 +-8664806103426252800 1 +-8665218198816497664 1 +-8665764757143658496 1 +-8675661101615489024 1 +-8675892979328212992 1 +-8683802826440105984 1 +-8688153842294595584 1 +-8689606130068611072 1 +-8694818694700048384 1 +-8696162322976997376 1 +-8703026916864802816 1 +-8704234107608203264 1 +-8705403811649355776 1 +-8710298418608619520 1 +-8714995808835444736 1 +-8719510423723155456 1 +-8730803262481580032 0 +-8731068123910987776 1 +-8746702976270385152 1 +-8754966081778565120 1 +-8754992450211692544 1 +-8756989568739835904 1 +-8760655406971863040 1 +-8763062627136864256 1 +-8768744394742235136 1 +-8782213262837530624 1 +-8783777723063099392 1 +-8789178184387641344 1 +-8797972842900307968 1 +-8807361476639629312 0 +-8813211231120031744 1 +-8831091081349758976 1 +-8832750849949892608 1 +-8833019327569510400 1 +-8835408234247168000 1 +-8836899523028312064 1 +-8843859708698583040 1 +-8844949406948671488 1 +-8845239510002753536 1 +-8852770376039219200 1 +-8853553406533894144 1 +-8856151919723003904 1 +-8856821118526734336 1 +-8857335871148171264 1 +-8858063395050110976 1 +-8859107121649893376 1 +-8866442231663067136 1 +-8870186814744420352 0 +-8870673219965001728 1 +-8875546987176206336 1 +-8877053610728161280 1 +-8877431933441327104 1 +-8879742387365429248 1 +-8881446757271846912 1 +-8887058200926093312 1 +-8892963883085578240 1 +-8896045754034978816 1 +-8914039133569400832 1 +-8916987977485312000 1 +-8922409715403112448 1 +-8923529803981905920 1 +-8927968289860370432 1 +-8930307926221807616 1 +-8938849835283677184 1 +-8940944155843461120 1 +-8941201923743703040 0 +-8946656952763777024 1 +-8948335470186373120 1 +-8959796625322680320 1 +-8961059046745669632 1 +-8962547695651323904 1 +-8965578088652095488 1 +-8989473881707921408 1 +-8990843030306717696 1 +-8992599250893979648 1 +-8996954350906294272 1 +-9002912355472736256 1 +-9004892183139811328 1 +-9008631121684832256 1 +-9012093603044245504 1 +-9013952631912325120 1 +-9014145341570203648 1 +-9022154842129547264 1 +-9032650742739836928 1 +-9049720998034137088 1 +-9051477157204770816 1 +-9058029636530003968 1 +-9066993118333706240 1 +-9071565764086521856 1 +-9075302542655684608 1 +-9075486079396069376 1 +-9078662294976061440 1 +-9079801920509001728 1 +-9080568167841226752 1 +-9080956291212132352 1 +-9084940280061485056 1 +-9088239683374350336 1 +-9091113592821972992 1 +-9095689235523264512 1 +-9101953184875757568 1 +-9102482277760983040 1 +-9105358806324035584 1 +-9105701280936501248 1 +-9109392978217484288 1 +-9117959922369060864 1 +-9126793997498957824 1 +-9136398397785948160 1 +-9142610685888192512 1 +-9145593811310010368 1 +-9148197394287779840 1 +-9149719074367946752 1 +-9157613004431998976 1 +-9175038118837149696 1 +-9175279464813223936 1 +-9178166810751909888 1 +-9187662685618348032 0 +-9189155542884474880 1 +-9203804401302323200 1 +-9203942396257984512 1 +-9206329156028112896 1 +-9210275791460499456 1 +-9213132862973829120 1 +-9215144824304721920 1 +-9218875542187065344 1 +-9219066990552760320 1 +1021 1 +1030 1 +1032 1 +1039 1 +1046 1 +1048 1 +1053 1 +1055 1 +1058 1 +1065 1 +1066 1 +1074 1 +1075 2 +108 1 +1086 1 +1093 0 +1094 1 +1095 1 +1099 1 +1115 1 +112 1 +1127 1 +1128 1 +1132 1 +1134 1 +1141 1 +1142 1 +1145 1 +1153 1 +1157 1 +1158 1 +1165 2 +1168 0 +1177 1 +1187 1 +1189 1 +1198 1 +120 1 +1201 1 +1217 1 +1234 1 +1243 1 +1247 1 +1252 1 +1261 1 +1270 1 +1280 1 +1282 1 +1286 1 +1287 1 +1290 1 +1291 1 +1299 1 +130 1 +1307 1 +1312 1 +1316 1 +1321 1 +1337 1 +1341 1 +1342 1 +1343 1 +1345 1 +1346 1 +135 1 +1366 1 +1368 2 +1371 2 +138 1 +1386 1 +1398 1 +1409 1 +1422 1 +1423 1 +1436 1 +1439 1 +1447 0 +1450 1 +1454 0 +1458 1 +1462 1 +1466 1 +1470 1 +1477 1 +1481 2 +1489 1 +1493 1 +1495 1 +1501 1 +1506 1 +1508 1 +1509 2 +1518 1 +1520 0 +1521 1 +1524 1 +1530 1 +1537 2 +154 2 +1541 1 +1542 0 +1545 1 +1556 1 +1559 1 +1561 0 +1566 1 +1604 1 +1606 1 +1608 1 +1613 1 +1614 1 +1620 1 +1638 1 +1641 0 +1643 1 +1648 1 +1651 1 +1667 1 +1671 1 +1674 1 +1676 1 +1678 1 +168 1 +1681 1 +169 1 +1693 1 +1701 2 +1704 1 +1719 2 +1726 0 +1728 1 +1745 1 +1751 1 +1752 1 +1769 1 +1774 1 +1775 1 +1777 1 +1780 1 +1781 0 +1785 1 +1786 1 +1788 1 +1789 1 +1791 1 +1796 1 +1806 1 +181 1 +1811 1 +1813 1 +1826 1 +1827 1 +1835 1 +1837 1 +1845 1 +1846 1 +1856 2 +1862 1 +1863 1 +1864 0 +1866 1 +187 1 +1870 1 +188 1 +1880 1 +1890 1 +1892 1 +1899 1 +19 2 +1906 1 +1910 1 +1914 2 +1926 1 +1937 1 +1940 1 +1941 1 +1948 3 +1955 1 +1965 1 +1972 1 +1981 1 +1983 1 +1987 1 +1990 1 +1995 1 +1999 1 +2001 1 +2002 1 +2004 1 +2009 1 +2011 1 +2013 1 +2016 1 +2017 1 +2020 2 +2025 1 +2026 1 +2029 1 +203 1 +204 1 +2046 1 +2056 1 +2067 0 +2072 1 +2073 1 +2085 1 +2089 1 +2092 1 +2105 1 +2106 1 +2108 1 +213 2 +2131 1 +2138 1 +2140 1 +2144 1 +2155 1 +2177 1 +2179 1 +2180 1 +2183 1 +2186 1 +2187 1 +2189 0 +2193 2 +2194 1 +22 1 +2201 1 +2205 1 +2214 1 +2217 1 +2218 0 +2223 1 +2227 1 +2229 1 +2232 1 +2241 1 +2244 1 +2255 1 +2262 1 +2264 1 +2270 1 +2274 1 +2277 1 +2279 1 +228 1 +2283 1 +2285 2 +2295 1 +2306 1 +2320 1 +2323 1 +2325 2 +2335 1 +2341 1 +2348 1 +2358 1 +236 1 +2373 1 +238 1 +2386 1 +2393 2 +2398 1 +2400 1 +2410 0 +2412 2 +2420 1 +2426 1 +2434 1 +244 1 +2461 1 +2463 3 +2465 1 +2469 1 +2475 1 +2476 1 +2485 2 +2487 0 +2492 1 +2494 1 +2502 1 +2506 1 +2509 1 +2512 1 +2514 1 +2515 1 +2517 1 +2524 1 +2533 1 +2539 1 +2540 1 +255 1 +2551 1 +2553 1 +2560 2 +2563 1 +2565 1 +2569 1 +2579 1 +2580 1 +2587 1 +259 1 +2599 1 +2607 0 +2608 1 +2619 2 +2625 1 +2626 1 +263 2 +2637 1 +2647 1 +2649 1 +2662 1 +2663 1 +2675 1 +268 2 +2680 1 +2682 1 +2688 1 +2689 1 +2692 0 +2700 1 +2712 1 +2714 1 +2715 2 +2719 1 +2724 1 +2725 1 +2735 1 +2745 1 +275 1 +2752 1 +2762 1 +2772 1 +2776 1 +2786 2 +279 1 +2790 1 +2791 1 +2803 3 +2805 1 +281 1 +2810 1 +2811 1 +2816 1 +2821 1 +2824 1 +2835 1 +2842 1 +2843 2 +2846 1 +2847 1 +2848 1 +2850 1 +2855 2 +2862 1 +2878 1 +2886 1 +289 1 +2897 2 +2900 1 +2903 1 +2905 1 +2911 1 +2915 1 +2919 1 +2933 2 +2938 1 +294 1 +2941 1 +2942 1 +296 2 +2962 1 +2968 1 +2971 1 +2977 1 +2979 1 +2984 1 +2986 1 +2988 1 +2991 0 +3002 1 +3006 1 +301 1 +302 1 +3021 2 +3024 1 +3029 1 +3031 0 +3036 1 +3043 1 +3054 1 +3055 1 +3058 1 +3059 1 +3060 2 +3067 1 +3071 1 +3073 1 +3079 1 +3083 1 +3084 1 +3089 1 +3094 1 +3103 1 +311 1 +3111 1 +3118 0 +3119 1 +3144 1 +3147 1 +3159 2 +3163 1 +3174 1 +3183 1 +3190 1 +3197 1 +3199 1 +320 1 +3203 1 +3206 1 +3208 1 +3212 1 +3213 1 +3231 1 +3232 1 +3235 1 +3244 1 +3245 1 +3248 1 +3249 1 +3253 1 +3255 1 +3263 1 +3286 1 +3300 1 +3307 1 +3322 1 +3333 1 +3352 1 +336 1 +3365 1 +3366 1 +3397 1 +34 1 +3401 1 +3407 0 +3409 1 +341 1 +3418 2 +342 1 +3421 1 +3430 1 +3443 1 +3446 1 +345 0 +3456 0 +346 2 +3460 1 +3462 3 +3467 2 +347 1 +3472 1 +3478 1 +3493 1 +350 1 +3507 1 +3510 1 +3512 1 +3533 1 +3534 0 +3541 1 +3542 1 +355 1 +3554 1 +3555 2 +3563 1 +3566 1 +3567 1 +3568 0 +3579 1 +3588 2 +3599 1 +3606 1 +3608 1 +3609 1 +361 1 +3613 1 +3622 2 +3625 1 +3630 1 +3637 1 +364 1 +3648 1 +3663 1 +3664 1 +367 1 +3672 1 +3673 1 +3677 1 +3680 1 +3682 1 +3690 1 +3691 1 +3701 1 +3702 1 +3703 1 +3707 1 +3722 1 +3724 1 +3725 2 +3728 2 +3739 1 +3747 1 +3749 1 +375 1 +3755 1 +3763 1 +3764 1 +3769 1 +3770 2 +378 1 +3781 2 +3789 1 +379 1 +3810 1 +3812 1 +3823 1 +3824 1 +383 2 +3830 1 +3835 1 +3841 1 +3848 1 +3858 1 +3860 1 +3866 2 +3874 1 +3879 1 +388 1 +3887 1 +3901 1 +3904 1 +3907 1 +391 1 +3910 0 +3911 1 +3913 1 +392 1 +3932 1 +3940 1 +3941 1 +3945 1 +3946 1 +3949 1 +3958 1 +3960 1 +3961 1 +3962 0 +3965 1 +3974 2 +3980 1 +3990 1 +4018 1 +4020 1 +4024 1 +4030 1 +4037 1 +4051 1 +4054 1 +4056 1 +4075 0 +4078 1 +4088 1 +41 1 +412 2 +417 1 +425 1 +443 1 +454 1 +455 1 +462 1 +470 1 +471 1 +481 1 +482 1 +485 1 +489 1 +49 1 +490 1 +491 1 +5 1 +500 1 +501 2 +504 1 +522 1 +523 1 +524 1 +530 1 +535 1 +579 1 +583 1 +584 1 +586 1 +587 1 +590 1 +597 1 +601 1 +612 1 +615 1 +618 1 +65 1 +650 1 +658 1 +66 1 +661 2 +663 1 +664 1 +677 1 +68 1 +681 1 +687 1 +688 0 +690 1 +691 1 +6923604860394528768 1 +6924820982050758656 1 +6926925215281774592 1 +6927260280037097472 1 +6928080429732536320 1 +6933001829416034304 1 +6933451028794925056 1 +6933731240564056064 1 +6934570741217755136 1 +694 1 +6947488599548215296 1 +695 1 +6960137166475911168 1 +6962726713896484864 1 +6963217546192322560 1 +6964585306125008896 1 +6967631925774639104 1 +6969599299897163776 1 +6974475559697768448 1 +6982145326341423104 1 +6987889924212203520 1 +6991316084916879360 1 +6996686091335884800 1 +7006803044329021440 1 +7013693841855774720 1 +7014537632150224896 1 +7017956982081404928 1 +7022349041913978880 1 +7027529814236192768 1 +7031339012080549888 1 +7039820685967343616 1 +7045967493826387968 1 +7049773031131283456 1 +7052226236896256000 1 +7054271419461812224 1 +7054938591408996352 1 +7060236714847412224 1 +7061498706968428544 1 +7061809776248545280 1 +7062382339142156288 1 +7062605127422894080 1 +7065344324692443136 1 +7068517339681259520 1 +7069729473166090240 0 +707 1 +7077311975029555200 1 +7078641038157643776 0 +7080269176324218880 1 +7084659344078970880 1 +7086206629592252416 1 +7091300332052062208 0 +7099005292698550272 1 +71 1 +7107604675626008576 1 +7125231541858205696 1 +7128222874437238784 1 +7130159794259353600 1 +7130306447560826880 1 +7149417430082027520 1 +7153922334283776000 0 +7157247449513484288 1 +7164349895861829632 1 +7165364563962191872 1 +7166263463731421184 1 +7175638927948562432 1 +7186401810812059648 1 +7195454019231834112 1 +7198687580227043328 1 +7199539820886958080 0 +7204802700490858496 1 +7210160489915236352 1 +7212016545671348224 1 +7212090742612467712 1 +7217123582035116032 1 +7220131672176058368 1 +7220581538170413056 1 +7223569671814987776 1 +7226360892091416576 1 +7229607057201127424 1 +723 1 +7231399302953377792 1 +7232273749940838400 1 +7235109456886816768 1 +7237310132329488384 1 +7238339720750948352 1 +724 1 +7242751359672631296 1 +7249443195032985600 1 +7250237407877382144 1 +7254710367022645248 1 +7255302164215013376 1 +7259955893466931200 0 +7260908278294560768 1 +7265141874315517952 1 +7266437490436341760 1 +7271786885641666560 1 +7271887863395459072 1 +7274777328897802240 1 +7291432593139507200 1 +7295502697317097472 1 +7295926343524163584 1 +7296164580491075584 1 +7299197687217856512 1 +73 1 +7304839835188609024 1 +7308289763456000000 1 +7309156463509061632 1 +7310869618402910208 1 +7319711402123149312 1 +7333512171174223872 1 +7339426767877390336 1 +7343171468838567936 1 +7344029858387820544 1 +7345991518378442752 1 +7347732772348870656 1 +7348598907182800896 1 +735 1 +7354813692542304256 1 +7359004378440146944 1 +736 1 +7368920486374989824 1 +7370078518278397952 1 +7370803940448305152 1 +7375521127126089728 1 +7376467688511455232 1 +7378993334503694336 1 +738 1 +7381659098423926784 1 +7384150968511315968 1 +7386087924003676160 1 +7391208370547269632 1 +7393308503950548992 1 +7394967727502467072 1 +7401968422230032384 1 +7410096605330227200 1 +7410872053689794560 1 +7411793502161182720 1 +7412924364686458880 1 +7414865343000322048 1 +7418271723644403712 1 +743 1 +7432428551399669760 1 +7432998950057975808 1 +7436133434239229952 1 +7440265908266827776 1 +7450416810848313344 1 +7452756603516190720 1 +7454442625055145984 1 +7454632396542074880 1 +7461153404961128448 1 +7471208109437304832 1 +7473537548003352576 1 +7486884806277611520 1 +7487338208419823616 1 +7487538600082554880 1 +7490717730239250432 1 +7491898395977523200 1 +7492436934952574976 0 +7497276415392407552 1 +7497306924248834048 1 +7500716020874674176 1 +7514552840617558016 1 +7517159036469575680 1 +7524958388842078208 1 +7528074274555305984 1 +7528211148397944832 1 +7534042483076857856 1 +7534145866886782976 1 +7534549597202194432 1 +7545689659010949120 1 +7548958830580563968 1 +7549858023389003776 0 +7555301305375858688 1 +7566273236152721408 1 +7569249672628789248 1 +7570474972934488064 1 +7573530789362262016 0 +7575087487730196480 1 +7581052107944361984 1 +7581614118458335232 1 +7584007864107778048 1 +7592440105065308160 0 +7593521922173419520 1 +7596563216912211968 1 +7599019810193211392 1 +7608447395949109248 1 +7614435638888210432 1 +7620183559667081216 1 +7621013099259527168 1 +7625728883085025280 1 +7626715182847090688 1 +763 1 +7637152193832886272 1 +7647481735646363648 1 +7648729477297987584 0 +7652123583449161728 1 +7659279803863146496 1 +7662037650719850496 1 +7675009476762918912 1 +7678790769408172032 1 +7682327310082531328 1 +7686992843032010752 1 +7689489436826804224 1 +7690986322714066944 1 +7691062622443044864 1 +7696737688942567424 1 +7697541332524376064 1 +7700734109530767360 1 +7701723309715685376 1 +7705445437881278464 1 +7710447533880614912 1 +7718825401976684544 1 +7720187583697502208 1 +7731443941834678272 1 +7735566678126616576 1 +774 1 +7741854854673367040 1 +7746402369011277824 1 +7747874976739016704 1 +7748799008146366464 1 +7752740515534422016 1 +7753359568986636288 1 +7753882935005880320 1 +7761834341179375616 1 +7762823913046556672 1 +7765456790394871808 1 +7768984605670604800 0 +7775034125776363520 1 +7778936842502275072 1 +7779486624537370624 1 +7779735136559579136 1 +7782245855193874432 1 +7784169796350730240 1 +7784489776013295616 1 +779 1 +7790728456522784768 1 +7792036342592348160 1 +7794244032613703680 1 +78 1 +780 1 +7800332581637259264 1 +7801697837312884736 1 +7818464507324121088 1 +782 1 +7823874904139849728 1 +784 1 +7843804446688264192 1 +7844258063629852672 1 +7845953007588401152 0 +7857878068300898304 1 +7868367829080506368 1 +7870277756614623232 1 +7871189141676998656 1 +7871554728617025536 1 +7874764415950176256 1 +7885697257930588160 1 +7888238729321496576 1 +789 0 +7892026679115554816 1 +7892281003266408448 1 +7898670840507031552 1 +7909645665163804672 1 +7917494645725765632 1 +7919597361814577152 1 +7921639119138070528 1 +7922443154272395264 1 +7926898770090491904 1 +7933040277013962752 1 +7936149988210212864 1 +7944741547145502720 1 +7947544013461512192 1 +7948803266578161664 1 +7955126053367119872 1 +7961515985722605568 1 +7961909238130270208 1 +797 1 +7983789401706094592 1 +7989119273552158720 0 +7989160253372817408 1 +7997694023324975104 1 +7998357471114969088 1 +7998687089080467456 0 +80 0 +8000440057238052864 1 +8002769767000145920 1 +8004633750273925120 1 +8011181697250631680 1 +8011602724663336960 1 +8014986215157530624 1 +8017403886247927808 1 +803 1 +8045070943673671680 1 +8048726769133592576 1 +8059284960252731392 1 +8069531888205086720 1 +8071961599867387904 1 +8073733016154431488 1 +8079573715140485120 1 +808 1 +8087737899452432384 1 +809 1 +8091421389575282688 0 +8099215208813903872 1 +8100036735858401280 1 +8109381965028548608 1 +8111757081791733760 1 +8113585123802529792 1 +8116738401948377088 1 +812 1 +8120593157178228736 1 +8129551357032259584 1 +8135164922674872320 1 +8142241016679735296 1 +8143462899383345152 1 +8144552446127972352 1 +8145745969573666816 1 +8145750910080745472 1 +8146288732715196416 1 +8146492373537660928 1 +8148211378319933440 0 +815 1 +8150115791664340992 1 +8156018594610790400 1 +8156782979767238656 1 +8160569434550403072 1 +8160662610166194176 1 +8163948965373386752 1 +8168742078705262592 1 +8169878743136043008 1 +8171188598958407680 1 +8183233196086214656 1 +8184799300477943808 1 +8190539859890601984 1 +8190967051000659968 1 +8192304692696383488 1 +8195103847607967744 1 +8199513544090730496 1 +820 2 +8201303040648052736 1 +8201491077550874624 1 +8208354137450766336 1 +8210813831744118784 1 +8213810702473183232 1 +8219326436390821888 1 +8220104397160169472 1 +8221561626658881536 1 +8222714144797368320 1 +8223732800007864320 1 +823 1 +8230371298967609344 1 +8235179243092090880 1 +8244041599171862528 1 +8254763178969915392 1 +8268875586442256384 1 +8269730157217062912 1 +8272001752345690112 1 +8279056098670198784 1 +8282648443538710528 1 +8283099811330506752 1 +8286706213485297664 1 +8287522765741301760 1 +8290014929764040704 1 +8290944180915871744 1 +8294315622451740672 1 +8295110846998233088 1 +83 1 +8302473563519950848 1 +8316336224427483136 1 +8323460620425330688 1 +8325227661920133120 1 +8332670681629106176 1 +8333523087360901120 1 +8337549596011102208 1 +8345435427356090368 1 +835 1 +8351163199364390912 1 +8362046808797306880 1 +8365058996333953024 1 +8367680396909404160 1 +8368012468775608320 1 +837 1 +8371939471056470016 1 +8372408423196270592 1 +8372588378498777088 1 +8374321007870836736 1 +8376440110255243264 1 +8383159090746204160 1 +8388363436324085760 1 +8391407951622815744 0 +8391785334471589888 1 +8396433451610652672 1 +8398862954249560064 1 +8407869317250220032 1 +8410599906334097408 1 +8411494452500930560 1 +8415171956168417280 1 +8416121695917498368 1 +8417381121663746048 1 +8419958579638157312 1 +8424515140664360960 1 +8435912708683087872 1 +845 1 +8451612303224520704 1 +8454154705460666368 1 +8455496814886002688 1 +8457906374051020800 1 +8461498293348065280 1 +8463868417649524736 1 +8467976965865799680 1 +8470141334513098752 0 +8472429318602268672 1 +8473699639908261888 1 +8487573502287478784 1 +8489584373231919104 1 +8489735221193138176 1 +85 1 +8501910015960735744 1 +8508401924853850112 1 +8509508263705477120 1 +8514851182589771776 1 +8514979402185596928 1 +8515682078777081856 1 +8518454006987948032 1 +8519937082746634240 1 +8523972434954510336 1 +8524940073536954368 1 +8525336514806317056 1 +8525894870444638208 1 +8532016240026279936 1 +8536948829863198720 1 +8540237852367446016 1 +8543177193114779648 1 +8547243497773457408 1 +8551446856960942080 1 +8553195689344991232 1 +8554899472487596032 1 +8555933456197828608 0 +8555948987770511360 1 +8557218322962644992 1 +8558000156325707776 1 +8560526613401714688 1 +8569030475428511744 1 +8570983266408103936 1 +8571268359622172672 1 +8573305425181941760 1 +8577096957495025664 0 +8579974641030365184 1 +8583916402383601664 1 +8613562211893919744 1 +8625937019655200768 1 +8631515095562887168 1 +8637720762289659904 1 +8639254009546055680 1 +8641221723991433216 1 +8643198489997254656 1 +8644602243484803072 1 +8649296591032172544 1 +8652485812846567424 1 +8656571350884048896 0 +8660248367767076864 1 +8665969966920990720 1 +8666178591503564800 1 +8677632093825916928 1 +8677794924343164928 1 +868 1 +8682955459667951616 1 +8687042963221159936 1 +8688483860094599168 1 +8693036785094565888 1 +8697823501349609472 1 +8698055291501543424 1 +8708232769657815040 1 +8708845895460577280 1 +871 1 +8714829359200747520 1 +8716401555586727936 1 +8720504651219001344 1 +8723248113030782976 1 +873 1 +8731960288562044928 1 +8734584858442498048 1 +8736061027343859712 1 +874 1 +8752150411997356032 1 +8759089349412847616 1 +8759184090543857664 1 +8760285623204290560 1 +8761174805938331648 1 +8769199243315814400 1 +8773222500321361920 1 +8775009214012456960 1 +8779073705407963136 1 +8779711700787298304 1 +878 1 +8780196485890555904 1 +8782900615468302336 1 +8783241818558193664 1 +8785153741735616512 1 +8792059919353348096 1 +8793387410919038976 1 +8795069490394882048 1 +8806507556248731648 1 +8808467247666241536 1 +8811693967537774592 1 +8815398225009967104 1 +8817665768680906752 1 +8822384228057604096 1 +8825059717746376704 1 +8829545979081744384 0 +883 1 +8836228556823977984 1 +8837420822750314496 1 +8849475396952514560 1 +8850055384477401088 1 +8853989376829833216 1 +8854495099223375872 1 +8854677881758162944 1 +8854715632851345408 1 +8856674723376668672 1 +8868529429494071296 1 +8871707618793996288 1 +8875745082589929472 1 +888 1 +8895174927321243648 1 +8896237972875370496 1 +8897901899039473664 1 +8899122608190930944 1 +8900180888218329088 1 +8900351886974279680 1 +8900545829211299840 1 +8905330479248064512 0 +8910706980937261056 1 +8920344895701393408 1 +8920533610804609024 1 +8927691194719174656 1 +8928133990107881472 1 +8935252708196999168 1 +8936639033158410240 1 +8939431770838810624 1 +8945004737083555840 1 +8945302550165004288 1 +8962097525980225536 1 +8972161729142095872 1 +8979012655944220672 1 +898 2 +8983857919580209152 1 +8983912573761167360 0 +8984935029383389184 1 +8987827141270880256 1 +8991071342495531008 1 +8991442360387584000 1 +8994608999945125888 1 +8995562121346260992 1 +8996824426131390464 1 +9000633029632499712 1 +9001907486943993856 1 +9005866015985713152 1 +9016280522993975296 1 +9020143715350814720 0 +9023663198045544448 1 +9030480306789818368 1 +9038087402564657152 0 +9040958359122640896 1 +9043089884440068096 1 +9048002942653710336 1 +9048297564833079296 1 +9050032047355125760 1 +9053187076403060736 1 +9054887854393950208 1 +9062227900376203264 1 +9064847977742032896 1 +9067985867711291392 1 +9073672806863790080 1 +9075404705968840704 1 +9078604269481148416 1 +908 1 +9083076230151864320 1 +9083704659251798016 1 +9084402694981533696 0 +9085381906890203136 1 +9085434340468473856 1 +9086905513121890304 1 +9089435102788009984 1 +9091082386452684800 1 +9091085792947666944 1 +9094945190752903168 1 +9096395849845194752 1 +91 1 +9104574294205636608 1 +9107991000536498176 1 +9112400579327483904 1 +9114850402293882880 1 +9116137265342169088 1 +9117063974299148288 1 +9119046173224370176 1 +9123116008004288512 1 +913 1 +9131533983989358592 1 +9132009829414584320 1 +9136234417125007360 0 +9136548192574529536 1 +9139805788041134080 1 +914 1 +9148071980848742400 1 +9149216169284091904 1 +9165199002069458944 1 +9169248521377374208 1 +917 1 +9174894805640142848 1 +918 1 +9180098147855769600 1 +9182828596851990528 1 +9185458640237641728 1 +9185952983951343616 1 +9188173682239275008 1 +919 1 +9190466190353661952 1 +9191943992860327936 1 +9194388393453060096 1 +9199741683232399360 1 +9207107990561972224 1 +9207927479837319168 1 +9209153648361848832 1 +921 1 +9211455920344088576 1 +922 1 +923 1 +927 1 +928 1 +939 1 +94 0 +945 1 +947 1 +950 2 +958 0 +961 1 +965 1 +967 1 +976 1 +979 1 +982 1 +987 1 +997 1 +999 1 +NULL 80 +PREHOOK: query: explain vectorization detail +select b, count(*) from vectortab2korc group by b +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b, count(*) from vectortab2korc group by b +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: true + enabledConditionsMet: [hive.vectorized.execution.enabled IS true] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez +#### A masked pattern was here #### + Edges: + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + TableScan Vectorization: + native: true + projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + Select Operator + expressions: b (type: bigint) + outputColumnNames: b + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [3] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count() + Group By Vectorization: + className: VectorGroupByHashOneLongKeyCountStarOperator + groupByMode: HASH + vectorOutput: true + keyExpressions: col 3 + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + vectorProcessingMode: HASH + projectedOutputColumns: [0] + singleCountAggreation: COUNT_STAR + keys: b (type: bigint) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint) + sort order: + + Map-reduce partition columns: _col0 (type: bigint) + Reduce Sink Vectorization: + className: VectorReduceSinkLongOperator + keyColumns: [0] + native: true + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + valueColumns: [1] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Execution mode: vectorized, llap + LLAP IO: all inputs + Map Vectorization: + enabled: true + enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true + groupByVectorOutput: true + inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + allNative: true + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 13 + includeColumns: [3] + dataColumns: t:tinyint, si:smallint, i:int, b:bigint, f:float, d:double, dc:decimal(38,18), bo:boolean, s:string, s2:string, ts:timestamp, ts2:timestamp, dt:date + partitionColumnCount: 0 + Reducer 2 + Execution mode: vectorized, llap + Reduce Vectorization: + enabled: true + enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true + reduceColumnNullOrder: a + reduceColumnSortOrder: + + groupByVectorOutput: true + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 2 + dataColumns: KEY._col0:bigint, VALUE._col0:bigint + partitionColumnCount: 0 + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + Group By Vectorization: + aggregators: VectorUDAFCountMerge(col 1) -> bigint + className: VectorGroupByOperator + groupByMode: MERGEPARTIAL + vectorOutput: true + keyExpressions: col 0 + native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + vectorProcessingMode: MERGE_PARTIAL + projectedOutputColumns: [0] + keys: KEY._col0 (type: bigint) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + File Sink Vectorization: + className: VectorFileSinkOperator + native: false + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b, count(*) from vectortab2korc group by b +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(*) from vectortab2korc group by b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 1 +-6919476845891313664 1 +-6920172215209426944 1 +-6921654334727036928 1 +-6933565857643814912 1 +-6934304742087655424 1 +-6935038507792801792 1 +-6935548339131138048 1 +-6938706403992854528 1 +-6941777546186579968 1 +-6947955278050181120 1 +-6951350560260784128 1 +-6957946688477274112 1 +-6960947572095770624 1 +-6962271229404348416 1 +-6962292590214234112 1 +-6968771079156654080 1 +-6968892545529896960 1 +-6970396058557005824 1 +-6974654664348033024 1 +-6975459232300236800 1 +-6986178228432322560 1 +-6988811476286873600 1 +-6988970700649168896 1 +-6992217501957169152 1 +-6997233584896229376 1 +-7000925438663041024 1 +-7003696402314215424 1 +-7011425384222244864 1 +-7017212700635545600 1 +-7020852530219171840 1 +-7030489936116252672 1 +-7035132060308643840 1 +-7036607470351654912 1 +-7037375807670501376 1 +-7037638331316469760 1 +-7038455462786334720 1 +-7040248820505149440 1 +-7041362811802148864 1 +-7042183597114081280 1 +-7046180371529351168 1 +-7049618574399692800 1 +-7052619594823221248 1 +-7055619148037554176 1 +-7055760785575665664 1 +-7057750467944931328 1 +-7058986555327307776 1 +-7063777488249085952 1 +-7078068944081002496 1 +-7079898537463537664 1 +-7081500255163727872 1 +-7083646746411720704 1 +-7085247548404178944 1 +-7093825013581979648 1 +-7094189393339678720 1 +-7094827141662539776 1 +-7104310188119834624 1 +-7106210529681350656 1 +-7109790267244814336 1 +-7115054815375073280 1 +-7120456708338688000 1 +-7127548949860818944 1 +-7138415011665043456 1 +-7139677575412686848 1 +-7140008543769042944 1 +-7144791190333546496 1 +-7145585429014888448 1 +-7147490721376591872 1 +-7152177800841502720 1 +-7155539549555105792 1 +-7158472098920390656 1 +-7159700138947862528 1 +-7161165959057334272 1 +-7162299524557471744 1 +-7172594404186693632 1 +-7185369278665605120 1 +-7192529627893858304 1 +-7194281951646187520 1 +-7195217207163166720 1 +-7198372044947275776 1 +-7199983995864711168 1 +-7201085131997011968 1 +-7209060152494817280 1 +-7213775605408178176 1 +-7220731681653604352 1 +-7221474017515347968 1 +-7228589258642194432 1 +-7240213957902663680 1 +-7242345057866285056 1 +-7245872320493322240 1 +-7246123871306244096 1 +-7255010240787030016 1 +-7255686273677328384 1 +-7262049693594943488 1 +-7262384251828518912 1 +-7262798781688651776 1 +-7263060340185194496 1 +-7265998318110711808 1 +-7266719102957125632 1 +-7270034223527993344 1 +-7273590251991162880 1 +-7273694358642851840 1 +-7276111129363046400 1 +-7287583262310350848 1 +-7292078334519894016 1 +-7296096276653391872 1 +-7303847963918393344 1 +-7319315187617587200 1 +-7326863346317598720 1 +-7328087811698909184 1 +-7329767178250018816 1 +-7329807949048193024 1 +-7330203470474985472 1 +-7330413050756235264 1 +-7333278178640953344 1 +-7333362172439035904 1 +-7340231535789727744 1 +-7344146703223496704 1 +-7344947507044466688 1 +-7345562788132315136 1 +-7356685674003021824 1 +-7357888618985873408 1 +-7362189611124563968 1 +-7366430883634929664 1 +-7378096180613840896 1 +-7380731416973295616 1 +-7395343938785738752 1 +-7395553021620731904 1 +-7399631791131074560 1 +-7404052043914526720 1 +-7404057145074712576 1 +-7409317158045442048 1 +-7409653086454030336 1 +-7412431471807283200 1 +-7413317118463164416 1 +-7419068456205385728 1 +-7420448501073051648 1 +-7425160895830573056 1 +-7429331808102899712 1 +-7433265617153343488 1 +-7442593976514420736 1 +-7444070205513138176 1 +-7451660755269853184 1 +-7453525026342617088 1 +-7455898404374921216 1 +-7456869587112255488 1 +-7461750143936897024 1 +-7464270453557993472 1 +-7469660864676585472 1 +-7470307155642245120 1 +-7476082621253402624 1 +-7483435388852559872 1 +-7488345684795342848 1 +-7488415863027367936 1 +-7494411162675691520 1 +-7496839341561954304 1 +-7497303453253402624 1 +-7500200359698907136 1 +-7501803640821456896 1 +-7506254246954500096 1 +-7507424948896415744 1 +-7507578199583694848 1 +-7510418793070075904 1 +-7511202710200885248 1 +-7511952204985049088 1 +-7512289590991544320 1 +-7512297136103800832 1 +-7515996202498473984 1 +-7524170566881329152 1 +-7526793959592140800 1 +-7528526815026692096 1 +-7532751268425261056 1 +-7535857766791577600 1 +-7535958203887706112 1 +-7536330682873937920 1 +-7540104552219860992 1 +-7541860097718902784 1 +-7542857121910046720 1 +-7547245548870025216 1 +-7547432761381339136 1 +-7551394356730339328 1 +-7557017910095650816 1 +-7558524160894427136 1 +-7571293705217687552 1 +-7571957778022178816 1 +-7572262898020278272 1 +-7572962089372991488 1 +-7576194692683563008 1 +-7593363318079610880 1 +-7594824008626372608 1 +-7598782894648565760 1 +-7600138468036386816 1 +-7603467428164009984 1 +-7603569103205916672 1 +-7610137349734883328 1 +-7611584069753552896 1 +-7612455481940246528 1 +-7612466483992051712 1 +-7616522969329262592 1 +-7617860842651017216 1 +-7623047151287754752 1 +-7623359796281999360 1 +-7623405558242500608 1 +-7624057992767782912 1 +-7629401308029976576 1 +-7637494527844343808 1 +-7637755520917741568 1 +-7642381493746483200 1 +-7647020450676146176 1 +-7661192563533062144 1 +-7661250850555633664 1 +-7663293054873812992 1 +-7665186441284968448 1 +-7668388017287020544 1 +-7669169138124275712 1 +-7673901622181953536 1 +-7679894005808693248 1 +-7686220526274502656 1 +-7687052294777208832 1 +-7692192232238678016 1 +-7695491171376291840 1 +-7700203302632210432 1 +-7703540456272994304 1 +-7707242953271500800 1 +-7707867749256445952 1 +-7708932208121225216 1 +-7709958788604936192 1 +-7712425776235274240 1 +-7720966287634112512 1 +-7739424919198187520 1 +-7744462446680375296 1 +-7751265769984491520 1 +-7751427073017544704 1 +-7753051494275432448 1 +-7759238919361888256 1 +-7759425383684849664 1 +-7772064021830574080 1 +-7773957003968675840 1 +-7777884099756122112 1 +-7778829032042790912 1 +-7779270198785875968 1 +-7782344916178796544 1 +-7784419454650843136 1 +-7792903881635938304 1 +-7793447076762345472 1 +-7797149520019062784 1 +-7797151404935618560 1 +-7800879252150779904 1 +-7802538500225777664 1 +-7804116532814151680 1 +-7805985795815342080 1 +-7811060170911375360 1 +-7818454479651135488 1 +-7819437864839495680 1 +-7822452149325094912 1 +-7824788571789279232 1 +-7827420207675105280 1 +-7831320202242228224 1 +-7831595638727565312 1 +-7833618000492109824 1 +-7835907977757245440 1 +-7838598833900584960 1 +-7840338174858199040 1 +-7845896959112658944 1 +-7848043121524228096 1 +-7849504559236210688 1 +-7858505678035951616 1 +-7866079955473989632 1 +-7867219225874571264 1 +-7868306678534193152 1 +-7873753603299540992 1 +-7875953567586451456 1 +-7877598807023386624 1 +-7878145001776152576 1 +-7879864376629567488 1 +-7881262505761710080 1 +-7881351200983613440 1 +-7883252982752665600 1 +-7884460946615984128 1 +-7888051992910274560 1 +-7892780594910871552 1 +-7893577088764174336 1 +-7894382303337832448 1 +-7895991410072928256 1 +-7902517224300036096 1 +-7903158849011843072 1 +-7904188195431661568 1 +-7907355742053883904 1 +-7910019233726242816 1 +-7911421221625077760 1 +-7915999634274369536 1 +-7916510129632296960 1 +-7928062266382778368 1 +-7928440849566146560 1 +-7939634346485858304 1 +-7949309059286163456 1 +-7949445503604604928 1 +-7953426740065312768 1 +-7964801953178091520 1 +-7966960765508280320 1 +-7978782649203228672 1 +-7989766326847807488 1 +-7998947380180819968 1 +-8007017894942638080 1 +-8013397854633648128 1 +-8016589197379289088 1 +-8017791189288869888 1 +-8018511948141748224 1 +-8021859935185928192 1 +-8022573309127000064 1 +-8023708819947323392 1 +-8028275725610909696 1 +-8028910243475038208 1 +-8030058711611629568 1 +-8034414142083170304 1 +-8046189486447017984 1 +-8046238369820344320 1 +-8047774491688255488 1 +-8051395538179063808 1 +-8051587217208967168 1 +-8051871680800120832 1 +-8054581198284668928 1 +-8067243114610532352 1 +-8070535484085895168 1 +-8076479329071955968 1 +-8082793390939193344 1 +-8084716955963252736 1 +-8086577583338061824 1 +-8088337436168830976 1 +-8099313480512716800 1 +-8103788088118018048 1 +-8104684579106914304 1 +-8108693586698706944 1 +-8115963579415650304 1 +-8117838333114212352 1 +-8122639684164501504 1 +-8127494999848919040 1 +-8131997716860526592 1 +-8136227554401107968 1 +-8140349174954893312 1 +-8142667274351345664 1 +-8147405381260345344 1 +-8158011642485825536 1 +-8161047750470279168 1 +-8172827216441573376 1 +-8182421179156905984 1 +-8191825921746305024 1 +-8194062064124362752 1 +-8203008052020879360 1 +-8203075743525806080 1 +-8205148279289085952 1 +-8214462866994339840 1 +-8219876839318716416 1 +-8232763638546694144 1 +-8240034910581153792 1 +-8240684139569233920 1 +-8243487285852766208 1 +-8244116388227104768 1 +-8244657976255889408 1 +-8260340354454503424 1 +-8269917980278980608 1 +-8270479187688816640 1 +-8275337702906757120 1 +-8280276629934981120 1 +-8293833565967810560 1 +-8297230235506343936 1 +-8300526097982226432 1 +-8300764106868350976 1 +-8302817097848307712 1 +-8317591428117274624 1 +-8318886086186213376 1 +-8322751250650218496 1 +-8330233444291084288 1 +-8335810316927213568 1 +-8340523561480437760 1 +-8345065519816695808 1 +-8347088645602050048 1 +-8357136656913686528 1 +-8358130693961195520 1 +-8359839265974165504 1 +-8368269352975982592 1 +-8368487814665895936 1 +-8369487968903897088 1 +-8379109122834997248 1 +-8379964450833367040 1 +-8384695077413412864 1 +-8387347109404286976 1 +-8387536830476820480 1 +-8395998375405912064 1 +-8400045653258444800 1 +-8411282676082565120 1 +-8418913260807217152 1 +-8425998949410889728 1 +-8426531414463545344 1 +-8430283518005846016 1 +-8430370933326536704 1 +-8431492599012163584 1 +-8438554249514491904 1 +-8445801063348281344 1 +-8453491903284994048 1 +-8454143651040444416 1 +-8465978403747037184 1 +-8469607298426437632 1 +-8471480409335513088 1 +-8485389240529354752 1 +-8488247955875618816 1 +-8490382417169408000 1 +-8494118409594650624 1 +-8503342882470019072 1 +-8503573595507761152 1 +-8507279516485566464 1 +-8509547439040757760 1 +-8518060755719585792 1 +-8518258741831680000 1 +-8521578237232529408 1 +-8522878384019169280 1 +-8523434203900674048 1 +-8525212657458348032 1 +-8535957064499879936 1 +-8536369662934401024 1 +-8543982423727128576 1 +-8544299740525461504 1 +-8545239748068941824 1 +-8546758906409312256 1 +-8552393882631389184 1 +-8555709701170552832 1 +-8559008501282832384 1 +-8559252110266564608 1 +-8562524688907485184 1 +-8566856504746352640 1 +-8566940231897874432 1 +-8570933074545745920 1 +-8572823448513445888 1 +-8572949572756774912 1 +-8581765103969312768 1 +-8581979259158929408 1 +-8584520406368493568 1 +-8585134536083660800 1 +-8585966098173870080 1 +-8593419958317056000 1 +-8603817012434198528 1 +-8604758220106014720 1 +-8607195685207408640 1 +-8615168537390571520 1 +-8619303037130301440 1 +-8623238306523824128 1 +-8623965248051789824 1 +-8632237187473088512 1 +-8649711322250362880 1 +-8651641150831362048 1 +-8654433008222797824 1 +-8654797319350927360 1 +-8658387566611996672 1 +-8659643752269242368 1 +-8659692318743314432 1 +-8660149447361404928 1 +-8664374244449050624 1 +-8664806103426252800 1 +-8665218198816497664 1 +-8665764757143658496 1 +-8675661101615489024 1 +-8675892979328212992 1 +-8683802826440105984 1 +-8688153842294595584 1 +-8689606130068611072 1 +-8694818694700048384 1 +-8696162322976997376 1 +-8703026916864802816 1 +-8704234107608203264 1 +-8705403811649355776 1 +-8710298418608619520 1 +-8714995808835444736 1 +-8719510423723155456 1 +-8730803262481580032 1 +-8731068123910987776 1 +-8746702976270385152 1 +-8754966081778565120 1 +-8754992450211692544 1 +-8756989568739835904 1 +-8760655406971863040 1 +-8763062627136864256 1 +-8768744394742235136 1 +-8782213262837530624 1 +-8783777723063099392 1 +-8789178184387641344 1 +-8797972842900307968 1 +-8807361476639629312 1 +-8813211231120031744 1 +-8831091081349758976 1 +-8832750849949892608 1 +-8833019327569510400 1 +-8835408234247168000 1 +-8836899523028312064 1 +-8843859708698583040 1 +-8844949406948671488 1 +-8845239510002753536 1 +-8852770376039219200 1 +-8853553406533894144 1 +-8856151919723003904 1 +-8856821118526734336 1 +-8857335871148171264 1 +-8858063395050110976 1 +-8859107121649893376 1 +-8866442231663067136 1 +-8870186814744420352 1 +-8870673219965001728 1 +-8875546987176206336 1 +-8877053610728161280 1 +-8877431933441327104 1 +-8879742387365429248 1 +-8881446757271846912 1 +-8887058200926093312 1 +-8892963883085578240 1 +-8896045754034978816 1 +-8914039133569400832 1 +-8916987977485312000 1 +-8922409715403112448 1 +-8923529803981905920 1 +-8927968289860370432 1 +-8930307926221807616 1 +-8938849835283677184 1 +-8940944155843461120 1 +-8941201923743703040 1 +-8946656952763777024 1 +-8948335470186373120 1 +-8959796625322680320 1 +-8961059046745669632 1 +-8962547695651323904 1 +-8965578088652095488 1 +-8989473881707921408 1 +-8990843030306717696 1 +-8992599250893979648 1 +-8996954350906294272 1 +-9002912355472736256 1 +-9004892183139811328 1 +-9008631121684832256 1 +-9012093603044245504 1 +-9013952631912325120 1 +-9014145341570203648 1 +-9022154842129547264 1 +-9032650742739836928 1 +-9049720998034137088 1 +-9051477157204770816 1 +-9058029636530003968 1 +-9066993118333706240 1 +-9071565764086521856 1 +-9075302542655684608 1 +-9075486079396069376 1 +-9078662294976061440 1 +-9079801920509001728 1 +-9080568167841226752 1 +-9080956291212132352 1 +-9084940280061485056 1 +-9088239683374350336 1 +-9091113592821972992 1 +-9095689235523264512 1 +-9101953184875757568 1 +-9102482277760983040 1 +-9105358806324035584 1 +-9105701280936501248 1 +-9109392978217484288 1 +-9117959922369060864 1 +-9126793997498957824 1 +-9136398397785948160 1 +-9142610685888192512 1 +-9145593811310010368 1 +-9148197394287779840 1 +-9149719074367946752 1 +-9157613004431998976 1 +-9175038118837149696 1 +-9175279464813223936 1 +-9178166810751909888 1 +-9187662685618348032 1 +-9189155542884474880 1 +-9203804401302323200 1 +-9203942396257984512 1 +-9206329156028112896 1 +-9210275791460499456 1 +-9213132862973829120 1 +-9215144824304721920 1 +-9218875542187065344 1 +-9219066990552760320 1 +1021 1 +1030 1 +1032 1 +1039 1 +1046 1 +1048 1 +1053 1 +1055 1 +1058 1 +1065 1 +1066 1 +1074 1 +1075 3 +108 1 +1086 1 +1093 1 +1094 1 +1095 1 +1099 1 +1115 1 +112 1 +1127 1 +1128 1 +1132 1 +1134 1 +1141 1 +1142 1 +1145 1 +1153 1 +1157 1 +1158 1 +1165 2 +1168 1 +1177 1 +1187 1 +1189 1 +1198 1 +120 1 +1201 1 +1217 1 +1234 1 +1243 1 +1247 1 +1252 1 +1261 1 +1270 1 +1280 1 +1282 1 +1286 1 +1287 1 +1290 1 +1291 1 +1299 1 +130 1 +1307 1 +1312 1 +1316 1 +1321 1 +1337 1 +1341 1 +1342 1 +1343 1 +1345 1 +1346 1 +135 1 +1366 1 +1368 2 +1371 2 +138 1 +1386 1 +1398 1 +1409 1 +1422 1 +1423 1 +1436 1 +1439 1 +1447 1 +1450 1 +1454 1 +1458 1 +1462 1 +1466 1 +1470 1 +1477 1 +1481 2 +1489 1 +1493 1 +1495 1 +1501 1 +1506 1 +1508 1 +1509 2 +1518 1 +1520 1 +1521 1 +1524 1 +1530 1 +1537 2 +154 2 +1541 1 +1542 1 +1545 1 +1556 1 +1559 1 +1561 1 +1566 1 +1604 1 +1606 1 +1608 1 +1613 1 +1614 1 +1620 1 +1638 1 +1641 1 +1643 1 +1648 1 +1651 1 +1667 1 +1671 1 +1674 1 +1676 1 +1678 1 +168 1 +1681 1 +169 1 +1693 1 +1701 2 +1704 1 +1719 2 +1726 1 +1728 1 +1745 1 +1751 1 +1752 1 +1769 1 +1774 1 +1775 1 +1777 2 +1780 1 +1781 1 +1785 1 +1786 1 +1788 1 +1789 1 +1791 1 +1796 1 +1806 1 +181 1 +1811 1 +1813 1 +1826 1 +1827 1 +1835 1 +1837 1 +1845 1 +1846 1 +1856 2 +1862 1 +1863 1 +1864 1 +1866 1 +187 1 +1870 1 +188 1 +1880 1 +1890 1 +1892 1 +1899 1 +19 2 +1906 1 +1910 1 +1914 2 +1926 1 +1937 1 +1940 1 +1941 1 +1948 3 +1955 1 +1965 1 +1972 1 +1981 1 +1983 1 +1987 1 +1990 1 +1995 1 +1999 1 +2001 1 +2002 1 +2004 1 +2009 1 +2011 1 +2013 1 +2016 1 +2017 1 +2020 2 +2025 1 +2026 1 +2029 1 +203 1 +204 1 +2046 1 +2056 1 +2067 1 +2072 1 +2073 1 +2085 1 +2089 1 +2092 1 +2105 1 +2106 1 +2108 1 +213 2 +2131 1 +2138 1 +2140 1 +2144 1 +2155 1 +2177 1 +2179 1 +2180 1 +2183 1 +2186 1 +2187 1 +2189 1 +2193 2 +2194 1 +22 1 +2201 1 +2205 1 +2214 1 +2217 1 +2218 1 +2223 1 +2227 1 +2229 1 +2232 1 +2241 1 +2244 1 +2255 1 +2262 1 +2264 1 +2270 1 +2274 1 +2277 1 +2279 1 +228 1 +2283 1 +2285 2 +2295 1 +2306 1 +2320 1 +2323 1 +2325 2 +2335 1 +2341 1 +2348 1 +2358 1 +236 1 +2373 1 +238 1 +2386 1 +2393 2 +2398 1 +2400 1 +2410 1 +2412 2 +2420 1 +2426 1 +2434 1 +244 1 +2461 1 +2463 3 +2465 1 +2469 1 +2475 1 +2476 1 +2485 2 +2487 1 +2492 1 +2494 1 +2502 1 +2506 1 +2509 1 +2512 1 +2514 1 +2515 1 +2517 1 +2524 1 +2533 1 +2539 1 +2540 1 +255 1 +2551 1 +2553 1 +2560 2 +2563 1 +2565 1 +2569 1 +2579 1 +2580 1 +2587 1 +259 1 +2599 1 +2607 1 +2608 1 +2619 2 +2625 1 +2626 1 +263 2 +2637 1 +2647 1 +2649 1 +2662 1 +2663 1 +2675 1 +268 2 +2680 1 +2682 1 +2688 1 +2689 1 +2692 1 +2700 1 +2712 1 +2714 1 +2715 2 +2719 1 +2724 1 +2725 1 +2735 1 +2745 1 +275 1 +2752 1 +2762 1 +2772 1 +2776 1 +2786 2 +279 1 +2790 1 +2791 1 +2803 3 +2805 1 +281 1 +2810 1 +2811 1 +2816 1 +2821 1 +2824 1 +2835 1 +2842 1 +2843 2 +2846 1 +2847 1 +2848 1 +2850 1 +2855 2 +2862 1 +2878 1 +2886 1 +289 1 +2897 2 +2900 1 +2903 1 +2905 1 +2911 1 +2915 1 +2919 1 +2933 2 +2938 1 +294 1 +2941 1 +2942 1 +296 2 +2962 1 +2968 2 +2971 1 +2977 1 +2979 1 +2984 1 +2986 1 +2988 1 +2991 1 +3002 1 +3006 1 +301 1 +302 1 +3021 2 +3024 1 +3029 1 +3031 1 +3036 1 +3043 1 +3054 1 +3055 1 +3058 1 +3059 1 +3060 2 +3067 1 +3071 1 +3073 1 +3079 2 +3083 1 +3084 1 +3089 1 +3094 1 +3103 1 +311 1 +3111 1 +3118 1 +3119 1 +3144 1 +3147 1 +3159 2 +3163 1 +3174 1 +3183 1 +3190 1 +3197 1 +3199 1 +320 1 +3203 1 +3206 1 +3208 1 +3212 1 +3213 1 +3231 1 +3232 1 +3235 1 +3244 1 +3245 1 +3248 1 +3249 1 +3253 1 +3255 1 +3263 1 +3286 1 +3300 1 +3307 1 +3322 1 +3333 1 +3352 1 +336 1 +3365 1 +3366 1 +3397 1 +34 1 +3401 1 +3407 1 +3409 1 +341 1 +3418 2 +342 1 +3421 1 +3430 1 +3443 1 +3446 1 +345 1 +3456 1 +346 2 +3460 1 +3462 3 +3467 2 +347 1 +3472 1 +3478 1 +3493 1 +350 1 +3507 1 +3510 1 +3512 1 +3533 1 +3534 1 +3541 1 +3542 1 +355 1 +3554 1 +3555 2 +3563 1 +3566 1 +3567 1 +3568 1 +3579 1 +3588 2 +3599 1 +3606 1 +3608 1 +3609 1 +361 1 +3613 1 +3622 2 +3625 1 +3630 1 +3637 1 +364 1 +3648 1 +3663 1 +3664 1 +367 1 +3672 1 +3673 1 +3677 1 +3680 1 +3682 1 +3690 1 +3691 1 +3701 1 +3702 1 +3703 1 +3707 1 +3722 1 +3724 1 +3725 2 +3728 2 +3739 1 +3747 1 +3749 1 +375 1 +3755 1 +3763 1 +3764 1 +3769 1 +3770 2 +378 1 +3781 2 +3789 1 +379 1 +3810 1 +3812 1 +3823 1 +3824 1 +383 2 +3830 1 +3835 1 +3841 1 +3848 1 +3858 1 +3860 1 +3866 2 +3874 1 +3879 1 +388 1 +3887 1 +3901 1 +3904 1 +3907 1 +391 1 +3910 1 +3911 1 +3913 1 +392 1 +3932 1 +3940 1 +3941 1 +3945 1 +3946 1 +3949 1 +3958 1 +3960 1 +3961 1 +3962 1 +3965 1 +3974 2 +3980 1 +3990 1 +4018 1 +4020 1 +4024 1 +4030 1 +4037 1 +4051 1 +4054 1 +4056 1 +4075 1 +4078 1 +4088 1 +41 1 +412 2 +417 1 +425 1 +443 1 +454 1 +455 1 +462 1 +470 1 +471 1 +481 1 +482 1 +485 1 +489 1 +49 1 +490 1 +491 1 +5 1 +500 1 +501 2 +504 1 +522 1 +523 1 +524 1 +530 1 +535 1 +579 1 +583 1 +584 1 +586 1 +587 1 +590 1 +597 1 +601 1 +612 1 +615 1 +618 1 +65 1 +650 1 +658 1 +66 1 +661 2 +663 1 +664 1 +677 1 +68 1 +681 1 +687 1 +688 1 +690 1 +691 1 +6923604860394528768 1 +6924820982050758656 1 +6926925215281774592 1 +6927260280037097472 1 +6928080429732536320 1 +6933001829416034304 1 +6933451028794925056 1 +6933731240564056064 1 +6934570741217755136 1 +694 1 +6947488599548215296 1 +695 1 +6960137166475911168 1 +6962726713896484864 1 +6963217546192322560 1 +6964585306125008896 1 +6967631925774639104 1 +6969599299897163776 1 +6974475559697768448 1 +6982145326341423104 1 +6987889924212203520 1 +6991316084916879360 1 +6996686091335884800 1 +7006803044329021440 1 +7013693841855774720 1 +7014537632150224896 1 +7017956982081404928 1 +7022349041913978880 1 +7027529814236192768 1 +7031339012080549888 1 +7039820685967343616 1 +7045967493826387968 1 +7049773031131283456 1 +7052226236896256000 1 +7054271419461812224 1 +7054938591408996352 1 +7060236714847412224 1 +7061498706968428544 1 +7061809776248545280 1 +7062382339142156288 1 +7062605127422894080 1 +7065344324692443136 1 +7068517339681259520 1 +7069729473166090240 1 +707 1 +7077311975029555200 1 +7078641038157643776 1 +7080269176324218880 1 +7084659344078970880 1 +7086206629592252416 1 +7091300332052062208 1 +7099005292698550272 1 +71 1 +7107604675626008576 1 +7125231541858205696 1 +7128222874437238784 1 +7130159794259353600 1 +7130306447560826880 1 +7149417430082027520 1 +7153922334283776000 1 +7157247449513484288 1 +7164349895861829632 1 +7165364563962191872 1 +7166263463731421184 1 +7175638927948562432 1 +7186401810812059648 1 +7195454019231834112 1 +7198687580227043328 1 +7199539820886958080 1 +7204802700490858496 1 +7210160489915236352 1 +7212016545671348224 1 +7212090742612467712 1 +7217123582035116032 1 +7220131672176058368 1 +7220581538170413056 1 +7223569671814987776 1 +7226360892091416576 1 +7229607057201127424 1 +723 1 +7231399302953377792 1 +7232273749940838400 1 +7235109456886816768 1 +7237310132329488384 1 +7238339720750948352 1 +724 1 +7242751359672631296 1 +7249443195032985600 1 +7250237407877382144 1 +7254710367022645248 1 +7255302164215013376 1 +7259955893466931200 1 +7260908278294560768 1 +7265141874315517952 1 +7266437490436341760 1 +7271786885641666560 1 +7271887863395459072 1 +7274777328897802240 1 +7291432593139507200 1 +7295502697317097472 1 +7295926343524163584 1 +7296164580491075584 1 +7299197687217856512 1 +73 1 +7304839835188609024 1 +7308289763456000000 1 +7309156463509061632 1 +7310869618402910208 1 +7319711402123149312 1 +7333512171174223872 1 +7339426767877390336 1 +7343171468838567936 1 +7344029858387820544 1 +7345991518378442752 1 +7347732772348870656 1 +7348598907182800896 1 +735 1 +7354813692542304256 1 +7359004378440146944 1 +736 1 +7368920486374989824 1 +7370078518278397952 1 +7370803940448305152 1 +7375521127126089728 1 +7376467688511455232 1 +7378993334503694336 1 +738 1 +7381659098423926784 1 +7384150968511315968 1 +7386087924003676160 1 +7391208370547269632 1 +7393308503950548992 1 +7394967727502467072 1 +7401968422230032384 1 +7410096605330227200 1 +7410872053689794560 1 +7411793502161182720 1 +7412924364686458880 1 +7414865343000322048 1 +7418271723644403712 1 +743 1 +7432428551399669760 1 +7432998950057975808 1 +7436133434239229952 1 +7440265908266827776 1 +7450416810848313344 1 +7452756603516190720 1 +7454442625055145984 1 +7454632396542074880 1 +7461153404961128448 1 +7471208109437304832 1 +7473537548003352576 1 +7486884806277611520 1 +7487338208419823616 1 +7487538600082554880 1 +7490717730239250432 1 +7491898395977523200 1 +7492436934952574976 1 +7497276415392407552 1 +7497306924248834048 1 +7500716020874674176 1 +7514552840617558016 1 +7517159036469575680 1 +7524958388842078208 1 +7528074274555305984 1 +7528211148397944832 1 +7534042483076857856 1 +7534145866886782976 1 +7534549597202194432 1 +7545689659010949120 1 +7548958830580563968 1 +7549858023389003776 1 +7555301305375858688 1 +7566273236152721408 1 +7569249672628789248 1 +7570474972934488064 1 +7573530789362262016 1 +7575087487730196480 1 +7581052107944361984 1 +7581614118458335232 1 +7584007864107778048 1 +7592440105065308160 1 +7593521922173419520 1 +7596563216912211968 1 +7599019810193211392 1 +7608447395949109248 1 +7614435638888210432 1 +7620183559667081216 1 +7621013099259527168 1 +7625728883085025280 1 +7626715182847090688 1 +763 1 +7637152193832886272 1 +7647481735646363648 1 +7648729477297987584 1 +7652123583449161728 1 +7659279803863146496 1 +7662037650719850496 1 +7675009476762918912 1 +7678790769408172032 1 +7682327310082531328 1 +7686992843032010752 1 +7689489436826804224 1 +7690986322714066944 1 +7691062622443044864 1 +7696737688942567424 1 +7697541332524376064 1 +7700734109530767360 1 +7701723309715685376 1 +7705445437881278464 1 +7710447533880614912 1 +7718825401976684544 1 +7720187583697502208 1 +7731443941834678272 1 +7735566678126616576 1 +774 1 +7741854854673367040 1 +7746402369011277824 1 +7747874976739016704 1 +7748799008146366464 1 +7752740515534422016 1 +7753359568986636288 1 +7753882935005880320 1 +7761834341179375616 1 +7762823913046556672 1 +7765456790394871808 1 +7768984605670604800 1 +7775034125776363520 1 +7778936842502275072 1 +7779486624537370624 1 +7779735136559579136 1 +7782245855193874432 1 +7784169796350730240 1 +7784489776013295616 1 +779 1 +7790728456522784768 1 +7792036342592348160 1 +7794244032613703680 1 +78 1 +780 1 +7800332581637259264 1 +7801697837312884736 1 +7818464507324121088 1 +782 1 +7823874904139849728 1 +784 1 +7843804446688264192 1 +7844258063629852672 1 +7845953007588401152 1 +7857878068300898304 1 +7868367829080506368 1 +7870277756614623232 1 +7871189141676998656 1 +7871554728617025536 1 +7874764415950176256 1 +7885697257930588160 1 +7888238729321496576 1 +789 1 +7892026679115554816 1 +7892281003266408448 1 +7898670840507031552 1 +7909645665163804672 1 +7917494645725765632 1 +7919597361814577152 1 +7921639119138070528 1 +7922443154272395264 1 +7926898770090491904 1 +7933040277013962752 1 +7936149988210212864 1 +7944741547145502720 1 +7947544013461512192 1 +7948803266578161664 1 +7955126053367119872 1 +7961515985722605568 1 +7961909238130270208 1 +797 1 +7983789401706094592 1 +7989119273552158720 1 +7989160253372817408 1 +7997694023324975104 1 +7998357471114969088 1 +7998687089080467456 1 +80 1 +8000440057238052864 1 +8002769767000145920 1 +8004633750273925120 1 +8011181697250631680 1 +8011602724663336960 1 +8014986215157530624 1 +8017403886247927808 1 +803 1 +8045070943673671680 1 +8048726769133592576 1 +8059284960252731392 1 +8069531888205086720 1 +8071961599867387904 1 +8073733016154431488 1 +8079573715140485120 1 +808 1 +8087737899452432384 1 +809 1 +8091421389575282688 1 +8099215208813903872 1 +8100036735858401280 1 +8109381965028548608 1 +8111757081791733760 1 +8113585123802529792 1 +8116738401948377088 1 +812 1 +8120593157178228736 1 +8129551357032259584 1 +8135164922674872320 1 +8142241016679735296 1 +8143462899383345152 1 +8144552446127972352 1 +8145745969573666816 1 +8145750910080745472 1 +8146288732715196416 1 +8146492373537660928 1 +8148211378319933440 1 +815 1 +8150115791664340992 1 +8156018594610790400 1 +8156782979767238656 1 +8160569434550403072 1 +8160662610166194176 1 +8163948965373386752 1 +8168742078705262592 1 +8169878743136043008 1 +8171188598958407680 1 +8183233196086214656 1 +8184799300477943808 1 +8190539859890601984 1 +8190967051000659968 1 +8192304692696383488 1 +8195103847607967744 1 +8199513544090730496 1 +820 2 +8201303040648052736 1 +8201491077550874624 1 +8208354137450766336 1 +8210813831744118784 1 +8213810702473183232 1 +8219326436390821888 1 +8220104397160169472 1 +8221561626658881536 1 +8222714144797368320 1 +8223732800007864320 1 +823 1 +8230371298967609344 1 +8235179243092090880 1 +8244041599171862528 1 +8254763178969915392 1 +8268875586442256384 1 +8269730157217062912 1 +8272001752345690112 1 +8279056098670198784 1 +8282648443538710528 1 +8283099811330506752 1 +8286706213485297664 1 +8287522765741301760 1 +8290014929764040704 1 +8290944180915871744 1 +8294315622451740672 1 +8295110846998233088 1 +83 1 +8302473563519950848 1 +8316336224427483136 1 +8323460620425330688 1 +8325227661920133120 1 +8332670681629106176 1 +8333523087360901120 1 +8337549596011102208 1 +8345435427356090368 1 +835 1 +8351163199364390912 1 +8362046808797306880 1 +8365058996333953024 1 +8367680396909404160 1 +8368012468775608320 1 +837 1 +8371939471056470016 1 +8372408423196270592 1 +8372588378498777088 1 +8374321007870836736 1 +8376440110255243264 1 +8383159090746204160 1 +8388363436324085760 1 +8391407951622815744 1 +8391785334471589888 1 +8396433451610652672 1 +8398862954249560064 1 +8407869317250220032 1 +8410599906334097408 1 +8411494452500930560 1 +8415171956168417280 1 +8416121695917498368 1 +8417381121663746048 1 +8419958579638157312 1 +8424515140664360960 1 +8435912708683087872 1 +845 1 +8451612303224520704 1 +8454154705460666368 1 +8455496814886002688 1 +8457906374051020800 1 +8461498293348065280 1 +8463868417649524736 1 +8467976965865799680 1 +8470141334513098752 1 +8472429318602268672 1 +8473699639908261888 1 +8487573502287478784 1 +8489584373231919104 1 +8489735221193138176 1 +85 1 +8501910015960735744 1 +8508401924853850112 1 +8509508263705477120 1 +8514851182589771776 1 +8514979402185596928 1 +8515682078777081856 1 +8518454006987948032 1 +8519937082746634240 1 +8523972434954510336 1 +8524940073536954368 1 +8525336514806317056 1 +8525894870444638208 1 +8532016240026279936 1 +8536948829863198720 1 +8540237852367446016 1 +8543177193114779648 1 +8547243497773457408 1 +8551446856960942080 1 +8553195689344991232 1 +8554899472487596032 1 +8555933456197828608 1 +8555948987770511360 1 +8557218322962644992 1 +8558000156325707776 1 +8560526613401714688 1 +8569030475428511744 1 +8570983266408103936 1 +8571268359622172672 1 +8573305425181941760 1 +8577096957495025664 1 +8579974641030365184 1 +8583916402383601664 1 +8613562211893919744 1 +8625937019655200768 1 +8631515095562887168 1 +8637720762289659904 1 +8639254009546055680 1 +8641221723991433216 1 +8643198489997254656 1 +8644602243484803072 1 +8649296591032172544 1 +8652485812846567424 1 +8656571350884048896 1 +8660248367767076864 1 +8665969966920990720 1 +8666178591503564800 1 +8677632093825916928 1 +8677794924343164928 1 +868 1 +8682955459667951616 1 +8687042963221159936 1 +8688483860094599168 1 +8693036785094565888 1 +8697823501349609472 1 +8698055291501543424 1 +8708232769657815040 1 +8708845895460577280 1 +871 1 +8714829359200747520 1 +8716401555586727936 1 +8720504651219001344 1 +8723248113030782976 1 +873 1 +8731960288562044928 1 +8734584858442498048 1 +8736061027343859712 1 +874 1 +8752150411997356032 1 +8759089349412847616 1 +8759184090543857664 1 +8760285623204290560 1 +8761174805938331648 1 +8769199243315814400 1 +8773222500321361920 1 +8775009214012456960 1 +8779073705407963136 1 +8779711700787298304 1 +878 1 +8780196485890555904 1 +8782900615468302336 1 +8783241818558193664 1 +8785153741735616512 1 +8792059919353348096 1 +8793387410919038976 1 +8795069490394882048 1 +8806507556248731648 1 +8808467247666241536 1 +8811693967537774592 1 +8815398225009967104 1 +8817665768680906752 1 +8822384228057604096 1 +8825059717746376704 1 +8829545979081744384 1 +883 1 +8836228556823977984 1 +8837420822750314496 1 +8849475396952514560 1 +8850055384477401088 1 +8853989376829833216 1 +8854495099223375872 1 +8854677881758162944 1 +8854715632851345408 1 +8856674723376668672 1 +8868529429494071296 1 +8871707618793996288 1 +8875745082589929472 1 +888 1 +8895174927321243648 1 +8896237972875370496 1 +8897901899039473664 1 +8899122608190930944 1 +8900180888218329088 1 +8900351886974279680 1 +8900545829211299840 1 +8905330479248064512 1 +8910706980937261056 1 +8920344895701393408 1 +8920533610804609024 1 +8927691194719174656 1 +8928133990107881472 1 +8935252708196999168 1 +8936639033158410240 1 +8939431770838810624 1 +8945004737083555840 1 +8945302550165004288 1 +8962097525980225536 1 +8972161729142095872 1 +8979012655944220672 1 +898 2 +8983857919580209152 1 +8983912573761167360 1 +8984935029383389184 1 +8987827141270880256 1 +8991071342495531008 1 +8991442360387584000 1 +8994608999945125888 1 +8995562121346260992 1 +8996824426131390464 1 +9000633029632499712 1 +9001907486943993856 1 +9005866015985713152 1 +9016280522993975296 1 +9020143715350814720 1 +9023663198045544448 1 +9030480306789818368 1 +9038087402564657152 1 +9040958359122640896 1 +9043089884440068096 1 +9048002942653710336 1 +9048297564833079296 1 +9050032047355125760 1 +9053187076403060736 1 +9054887854393950208 1 +9062227900376203264 1 +9064847977742032896 1 +9067985867711291392 1 +9073672806863790080 1 +9075404705968840704 1 +9078604269481148416 1 +908 1 +9083076230151864320 1 +9083704659251798016 1 +9084402694981533696 1 +9085381906890203136 1 +9085434340468473856 1 +9086905513121890304 1 +9089435102788009984 1 +9091082386452684800 1 +9091085792947666944 1 +9094945190752903168 1 +9096395849845194752 1 +91 1 +9104574294205636608 1 +9107991000536498176 1 +9112400579327483904 1 +9114850402293882880 1 +9116137265342169088 1 +9117063974299148288 1 +9119046173224370176 1 +9123116008004288512 1 +913 1 +9131533983989358592 1 +9132009829414584320 1 +9136234417125007360 1 +9136548192574529536 1 +9139805788041134080 1 +914 1 +9148071980848742400 1 +9149216169284091904 1 +9165199002069458944 1 +9169248521377374208 1 +917 1 +9174894805640142848 1 +918 1 +9180098147855769600 1 +9182828596851990528 1 +9185458640237641728 1 +9185952983951343616 1 +9188173682239275008 1 +919 1 +9190466190353661952 1 +9191943992860327936 1 +9194388393453060096 1 +9199741683232399360 1 +9207107990561972224 1 +9207927479837319168 1 +9209153648361848832 1 +921 1 +9211455920344088576 1 +922 1 +923 1 +927 1 +928 1 +939 1 +94 1 +945 1 +947 1 +950 2 +958 1 +961 1 +965 1 +967 1 +976 1 +979 1 +982 1 +987 1 +997 1 +999 1 +NULL 83 +PREHOOK: query: explain vectorization detail +select b from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: true + enabledConditionsMet: [hive.vectorized.execution.enabled IS true] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez +#### A masked pattern was here #### + Edges: + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + TableScan Vectorization: + native: true + projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + Select Operator + expressions: b (type: bigint) + outputColumnNames: b + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [3] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + Group By Vectorization: + className: VectorGroupByOperator + groupByMode: HASH + vectorOutput: true + keyExpressions: col 3, ConstantVectorExpression(val 0) -> 15:long + native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false + vectorProcessingMode: HASH + projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 + keys: b (type: bigint), 0 (type: int) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint), _col1 (type: int) + sort order: ++ + Map-reduce partition columns: _col0 (type: bigint), _col1 (type: int) + Reduce Sink Vectorization: + className: VectorReduceSinkMultiKeyOperator + keyColumns: [0, 1] + native: true + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + valueColumns: [] + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + Execution mode: vectorized, llap + LLAP IO: all inputs + Map Vectorization: + enabled: true + enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true + groupByVectorOutput: true + inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 13 + includeColumns: [3] + dataColumns: t:tinyint, si:smallint, i:int, b:bigint, f:float, d:double, dc:decimal(38,18), bo:boolean, s:string, s2:string, ts:timestamp, ts2:timestamp, dt:date + partitionColumnCount: 0 + scratchColumnTypeNames: bigint, bigint, bigint + Reducer 2 + Execution mode: vectorized, llap + Reduce Vectorization: + enabled: true + enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true + reduceColumnNullOrder: aa + reduceColumnSortOrder: ++ + groupByVectorOutput: true + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 2 + dataColumns: KEY._col0:bigint, KEY._col1:int + partitionColumnCount: 0 + Reduce Operator Tree: + Group By Operator + Group By Vectorization: + className: VectorGroupByOperator + groupByMode: MERGEPARTIAL + vectorOutput: true + keyExpressions: col 0, col 1 + native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false + vectorProcessingMode: MERGE_PARTIAL + projectedOutputColumns: [] + keys: KEY._col0 (type: bigint), KEY._col1 (type: int) + mode: mergepartial + outputColumnNames: _col0 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + pruneGroupingSetId: true + File Output Operator + compressed: false + File Sink Vectorization: + className: VectorFileSinkOperator + native: false + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 +-6919476845891313664 +-6920172215209426944 +-6921654334727036928 +-6933565857643814912 +-6934304742087655424 +-6935038507792801792 +-6935548339131138048 +-6938706403992854528 +-6941777546186579968 +-6947955278050181120 +-6951350560260784128 +-6957946688477274112 +-6960947572095770624 +-6962271229404348416 +-6962292590214234112 +-6968771079156654080 +-6968892545529896960 +-6970396058557005824 +-6974654664348033024 +-6975459232300236800 +-6986178228432322560 +-6988811476286873600 +-6988970700649168896 +-6992217501957169152 +-6997233584896229376 +-7000925438663041024 +-7003696402314215424 +-7011425384222244864 +-7017212700635545600 +-7020852530219171840 +-7030489936116252672 +-7035132060308643840 +-7036607470351654912 +-7037375807670501376 +-7037638331316469760 +-7038455462786334720 +-7040248820505149440 +-7041362811802148864 +-7042183597114081280 +-7046180371529351168 +-7049618574399692800 +-7052619594823221248 +-7055619148037554176 +-7055760785575665664 +-7057750467944931328 +-7058986555327307776 +-7063777488249085952 +-7078068944081002496 +-7079898537463537664 +-7081500255163727872 +-7083646746411720704 +-7085247548404178944 +-7093825013581979648 +-7094189393339678720 +-7094827141662539776 +-7104310188119834624 +-7106210529681350656 +-7109790267244814336 +-7115054815375073280 +-7120456708338688000 +-7127548949860818944 +-7138415011665043456 +-7139677575412686848 +-7140008543769042944 +-7144791190333546496 +-7145585429014888448 +-7147490721376591872 +-7152177800841502720 +-7155539549555105792 +-7158472098920390656 +-7159700138947862528 +-7161165959057334272 +-7162299524557471744 +-7172594404186693632 +-7185369278665605120 +-7192529627893858304 +-7194281951646187520 +-7195217207163166720 +-7198372044947275776 +-7199983995864711168 +-7201085131997011968 +-7209060152494817280 +-7213775605408178176 +-7220731681653604352 +-7221474017515347968 +-7228589258642194432 +-7240213957902663680 +-7242345057866285056 +-7245872320493322240 +-7246123871306244096 +-7255010240787030016 +-7255686273677328384 +-7262049693594943488 +-7262384251828518912 +-7262798781688651776 +-7263060340185194496 +-7265998318110711808 +-7266719102957125632 +-7270034223527993344 +-7273590251991162880 +-7273694358642851840 +-7276111129363046400 +-7287583262310350848 +-7292078334519894016 +-7296096276653391872 +-7303847963918393344 +-7319315187617587200 +-7326863346317598720 +-7328087811698909184 +-7329767178250018816 +-7329807949048193024 +-7330203470474985472 +-7330413050756235264 +-7333278178640953344 +-7333362172439035904 +-7340231535789727744 +-7344146703223496704 +-7344947507044466688 +-7345562788132315136 +-7356685674003021824 +-7357888618985873408 +-7362189611124563968 +-7366430883634929664 +-7378096180613840896 +-7380731416973295616 +-7395343938785738752 +-7395553021620731904 +-7399631791131074560 +-7404052043914526720 +-7404057145074712576 +-7409317158045442048 +-7409653086454030336 +-7412431471807283200 +-7413317118463164416 +-7419068456205385728 +-7420448501073051648 +-7425160895830573056 +-7429331808102899712 +-7433265617153343488 +-7442593976514420736 +-7444070205513138176 +-7451660755269853184 +-7453525026342617088 +-7455898404374921216 +-7456869587112255488 +-7461750143936897024 +-7464270453557993472 +-7469660864676585472 +-7470307155642245120 +-7476082621253402624 +-7483435388852559872 +-7488345684795342848 +-7488415863027367936 +-7494411162675691520 +-7496839341561954304 +-7497303453253402624 +-7500200359698907136 +-7501803640821456896 +-7506254246954500096 +-7507424948896415744 +-7507578199583694848 +-7510418793070075904 +-7511202710200885248 +-7511952204985049088 +-7512289590991544320 +-7512297136103800832 +-7515996202498473984 +-7524170566881329152 +-7526793959592140800 +-7528526815026692096 +-7532751268425261056 +-7535857766791577600 +-7535958203887706112 +-7536330682873937920 +-7540104552219860992 +-7541860097718902784 +-7542857121910046720 +-7547245548870025216 +-7547432761381339136 +-7551394356730339328 +-7557017910095650816 +-7558524160894427136 +-7571293705217687552 +-7571957778022178816 +-7572262898020278272 +-7572962089372991488 +-7576194692683563008 +-7593363318079610880 +-7594824008626372608 +-7598782894648565760 +-7600138468036386816 +-7603467428164009984 +-7603569103205916672 +-7610137349734883328 +-7611584069753552896 +-7612455481940246528 +-7612466483992051712 +-7616522969329262592 +-7617860842651017216 +-7623047151287754752 +-7623359796281999360 +-7623405558242500608 +-7624057992767782912 +-7629401308029976576 +-7637494527844343808 +-7637755520917741568 +-7642381493746483200 +-7647020450676146176 +-7661192563533062144 +-7661250850555633664 +-7663293054873812992 +-7665186441284968448 +-7668388017287020544 +-7669169138124275712 +-7673901622181953536 +-7679894005808693248 +-7686220526274502656 +-7687052294777208832 +-7692192232238678016 +-7695491171376291840 +-7700203302632210432 +-7703540456272994304 +-7707242953271500800 +-7707867749256445952 +-7708932208121225216 +-7709958788604936192 +-7712425776235274240 +-7720966287634112512 +-7739424919198187520 +-7744462446680375296 +-7751265769984491520 +-7751427073017544704 +-7753051494275432448 +-7759238919361888256 +-7759425383684849664 +-7772064021830574080 +-7773957003968675840 +-7777884099756122112 +-7778829032042790912 +-7779270198785875968 +-7782344916178796544 +-7784419454650843136 +-7792903881635938304 +-7793447076762345472 +-7797149520019062784 +-7797151404935618560 +-7800879252150779904 +-7802538500225777664 +-7804116532814151680 +-7805985795815342080 +-7811060170911375360 +-7818454479651135488 +-7819437864839495680 +-7822452149325094912 +-7824788571789279232 +-7827420207675105280 +-7831320202242228224 +-7831595638727565312 +-7833618000492109824 +-7835907977757245440 +-7838598833900584960 +-7840338174858199040 +-7845896959112658944 +-7848043121524228096 +-7849504559236210688 +-7858505678035951616 +-7866079955473989632 +-7867219225874571264 +-7868306678534193152 +-7873753603299540992 +-7875953567586451456 +-7877598807023386624 +-7878145001776152576 +-7879864376629567488 +-7881262505761710080 +-7881351200983613440 +-7883252982752665600 +-7884460946615984128 +-7888051992910274560 +-7892780594910871552 +-7893577088764174336 +-7894382303337832448 +-7895991410072928256 +-7902517224300036096 +-7903158849011843072 +-7904188195431661568 +-7907355742053883904 +-7910019233726242816 +-7911421221625077760 +-7915999634274369536 +-7916510129632296960 +-7928062266382778368 +-7928440849566146560 +-7939634346485858304 +-7949309059286163456 +-7949445503604604928 +-7953426740065312768 +-7964801953178091520 +-7966960765508280320 +-7978782649203228672 +-7989766326847807488 +-7998947380180819968 +-8007017894942638080 +-8013397854633648128 +-8016589197379289088 +-8017791189288869888 +-8018511948141748224 +-8021859935185928192 +-8022573309127000064 +-8023708819947323392 +-8028275725610909696 +-8028910243475038208 +-8030058711611629568 +-8034414142083170304 +-8046189486447017984 +-8046238369820344320 +-8047774491688255488 +-8051395538179063808 +-8051587217208967168 +-8051871680800120832 +-8054581198284668928 +-8067243114610532352 +-8070535484085895168 +-8076479329071955968 +-8082793390939193344 +-8084716955963252736 +-8086577583338061824 +-8088337436168830976 +-8099313480512716800 +-8103788088118018048 +-8104684579106914304 +-8108693586698706944 +-8115963579415650304 +-8117838333114212352 +-8122639684164501504 +-8127494999848919040 +-8131997716860526592 +-8136227554401107968 +-8140349174954893312 +-8142667274351345664 +-8147405381260345344 +-8158011642485825536 +-8161047750470279168 +-8172827216441573376 +-8182421179156905984 +-8191825921746305024 +-8194062064124362752 +-8203008052020879360 +-8203075743525806080 +-8205148279289085952 +-8214462866994339840 +-8219876839318716416 +-8232763638546694144 +-8240034910581153792 +-8240684139569233920 +-8243487285852766208 +-8244116388227104768 +-8244657976255889408 +-8260340354454503424 +-8269917980278980608 +-8270479187688816640 +-8275337702906757120 +-8280276629934981120 +-8293833565967810560 +-8297230235506343936 +-8300526097982226432 +-8300764106868350976 +-8302817097848307712 +-8317591428117274624 +-8318886086186213376 +-8322751250650218496 +-8330233444291084288 +-8335810316927213568 +-8340523561480437760 +-8345065519816695808 +-8347088645602050048 +-8357136656913686528 +-8358130693961195520 +-8359839265974165504 +-8368269352975982592 +-8368487814665895936 +-8369487968903897088 +-8379109122834997248 +-8379964450833367040 +-8384695077413412864 +-8387347109404286976 +-8387536830476820480 +-8395998375405912064 +-8400045653258444800 +-8411282676082565120 +-8418913260807217152 +-8425998949410889728 +-8426531414463545344 +-8430283518005846016 +-8430370933326536704 +-8431492599012163584 +-8438554249514491904 +-8445801063348281344 +-8453491903284994048 +-8454143651040444416 +-8465978403747037184 +-8469607298426437632 +-8471480409335513088 +-8485389240529354752 +-8488247955875618816 +-8490382417169408000 +-8494118409594650624 +-8503342882470019072 +-8503573595507761152 +-8507279516485566464 +-8509547439040757760 +-8518060755719585792 +-8518258741831680000 +-8521578237232529408 +-8522878384019169280 +-8523434203900674048 +-8525212657458348032 +-8535957064499879936 +-8536369662934401024 +-8543982423727128576 +-8544299740525461504 +-8545239748068941824 +-8546758906409312256 +-8552393882631389184 +-8555709701170552832 +-8559008501282832384 +-8559252110266564608 +-8562524688907485184 +-8566856504746352640 +-8566940231897874432 +-8570933074545745920 +-8572823448513445888 +-8572949572756774912 +-8581765103969312768 +-8581979259158929408 +-8584520406368493568 +-8585134536083660800 +-8585966098173870080 +-8593419958317056000 +-8603817012434198528 +-8604758220106014720 +-8607195685207408640 +-8615168537390571520 +-8619303037130301440 +-8623238306523824128 +-8623965248051789824 +-8632237187473088512 +-8649711322250362880 +-8651641150831362048 +-8654433008222797824 +-8654797319350927360 +-8658387566611996672 +-8659643752269242368 +-8659692318743314432 +-8660149447361404928 +-8664374244449050624 +-8664806103426252800 +-8665218198816497664 +-8665764757143658496 +-8675661101615489024 +-8675892979328212992 +-8683802826440105984 +-8688153842294595584 +-8689606130068611072 +-8694818694700048384 +-8696162322976997376 +-8703026916864802816 +-8704234107608203264 +-8705403811649355776 +-8710298418608619520 +-8714995808835444736 +-8719510423723155456 +-8730803262481580032 +-8731068123910987776 +-8746702976270385152 +-8754966081778565120 +-8754992450211692544 +-8756989568739835904 +-8760655406971863040 +-8763062627136864256 +-8768744394742235136 +-8782213262837530624 +-8783777723063099392 +-8789178184387641344 +-8797972842900307968 +-8807361476639629312 +-8813211231120031744 +-8831091081349758976 +-8832750849949892608 +-8833019327569510400 +-8835408234247168000 +-8836899523028312064 +-8843859708698583040 +-8844949406948671488 +-8845239510002753536 +-8852770376039219200 +-8853553406533894144 +-8856151919723003904 +-8856821118526734336 +-8857335871148171264 +-8858063395050110976 +-8859107121649893376 +-8866442231663067136 +-8870186814744420352 +-8870673219965001728 +-8875546987176206336 +-8877053610728161280 +-8877431933441327104 +-8879742387365429248 +-8881446757271846912 +-8887058200926093312 +-8892963883085578240 +-8896045754034978816 +-8914039133569400832 +-8916987977485312000 +-8922409715403112448 +-8923529803981905920 +-8927968289860370432 +-8930307926221807616 +-8938849835283677184 +-8940944155843461120 +-8941201923743703040 +-8946656952763777024 +-8948335470186373120 +-8959796625322680320 +-8961059046745669632 +-8962547695651323904 +-8965578088652095488 +-8989473881707921408 +-8990843030306717696 +-8992599250893979648 +-8996954350906294272 +-9002912355472736256 +-9004892183139811328 +-9008631121684832256 +-9012093603044245504 +-9013952631912325120 +-9014145341570203648 +-9022154842129547264 +-9032650742739836928 +-9049720998034137088 +-9051477157204770816 +-9058029636530003968 +-9066993118333706240 +-9071565764086521856 +-9075302542655684608 +-9075486079396069376 +-9078662294976061440 +-9079801920509001728 +-9080568167841226752 +-9080956291212132352 +-9084940280061485056 +-9088239683374350336 +-9091113592821972992 +-9095689235523264512 +-9101953184875757568 +-9102482277760983040 +-9105358806324035584 +-9105701280936501248 +-9109392978217484288 +-9117959922369060864 +-9126793997498957824 +-9136398397785948160 +-9142610685888192512 +-9145593811310010368 +-9148197394287779840 +-9149719074367946752 +-9157613004431998976 +-9175038118837149696 +-9175279464813223936 +-9178166810751909888 +-9187662685618348032 +-9189155542884474880 +-9203804401302323200 +-9203942396257984512 +-9206329156028112896 +-9210275791460499456 +-9213132862973829120 +-9215144824304721920 +-9218875542187065344 +-9219066990552760320 +1021 +1030 +1032 +1039 +1046 +1048 +1053 +1055 +1058 +1065 +1066 +1074 +1075 +108 +1086 +1093 +1094 +1095 +1099 +1115 +112 +1127 +1128 +1132 +1134 +1141 +1142 +1145 +1153 +1157 +1158 +1165 +1168 +1177 +1187 +1189 +1198 +120 +1201 +1217 +1234 +1243 +1247 +1252 +1261 +1270 +1280 +1282 +1286 +1287 +1290 +1291 +1299 +130 +1307 +1312 +1316 +1321 +1337 +1341 +1342 +1343 +1345 +1346 +135 +1366 +1368 +1371 +138 +1386 +1398 +1409 +1422 +1423 +1436 +1439 +1447 +1450 +1454 +1458 +1462 +1466 +1470 +1477 +1481 +1489 +1493 +1495 +1501 +1506 +1508 +1509 +1518 +1520 +1521 +1524 +1530 +1537 +154 +1541 +1542 +1545 +1556 +1559 +1561 +1566 +1604 +1606 +1608 +1613 +1614 +1620 +1638 +1641 +1643 +1648 +1651 +1667 +1671 +1674 +1676 +1678 +168 +1681 +169 +1693 +1701 +1704 +1719 +1726 +1728 +1745 +1751 +1752 +1769 +1774 +1775 +1777 +1780 +1781 +1785 +1786 +1788 +1789 +1791 +1796 +1806 +181 +1811 +1813 +1826 +1827 +1835 +1837 +1845 +1846 +1856 +1862 +1863 +1864 +1866 +187 +1870 +188 +1880 +1890 +1892 +1899 +19 +1906 +1910 +1914 +1926 +1937 +1940 +1941 +1948 +1955 +1965 +1972 +1981 +1983 +1987 +1990 +1995 +1999 +2001 +2002 +2004 +2009 +2011 +2013 +2016 +2017 +2020 +2025 +2026 +2029 +203 +204 +2046 +2056 +2067 +2072 +2073 +2085 +2089 +2092 +2105 +2106 +2108 +213 +2131 +2138 +2140 +2144 +2155 +2177 +2179 +2180 +2183 +2186 +2187 +2189 +2193 +2194 +22 +2201 +2205 +2214 +2217 +2218 +2223 +2227 +2229 +2232 +2241 +2244 +2255 +2262 +2264 +2270 +2274 +2277 +2279 +228 +2283 +2285 +2295 +2306 +2320 +2323 +2325 +2335 +2341 +2348 +2358 +236 +2373 +238 +2386 +2393 +2398 +2400 +2410 +2412 +2420 +2426 +2434 +244 +2461 +2463 +2465 +2469 +2475 +2476 +2485 +2487 +2492 +2494 +2502 +2506 +2509 +2512 +2514 +2515 +2517 +2524 +2533 +2539 +2540 +255 +2551 +2553 +2560 +2563 +2565 +2569 +2579 +2580 +2587 +259 +2599 +2607 +2608 +2619 +2625 +2626 +263 +2637 +2647 +2649 +2662 +2663 +2675 +268 +2680 +2682 +2688 +2689 +2692 +2700 +2712 +2714 +2715 +2719 +2724 +2725 +2735 +2745 +275 +2752 +2762 +2772 +2776 +2786 +279 +2790 +2791 +2803 +2805 +281 +2810 +2811 +2816 +2821 +2824 +2835 +2842 +2843 +2846 +2847 +2848 +2850 +2855 +2862 +2878 +2886 +289 +2897 +2900 +2903 +2905 +2911 +2915 +2919 +2933 +2938 +294 +2941 +2942 +296 +2962 +2968 +2971 +2977 +2979 +2984 +2986 +2988 +2991 +3002 +3006 +301 +302 +3021 +3024 +3029 +3031 +3036 +3043 +3054 +3055 +3058 +3059 +3060 +3067 +3071 +3073 +3079 +3083 +3084 +3089 +3094 +3103 +311 +3111 +3118 +3119 +3144 +3147 +3159 +3163 +3174 +3183 +3190 +3197 +3199 +320 +3203 +3206 +3208 +3212 +3213 +3231 +3232 +3235 +3244 +3245 +3248 +3249 +3253 +3255 +3263 +3286 +3300 +3307 +3322 +3333 +3352 +336 +3365 +3366 +3397 +34 +3401 +3407 +3409 +341 +3418 +342 +3421 +3430 +3443 +3446 +345 +3456 +346 +3460 +3462 +3467 +347 +3472 +3478 +3493 +350 +3507 +3510 +3512 +3533 +3534 +3541 +3542 +355 +3554 +3555 +3563 +3566 +3567 +3568 +3579 +3588 +3599 +3606 +3608 +3609 +361 +3613 +3622 +3625 +3630 +3637 +364 +3648 +3663 +3664 +367 +3672 +3673 +3677 +3680 +3682 +3690 +3691 +3701 +3702 +3703 +3707 +3722 +3724 +3725 +3728 +3739 +3747 +3749 +375 +3755 +3763 +3764 +3769 +3770 +378 +3781 +3789 +379 +3810 +3812 +3823 +3824 +383 +3830 +3835 +3841 +3848 +3858 +3860 +3866 +3874 +3879 +388 +3887 +3901 +3904 +3907 +391 +3910 +3911 +3913 +392 +3932 +3940 +3941 +3945 +3946 +3949 +3958 +3960 +3961 +3962 +3965 +3974 +3980 +3990 +4018 +4020 +4024 +4030 +4037 +4051 +4054 +4056 +4075 +4078 +4088 +41 +412 +417 +425 +443 +454 +455 +462 +470 +471 +481 +482 +485 +489 +49 +490 +491 +5 +500 +501 +504 +522 +523 +524 +530 +535 +579 +583 +584 +586 +587 +590 +597 +601 +612 +615 +618 +65 +650 +658 +66 +661 +663 +664 +677 +68 +681 +687 +688 +690 +691 +6923604860394528768 +6924820982050758656 +6926925215281774592 +6927260280037097472 +6928080429732536320 +6933001829416034304 +6933451028794925056 +6933731240564056064 +6934570741217755136 +694 +6947488599548215296 +695 +6960137166475911168 +6962726713896484864 +6963217546192322560 +6964585306125008896 +6967631925774639104 +6969599299897163776 +6974475559697768448 +6982145326341423104 +6987889924212203520 +6991316084916879360 +6996686091335884800 +7006803044329021440 +7013693841855774720 +7014537632150224896 +7017956982081404928 +7022349041913978880 +7027529814236192768 +7031339012080549888 +7039820685967343616 +7045967493826387968 +7049773031131283456 +7052226236896256000 +7054271419461812224 +7054938591408996352 +7060236714847412224 +7061498706968428544 +7061809776248545280 +7062382339142156288 +7062605127422894080 +7065344324692443136 +7068517339681259520 +7069729473166090240 +707 +7077311975029555200 +7078641038157643776 +7080269176324218880 +7084659344078970880 +7086206629592252416 +7091300332052062208 +7099005292698550272 +71 +7107604675626008576 +7125231541858205696 +7128222874437238784 +7130159794259353600 +7130306447560826880 +7149417430082027520 +7153922334283776000 +7157247449513484288 +7164349895861829632 +7165364563962191872 +7166263463731421184 +7175638927948562432 +7186401810812059648 +7195454019231834112 +7198687580227043328 +7199539820886958080 +7204802700490858496 +7210160489915236352 +7212016545671348224 +7212090742612467712 +7217123582035116032 +7220131672176058368 +7220581538170413056 +7223569671814987776 +7226360892091416576 +7229607057201127424 +723 +7231399302953377792 +7232273749940838400 +7235109456886816768 +7237310132329488384 +7238339720750948352 +724 +7242751359672631296 +7249443195032985600 +7250237407877382144 +7254710367022645248 +7255302164215013376 +7259955893466931200 +7260908278294560768 +7265141874315517952 +7266437490436341760 +7271786885641666560 +7271887863395459072 +7274777328897802240 +7291432593139507200 +7295502697317097472 +7295926343524163584 +7296164580491075584 +7299197687217856512 +73 +7304839835188609024 +7308289763456000000 +7309156463509061632 +7310869618402910208 +7319711402123149312 +7333512171174223872 +7339426767877390336 +7343171468838567936 +7344029858387820544 +7345991518378442752 +7347732772348870656 +7348598907182800896 +735 +7354813692542304256 +7359004378440146944 +736 +7368920486374989824 +7370078518278397952 +7370803940448305152 +7375521127126089728 +7376467688511455232 +7378993334503694336 +738 +7381659098423926784 +7384150968511315968 +7386087924003676160 +7391208370547269632 +7393308503950548992 +7394967727502467072 +7401968422230032384 +7410096605330227200 +7410872053689794560 +7411793502161182720 +7412924364686458880 +7414865343000322048 +7418271723644403712 +743 +7432428551399669760 +7432998950057975808 +7436133434239229952 +7440265908266827776 +7450416810848313344 +7452756603516190720 +7454442625055145984 +7454632396542074880 +7461153404961128448 +7471208109437304832 +7473537548003352576 +7486884806277611520 +7487338208419823616 +7487538600082554880 +7490717730239250432 +7491898395977523200 +7492436934952574976 +7497276415392407552 +7497306924248834048 +7500716020874674176 +7514552840617558016 +7517159036469575680 +7524958388842078208 +7528074274555305984 +7528211148397944832 +7534042483076857856 +7534145866886782976 +7534549597202194432 +7545689659010949120 +7548958830580563968 +7549858023389003776 +7555301305375858688 +7566273236152721408 +7569249672628789248 +7570474972934488064 +7573530789362262016 +7575087487730196480 +7581052107944361984 +7581614118458335232 +7584007864107778048 +7592440105065308160 +7593521922173419520 +7596563216912211968 +7599019810193211392 +7608447395949109248 +7614435638888210432 +7620183559667081216 +7621013099259527168 +7625728883085025280 +7626715182847090688 +763 +7637152193832886272 +7647481735646363648 +7648729477297987584 +7652123583449161728 +7659279803863146496 +7662037650719850496 +7675009476762918912 +7678790769408172032 +7682327310082531328 +7686992843032010752 +7689489436826804224 +7690986322714066944 +7691062622443044864 +7696737688942567424 +7697541332524376064 +7700734109530767360 +7701723309715685376 +7705445437881278464 +7710447533880614912 +7718825401976684544 +7720187583697502208 +7731443941834678272 +7735566678126616576 +774 +7741854854673367040 +7746402369011277824 +7747874976739016704 +7748799008146366464 +7752740515534422016 +7753359568986636288 +7753882935005880320 +7761834341179375616 +7762823913046556672 +7765456790394871808 +7768984605670604800 +7775034125776363520 +7778936842502275072 +7779486624537370624 +7779735136559579136 +7782245855193874432 +7784169796350730240 +7784489776013295616 +779 +7790728456522784768 +7792036342592348160 +7794244032613703680 +78 +780 +7800332581637259264 +7801697837312884736 +7818464507324121088 +782 +7823874904139849728 +784 +7843804446688264192 +7844258063629852672 +7845953007588401152 +7857878068300898304 +7868367829080506368 +7870277756614623232 +7871189141676998656 +7871554728617025536 +7874764415950176256 +7885697257930588160 +7888238729321496576 +789 +7892026679115554816 +7892281003266408448 +7898670840507031552 +7909645665163804672 +7917494645725765632 +7919597361814577152 +7921639119138070528 +7922443154272395264 +7926898770090491904 +7933040277013962752 +7936149988210212864 +7944741547145502720 +7947544013461512192 +7948803266578161664 +7955126053367119872 +7961515985722605568 +7961909238130270208 +797 +7983789401706094592 +7989119273552158720 +7989160253372817408 +7997694023324975104 +7998357471114969088 +7998687089080467456 +80 +8000440057238052864 +8002769767000145920 +8004633750273925120 +8011181697250631680 +8011602724663336960 +8014986215157530624 +8017403886247927808 +803 +8045070943673671680 +8048726769133592576 +8059284960252731392 +8069531888205086720 +8071961599867387904 +8073733016154431488 +8079573715140485120 +808 +8087737899452432384 +809 +8091421389575282688 +8099215208813903872 +8100036735858401280 +8109381965028548608 +8111757081791733760 +8113585123802529792 +8116738401948377088 +812 +8120593157178228736 +8129551357032259584 +8135164922674872320 +8142241016679735296 +8143462899383345152 +8144552446127972352 +8145745969573666816 +8145750910080745472 +8146288732715196416 +8146492373537660928 +8148211378319933440 +815 +8150115791664340992 +8156018594610790400 +8156782979767238656 +8160569434550403072 +8160662610166194176 +8163948965373386752 +8168742078705262592 +8169878743136043008 +8171188598958407680 +8183233196086214656 +8184799300477943808 +8190539859890601984 +8190967051000659968 +8192304692696383488 +8195103847607967744 +8199513544090730496 +820 +8201303040648052736 +8201491077550874624 +8208354137450766336 +8210813831744118784 +8213810702473183232 +8219326436390821888 +8220104397160169472 +8221561626658881536 +8222714144797368320 +8223732800007864320 +823 +8230371298967609344 +8235179243092090880 +8244041599171862528 +8254763178969915392 +8268875586442256384 +8269730157217062912 +8272001752345690112 +8279056098670198784 +8282648443538710528 +8283099811330506752 +8286706213485297664 +8287522765741301760 +8290014929764040704 +8290944180915871744 +8294315622451740672 +8295110846998233088 +83 +8302473563519950848 +8316336224427483136 +8323460620425330688 +8325227661920133120 +8332670681629106176 +8333523087360901120 +8337549596011102208 +8345435427356090368 +835 +8351163199364390912 +8362046808797306880 +8365058996333953024 +8367680396909404160 +8368012468775608320 +837 +8371939471056470016 +8372408423196270592 +8372588378498777088 +8374321007870836736 +8376440110255243264 +8383159090746204160 +8388363436324085760 +8391407951622815744 +8391785334471589888 +8396433451610652672 +8398862954249560064 +8407869317250220032 +8410599906334097408 +8411494452500930560 +8415171956168417280 +8416121695917498368 +8417381121663746048 +8419958579638157312 +8424515140664360960 +8435912708683087872 +845 +8451612303224520704 +8454154705460666368 +8455496814886002688 +8457906374051020800 +8461498293348065280 +8463868417649524736 +8467976965865799680 +8470141334513098752 +8472429318602268672 +8473699639908261888 +8487573502287478784 +8489584373231919104 +8489735221193138176 +85 +8501910015960735744 +8508401924853850112 +8509508263705477120 +8514851182589771776 +8514979402185596928 +8515682078777081856 +8518454006987948032 +8519937082746634240 +8523972434954510336 +8524940073536954368 +8525336514806317056 +8525894870444638208 +8532016240026279936 +8536948829863198720 +8540237852367446016 +8543177193114779648 +8547243497773457408 +8551446856960942080 +8553195689344991232 +8554899472487596032 +8555933456197828608 +8555948987770511360 +8557218322962644992 +8558000156325707776 +8560526613401714688 +8569030475428511744 +8570983266408103936 +8571268359622172672 +8573305425181941760 +8577096957495025664 +8579974641030365184 +8583916402383601664 +8613562211893919744 +8625937019655200768 +8631515095562887168 +8637720762289659904 +8639254009546055680 +8641221723991433216 +8643198489997254656 +8644602243484803072 +8649296591032172544 +8652485812846567424 +8656571350884048896 +8660248367767076864 +8665969966920990720 +8666178591503564800 +8677632093825916928 +8677794924343164928 +868 +8682955459667951616 +8687042963221159936 +8688483860094599168 +8693036785094565888 +8697823501349609472 +8698055291501543424 +8708232769657815040 +8708845895460577280 +871 +8714829359200747520 +8716401555586727936 +8720504651219001344 +8723248113030782976 +873 +8731960288562044928 +8734584858442498048 +8736061027343859712 +874 +8752150411997356032 +8759089349412847616 +8759184090543857664 +8760285623204290560 +8761174805938331648 +8769199243315814400 +8773222500321361920 +8775009214012456960 +8779073705407963136 +8779711700787298304 +878 +8780196485890555904 +8782900615468302336 +8783241818558193664 +8785153741735616512 +8792059919353348096 +8793387410919038976 +8795069490394882048 +8806507556248731648 +8808467247666241536 +8811693967537774592 +8815398225009967104 +8817665768680906752 +8822384228057604096 +8825059717746376704 +8829545979081744384 +883 +8836228556823977984 +8837420822750314496 +8849475396952514560 +8850055384477401088 +8853989376829833216 +8854495099223375872 +8854677881758162944 +8854715632851345408 +8856674723376668672 +8868529429494071296 +8871707618793996288 +8875745082589929472 +888 +8895174927321243648 +8896237972875370496 +8897901899039473664 +8899122608190930944 +8900180888218329088 +8900351886974279680 +8900545829211299840 +8905330479248064512 +8910706980937261056 +8920344895701393408 +8920533610804609024 +8927691194719174656 +8928133990107881472 +8935252708196999168 +8936639033158410240 +8939431770838810624 +8945004737083555840 +8945302550165004288 +8962097525980225536 +8972161729142095872 +8979012655944220672 +898 +8983857919580209152 +8983912573761167360 +8984935029383389184 +8987827141270880256 +8991071342495531008 +8991442360387584000 +8994608999945125888 +8995562121346260992 +8996824426131390464 +9000633029632499712 +9001907486943993856 +9005866015985713152 +9016280522993975296 +9020143715350814720 +9023663198045544448 +9030480306789818368 +9038087402564657152 +9040958359122640896 +9043089884440068096 +9048002942653710336 +9048297564833079296 +9050032047355125760 +9053187076403060736 +9054887854393950208 +9062227900376203264 +9064847977742032896 +9067985867711291392 +9073672806863790080 +9075404705968840704 +9078604269481148416 +908 +9083076230151864320 +9083704659251798016 +9084402694981533696 +9085381906890203136 +9085434340468473856 +9086905513121890304 +9089435102788009984 +9091082386452684800 +9091085792947666944 +9094945190752903168 +9096395849845194752 +91 +9104574294205636608 +9107991000536498176 +9112400579327483904 +9114850402293882880 +9116137265342169088 +9117063974299148288 +9119046173224370176 +9123116008004288512 +913 +9131533983989358592 +9132009829414584320 +9136234417125007360 +9136548192574529536 +9139805788041134080 +914 +9148071980848742400 +9149216169284091904 +9165199002069458944 +9169248521377374208 +917 +9174894805640142848 +918 +9180098147855769600 +9182828596851990528 +9185458640237641728 +9185952983951343616 +9188173682239275008 +919 +9190466190353661952 +9191943992860327936 +9194388393453060096 +9199741683232399360 +9207107990561972224 +9207927479837319168 +9209153648361848832 +921 +9211455920344088576 +922 +923 +927 +928 +939 +94 +945 +947 +950 +958 +961 +965 +967 +976 +979 +982 +987 +997 +999 +NULL +NULL +PREHOOK: query: explain vectorization detail +select b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: true + enabledConditionsMet: [hive.vectorized.execution.enabled IS true] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez +#### A masked pattern was here #### + Edges: + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + TableScan Vectorization: + native: true + projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + Select Operator + expressions: b (type: bigint) + outputColumnNames: b + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [3] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count() + Group By Vectorization: + aggregators: VectorUDAFCountStar(*) -> bigint + className: VectorGroupByOperator + groupByMode: HASH + vectorOutput: true + keyExpressions: col 3, ConstantVectorExpression(val 0) -> 15:long + native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false + vectorProcessingMode: HASH + projectedOutputColumns: [0] + keys: b (type: bigint), 0 (type: int) + mode: hash + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint), _col1 (type: int) + sort order: ++ + Map-reduce partition columns: _col0 (type: bigint), _col1 (type: int) + Reduce Sink Vectorization: + className: VectorReduceSinkMultiKeyOperator + keyColumns: [0, 1] + native: true + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + valueColumns: [2] + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + value expressions: _col2 (type: bigint) + Execution mode: vectorized, llap + LLAP IO: all inputs + Map Vectorization: + enabled: true + enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true + groupByVectorOutput: true + inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 13 + includeColumns: [3] + dataColumns: t:tinyint, si:smallint, i:int, b:bigint, f:float, d:double, dc:decimal(38,18), bo:boolean, s:string, s2:string, ts:timestamp, ts2:timestamp, dt:date + partitionColumnCount: 0 + scratchColumnTypeNames: bigint, bigint, bigint + Reducer 2 + Execution mode: vectorized, llap + Reduce Vectorization: + enabled: true + enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true + reduceColumnNullOrder: aa + reduceColumnSortOrder: ++ + groupByVectorOutput: true + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 3 + dataColumns: KEY._col0:bigint, KEY._col1:int, VALUE._col0:bigint + partitionColumnCount: 0 + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + Group By Vectorization: + aggregators: VectorUDAFCountMerge(col 2) -> bigint + className: VectorGroupByOperator + groupByMode: MERGEPARTIAL + vectorOutput: true + keyExpressions: col 0, col 1 + native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false + vectorProcessingMode: MERGE_PARTIAL + projectedOutputColumns: [0] + keys: KEY._col0 (type: bigint), KEY._col1 (type: int) + mode: mergepartial + outputColumnNames: _col0, _col2 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + pruneGroupingSetId: true + Select Operator + expressions: _col0 (type: bigint), _col2 (type: bigint) + outputColumnNames: _col0, _col1 + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [0, 1] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + File Sink Vectorization: + className: VectorFileSinkOperator + native: false + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 1 +-6919476845891313664 1 +-6920172215209426944 1 +-6921654334727036928 1 +-6933565857643814912 1 +-6934304742087655424 1 +-6935038507792801792 1 +-6935548339131138048 1 +-6938706403992854528 1 +-6941777546186579968 1 +-6947955278050181120 1 +-6951350560260784128 1 +-6957946688477274112 1 +-6960947572095770624 1 +-6962271229404348416 1 +-6962292590214234112 1 +-6968771079156654080 1 +-6968892545529896960 1 +-6970396058557005824 1 +-6974654664348033024 1 +-6975459232300236800 1 +-6986178228432322560 1 +-6988811476286873600 1 +-6988970700649168896 1 +-6992217501957169152 1 +-6997233584896229376 1 +-7000925438663041024 1 +-7003696402314215424 1 +-7011425384222244864 1 +-7017212700635545600 1 +-7020852530219171840 1 +-7030489936116252672 1 +-7035132060308643840 1 +-7036607470351654912 1 +-7037375807670501376 1 +-7037638331316469760 1 +-7038455462786334720 1 +-7040248820505149440 1 +-7041362811802148864 1 +-7042183597114081280 1 +-7046180371529351168 1 +-7049618574399692800 1 +-7052619594823221248 1 +-7055619148037554176 1 +-7055760785575665664 1 +-7057750467944931328 1 +-7058986555327307776 1 +-7063777488249085952 1 +-7078068944081002496 1 +-7079898537463537664 1 +-7081500255163727872 1 +-7083646746411720704 1 +-7085247548404178944 1 +-7093825013581979648 1 +-7094189393339678720 1 +-7094827141662539776 1 +-7104310188119834624 1 +-7106210529681350656 1 +-7109790267244814336 1 +-7115054815375073280 1 +-7120456708338688000 1 +-7127548949860818944 1 +-7138415011665043456 1 +-7139677575412686848 1 +-7140008543769042944 1 +-7144791190333546496 1 +-7145585429014888448 1 +-7147490721376591872 1 +-7152177800841502720 1 +-7155539549555105792 1 +-7158472098920390656 1 +-7159700138947862528 1 +-7161165959057334272 1 +-7162299524557471744 1 +-7172594404186693632 1 +-7185369278665605120 1 +-7192529627893858304 1 +-7194281951646187520 1 +-7195217207163166720 1 +-7198372044947275776 1 +-7199983995864711168 1 +-7201085131997011968 1 +-7209060152494817280 1 +-7213775605408178176 1 +-7220731681653604352 1 +-7221474017515347968 1 +-7228589258642194432 1 +-7240213957902663680 1 +-7242345057866285056 1 +-7245872320493322240 1 +-7246123871306244096 1 +-7255010240787030016 1 +-7255686273677328384 1 +-7262049693594943488 1 +-7262384251828518912 1 +-7262798781688651776 1 +-7263060340185194496 1 +-7265998318110711808 1 +-7266719102957125632 1 +-7270034223527993344 1 +-7273590251991162880 1 +-7273694358642851840 1 +-7276111129363046400 1 +-7287583262310350848 1 +-7292078334519894016 1 +-7296096276653391872 1 +-7303847963918393344 1 +-7319315187617587200 1 +-7326863346317598720 1 +-7328087811698909184 1 +-7329767178250018816 1 +-7329807949048193024 1 +-7330203470474985472 1 +-7330413050756235264 1 +-7333278178640953344 1 +-7333362172439035904 1 +-7340231535789727744 1 +-7344146703223496704 1 +-7344947507044466688 1 +-7345562788132315136 1 +-7356685674003021824 1 +-7357888618985873408 1 +-7362189611124563968 1 +-7366430883634929664 1 +-7378096180613840896 1 +-7380731416973295616 1 +-7395343938785738752 1 +-7395553021620731904 1 +-7399631791131074560 1 +-7404052043914526720 1 +-7404057145074712576 1 +-7409317158045442048 1 +-7409653086454030336 1 +-7412431471807283200 1 +-7413317118463164416 1 +-7419068456205385728 1 +-7420448501073051648 1 +-7425160895830573056 1 +-7429331808102899712 1 +-7433265617153343488 1 +-7442593976514420736 1 +-7444070205513138176 1 +-7451660755269853184 1 +-7453525026342617088 1 +-7455898404374921216 1 +-7456869587112255488 1 +-7461750143936897024 1 +-7464270453557993472 1 +-7469660864676585472 1 +-7470307155642245120 1 +-7476082621253402624 1 +-7483435388852559872 1 +-7488345684795342848 1 +-7488415863027367936 1 +-7494411162675691520 1 +-7496839341561954304 1 +-7497303453253402624 1 +-7500200359698907136 1 +-7501803640821456896 1 +-7506254246954500096 1 +-7507424948896415744 1 +-7507578199583694848 1 +-7510418793070075904 1 +-7511202710200885248 1 +-7511952204985049088 1 +-7512289590991544320 1 +-7512297136103800832 1 +-7515996202498473984 1 +-7524170566881329152 1 +-7526793959592140800 1 +-7528526815026692096 1 +-7532751268425261056 1 +-7535857766791577600 1 +-7535958203887706112 1 +-7536330682873937920 1 +-7540104552219860992 1 +-7541860097718902784 1 +-7542857121910046720 1 +-7547245548870025216 1 +-7547432761381339136 1 +-7551394356730339328 1 +-7557017910095650816 1 +-7558524160894427136 1 +-7571293705217687552 1 +-7571957778022178816 1 +-7572262898020278272 1 +-7572962089372991488 1 +-7576194692683563008 1 +-7593363318079610880 1 +-7594824008626372608 1 +-7598782894648565760 1 +-7600138468036386816 1 +-7603467428164009984 1 +-7603569103205916672 1 +-7610137349734883328 1 +-7611584069753552896 1 +-7612455481940246528 1 +-7612466483992051712 1 +-7616522969329262592 1 +-7617860842651017216 1 +-7623047151287754752 1 +-7623359796281999360 1 +-7623405558242500608 1 +-7624057992767782912 1 +-7629401308029976576 1 +-7637494527844343808 1 +-7637755520917741568 1 +-7642381493746483200 1 +-7647020450676146176 1 +-7661192563533062144 1 +-7661250850555633664 1 +-7663293054873812992 1 +-7665186441284968448 1 +-7668388017287020544 1 +-7669169138124275712 1 +-7673901622181953536 1 +-7679894005808693248 1 +-7686220526274502656 1 +-7687052294777208832 1 +-7692192232238678016 1 +-7695491171376291840 1 +-7700203302632210432 1 +-7703540456272994304 1 +-7707242953271500800 1 +-7707867749256445952 1 +-7708932208121225216 1 +-7709958788604936192 1 +-7712425776235274240 1 +-7720966287634112512 1 +-7739424919198187520 1 +-7744462446680375296 1 +-7751265769984491520 1 +-7751427073017544704 1 +-7753051494275432448 1 +-7759238919361888256 1 +-7759425383684849664 1 +-7772064021830574080 1 +-7773957003968675840 1 +-7777884099756122112 1 +-7778829032042790912 1 +-7779270198785875968 1 +-7782344916178796544 1 +-7784419454650843136 1 +-7792903881635938304 1 +-7793447076762345472 1 +-7797149520019062784 1 +-7797151404935618560 1 +-7800879252150779904 1 +-7802538500225777664 1 +-7804116532814151680 1 +-7805985795815342080 1 +-7811060170911375360 1 +-7818454479651135488 1 +-7819437864839495680 1 +-7822452149325094912 1 +-7824788571789279232 1 +-7827420207675105280 1 +-7831320202242228224 1 +-7831595638727565312 1 +-7833618000492109824 1 +-7835907977757245440 1 +-7838598833900584960 1 +-7840338174858199040 1 +-7845896959112658944 1 +-7848043121524228096 1 +-7849504559236210688 1 +-7858505678035951616 1 +-7866079955473989632 1 +-7867219225874571264 1 +-7868306678534193152 1 +-7873753603299540992 1 +-7875953567586451456 1 +-7877598807023386624 1 +-7878145001776152576 1 +-7879864376629567488 1 +-7881262505761710080 1 +-7881351200983613440 1 +-7883252982752665600 1 +-7884460946615984128 1 +-7888051992910274560 1 +-7892780594910871552 1 +-7893577088764174336 1 +-7894382303337832448 1 +-7895991410072928256 1 +-7902517224300036096 1 +-7903158849011843072 1 +-7904188195431661568 1 +-7907355742053883904 1 +-7910019233726242816 1 +-7911421221625077760 1 +-7915999634274369536 1 +-7916510129632296960 1 +-7928062266382778368 1 +-7928440849566146560 1 +-7939634346485858304 1 +-7949309059286163456 1 +-7949445503604604928 1 +-7953426740065312768 1 +-7964801953178091520 1 +-7966960765508280320 1 +-7978782649203228672 1 +-7989766326847807488 1 +-7998947380180819968 1 +-8007017894942638080 1 +-8013397854633648128 1 +-8016589197379289088 1 +-8017791189288869888 1 +-8018511948141748224 1 +-8021859935185928192 1 +-8022573309127000064 1 +-8023708819947323392 1 +-8028275725610909696 1 +-8028910243475038208 1 +-8030058711611629568 1 +-8034414142083170304 1 +-8046189486447017984 1 +-8046238369820344320 1 +-8047774491688255488 1 +-8051395538179063808 1 +-8051587217208967168 1 +-8051871680800120832 1 +-8054581198284668928 1 +-8067243114610532352 1 +-8070535484085895168 1 +-8076479329071955968 1 +-8082793390939193344 1 +-8084716955963252736 1 +-8086577583338061824 1 +-8088337436168830976 1 +-8099313480512716800 1 +-8103788088118018048 1 +-8104684579106914304 1 +-8108693586698706944 1 +-8115963579415650304 1 +-8117838333114212352 1 +-8122639684164501504 1 +-8127494999848919040 1 +-8131997716860526592 1 +-8136227554401107968 1 +-8140349174954893312 1 +-8142667274351345664 1 +-8147405381260345344 1 +-8158011642485825536 1 +-8161047750470279168 1 +-8172827216441573376 1 +-8182421179156905984 1 +-8191825921746305024 1 +-8194062064124362752 1 +-8203008052020879360 1 +-8203075743525806080 1 +-8205148279289085952 1 +-8214462866994339840 1 +-8219876839318716416 1 +-8232763638546694144 1 +-8240034910581153792 1 +-8240684139569233920 1 +-8243487285852766208 1 +-8244116388227104768 1 +-8244657976255889408 1 +-8260340354454503424 1 +-8269917980278980608 1 +-8270479187688816640 1 +-8275337702906757120 1 +-8280276629934981120 1 +-8293833565967810560 1 +-8297230235506343936 1 +-8300526097982226432 1 +-8300764106868350976 1 +-8302817097848307712 1 +-8317591428117274624 1 +-8318886086186213376 1 +-8322751250650218496 1 +-8330233444291084288 1 +-8335810316927213568 1 +-8340523561480437760 1 +-8345065519816695808 1 +-8347088645602050048 1 +-8357136656913686528 1 +-8358130693961195520 1 +-8359839265974165504 1 +-8368269352975982592 1 +-8368487814665895936 1 +-8369487968903897088 1 +-8379109122834997248 1 +-8379964450833367040 1 +-8384695077413412864 1 +-8387347109404286976 1 +-8387536830476820480 1 +-8395998375405912064 1 +-8400045653258444800 1 +-8411282676082565120 1 +-8418913260807217152 1 +-8425998949410889728 1 +-8426531414463545344 1 +-8430283518005846016 1 +-8430370933326536704 1 +-8431492599012163584 1 +-8438554249514491904 1 +-8445801063348281344 1 +-8453491903284994048 1 +-8454143651040444416 1 +-8465978403747037184 1 +-8469607298426437632 1 +-8471480409335513088 1 +-8485389240529354752 1 +-8488247955875618816 1 +-8490382417169408000 1 +-8494118409594650624 1 +-8503342882470019072 1 +-8503573595507761152 1 +-8507279516485566464 1 +-8509547439040757760 1 +-8518060755719585792 1 +-8518258741831680000 1 +-8521578237232529408 1 +-8522878384019169280 1 +-8523434203900674048 1 +-8525212657458348032 1 +-8535957064499879936 1 +-8536369662934401024 1 +-8543982423727128576 1 +-8544299740525461504 1 +-8545239748068941824 1 +-8546758906409312256 1 +-8552393882631389184 1 +-8555709701170552832 1 +-8559008501282832384 1 +-8559252110266564608 1 +-8562524688907485184 1 +-8566856504746352640 1 +-8566940231897874432 1 +-8570933074545745920 1 +-8572823448513445888 1 +-8572949572756774912 1 +-8581765103969312768 1 +-8581979259158929408 1 +-8584520406368493568 1 +-8585134536083660800 1 +-8585966098173870080 1 +-8593419958317056000 1 +-8603817012434198528 1 +-8604758220106014720 1 +-8607195685207408640 1 +-8615168537390571520 1 +-8619303037130301440 1 +-8623238306523824128 1 +-8623965248051789824 1 +-8632237187473088512 1 +-8649711322250362880 1 +-8651641150831362048 1 +-8654433008222797824 1 +-8654797319350927360 1 +-8658387566611996672 1 +-8659643752269242368 1 +-8659692318743314432 1 +-8660149447361404928 1 +-8664374244449050624 1 +-8664806103426252800 1 +-8665218198816497664 1 +-8665764757143658496 1 +-8675661101615489024 1 +-8675892979328212992 1 +-8683802826440105984 1 +-8688153842294595584 1 +-8689606130068611072 1 +-8694818694700048384 1 +-8696162322976997376 1 +-8703026916864802816 1 +-8704234107608203264 1 +-8705403811649355776 1 +-8710298418608619520 1 +-8714995808835444736 1 +-8719510423723155456 1 +-8730803262481580032 1 +-8731068123910987776 1 +-8746702976270385152 1 +-8754966081778565120 1 +-8754992450211692544 1 +-8756989568739835904 1 +-8760655406971863040 1 +-8763062627136864256 1 +-8768744394742235136 1 +-8782213262837530624 1 +-8783777723063099392 1 +-8789178184387641344 1 +-8797972842900307968 1 +-8807361476639629312 1 +-8813211231120031744 1 +-8831091081349758976 1 +-8832750849949892608 1 +-8833019327569510400 1 +-8835408234247168000 1 +-8836899523028312064 1 +-8843859708698583040 1 +-8844949406948671488 1 +-8845239510002753536 1 +-8852770376039219200 1 +-8853553406533894144 1 +-8856151919723003904 1 +-8856821118526734336 1 +-8857335871148171264 1 +-8858063395050110976 1 +-8859107121649893376 1 +-8866442231663067136 1 +-8870186814744420352 1 +-8870673219965001728 1 +-8875546987176206336 1 +-8877053610728161280 1 +-8877431933441327104 1 +-8879742387365429248 1 +-8881446757271846912 1 +-8887058200926093312 1 +-8892963883085578240 1 +-8896045754034978816 1 +-8914039133569400832 1 +-8916987977485312000 1 +-8922409715403112448 1 +-8923529803981905920 1 +-8927968289860370432 1 +-8930307926221807616 1 +-8938849835283677184 1 +-8940944155843461120 1 +-8941201923743703040 1 +-8946656952763777024 1 +-8948335470186373120 1 +-8959796625322680320 1 +-8961059046745669632 1 +-8962547695651323904 1 +-8965578088652095488 1 +-8989473881707921408 1 +-8990843030306717696 1 +-8992599250893979648 1 +-8996954350906294272 1 +-9002912355472736256 1 +-9004892183139811328 1 +-9008631121684832256 1 +-9012093603044245504 1 +-9013952631912325120 1 +-9014145341570203648 1 +-9022154842129547264 1 +-9032650742739836928 1 +-9049720998034137088 1 +-9051477157204770816 1 +-9058029636530003968 1 +-9066993118333706240 1 +-9071565764086521856 1 +-9075302542655684608 1 +-9075486079396069376 1 +-9078662294976061440 1 +-9079801920509001728 1 +-9080568167841226752 1 +-9080956291212132352 1 +-9084940280061485056 1 +-9088239683374350336 1 +-9091113592821972992 1 +-9095689235523264512 1 +-9101953184875757568 1 +-9102482277760983040 1 +-9105358806324035584 1 +-9105701280936501248 1 +-9109392978217484288 1 +-9117959922369060864 1 +-9126793997498957824 1 +-9136398397785948160 1 +-9142610685888192512 1 +-9145593811310010368 1 +-9148197394287779840 1 +-9149719074367946752 1 +-9157613004431998976 1 +-9175038118837149696 1 +-9175279464813223936 1 +-9178166810751909888 1 +-9187662685618348032 1 +-9189155542884474880 1 +-9203804401302323200 1 +-9203942396257984512 1 +-9206329156028112896 1 +-9210275791460499456 1 +-9213132862973829120 1 +-9215144824304721920 1 +-9218875542187065344 1 +-9219066990552760320 1 +1021 1 +1030 1 +1032 1 +1039 1 +1046 1 +1048 1 +1053 1 +1055 1 +1058 1 +1065 1 +1066 1 +1074 1 +1075 3 +108 1 +1086 1 +1093 1 +1094 1 +1095 1 +1099 1 +1115 1 +112 1 +1127 1 +1128 1 +1132 1 +1134 1 +1141 1 +1142 1 +1145 1 +1153 1 +1157 1 +1158 1 +1165 2 +1168 1 +1177 1 +1187 1 +1189 1 +1198 1 +120 1 +1201 1 +1217 1 +1234 1 +1243 1 +1247 1 +1252 1 +1261 1 +1270 1 +1280 1 +1282 1 +1286 1 +1287 1 +1290 1 +1291 1 +1299 1 +130 1 +1307 1 +1312 1 +1316 1 +1321 1 +1337 1 +1341 1 +1342 1 +1343 1 +1345 1 +1346 1 +135 1 +1366 1 +1368 2 +1371 2 +138 1 +1386 1 +1398 1 +1409 1 +1422 1 +1423 1 +1436 1 +1439 1 +1447 1 +1450 1 +1454 1 +1458 1 +1462 1 +1466 1 +1470 1 +1477 1 +1481 2 +1489 1 +1493 1 +1495 1 +1501 1 +1506 1 +1508 1 +1509 2 +1518 1 +1520 1 +1521 1 +1524 1 +1530 1 +1537 2 +154 2 +1541 1 +1542 1 +1545 1 +1556 1 +1559 1 +1561 1 +1566 1 +1604 1 +1606 1 +1608 1 +1613 1 +1614 1 +1620 1 +1638 1 +1641 1 +1643 1 +1648 1 +1651 1 +1667 1 +1671 1 +1674 1 +1676 1 +1678 1 +168 1 +1681 1 +169 1 +1693 1 +1701 2 +1704 1 +1719 2 +1726 1 +1728 1 +1745 1 +1751 1 +1752 1 +1769 1 +1774 1 +1775 1 +1777 2 +1780 1 +1781 1 +1785 1 +1786 1 +1788 1 +1789 1 +1791 1 +1796 1 +1806 1 +181 1 +1811 1 +1813 1 +1826 1 +1827 1 +1835 1 +1837 1 +1845 1 +1846 1 +1856 2 +1862 1 +1863 1 +1864 1 +1866 1 +187 1 +1870 1 +188 1 +1880 1 +1890 1 +1892 1 +1899 1 +19 2 +1906 1 +1910 1 +1914 2 +1926 1 +1937 1 +1940 1 +1941 1 +1948 3 +1955 1 +1965 1 +1972 1 +1981 1 +1983 1 +1987 1 +1990 1 +1995 1 +1999 1 +2001 1 +2002 1 +2004 1 +2009 1 +2011 1 +2013 1 +2016 1 +2017 1 +2020 2 +2025 1 +2026 1 +2029 1 +203 1 +204 1 +2046 1 +2056 1 +2067 1 +2072 1 +2073 1 +2085 1 +2089 1 +2092 1 +2105 1 +2106 1 +2108 1 +213 2 +2131 1 +2138 1 +2140 1 +2144 1 +2155 1 +2177 1 +2179 1 +2180 1 +2183 1 +2186 1 +2187 1 +2189 1 +2193 2 +2194 1 +22 1 +2201 1 +2205 1 +2214 1 +2217 1 +2218 1 +2223 1 +2227 1 +2229 1 +2232 1 +2241 1 +2244 1 +2255 1 +2262 1 +2264 1 +2270 1 +2274 1 +2277 1 +2279 1 +228 1 +2283 1 +2285 2 +2295 1 +2306 1 +2320 1 +2323 1 +2325 2 +2335 1 +2341 1 +2348 1 +2358 1 +236 1 +2373 1 +238 1 +2386 1 +2393 2 +2398 1 +2400 1 +2410 1 +2412 2 +2420 1 +2426 1 +2434 1 +244 1 +2461 1 +2463 3 +2465 1 +2469 1 +2475 1 +2476 1 +2485 2 +2487 1 +2492 1 +2494 1 +2502 1 +2506 1 +2509 1 +2512 1 +2514 1 +2515 1 +2517 1 +2524 1 +2533 1 +2539 1 +2540 1 +255 1 +2551 1 +2553 1 +2560 2 +2563 1 +2565 1 +2569 1 +2579 1 +2580 1 +2587 1 +259 1 +2599 1 +2607 1 +2608 1 +2619 2 +2625 1 +2626 1 +263 2 +2637 1 +2647 1 +2649 1 +2662 1 +2663 1 +2675 1 +268 2 +2680 1 +2682 1 +2688 1 +2689 1 +2692 1 +2700 1 +2712 1 +2714 1 +2715 2 +2719 1 +2724 1 +2725 1 +2735 1 +2745 1 +275 1 +2752 1 +2762 1 +2772 1 +2776 1 +2786 2 +279 1 +2790 1 +2791 1 +2803 3 +2805 1 +281 1 +2810 1 +2811 1 +2816 1 +2821 1 +2824 1 +2835 1 +2842 1 +2843 2 +2846 1 +2847 1 +2848 1 +2850 1 +2855 2 +2862 1 +2878 1 +2886 1 +289 1 +2897 2 +2900 1 +2903 1 +2905 1 +2911 1 +2915 1 +2919 1 +2933 2 +2938 1 +294 1 +2941 1 +2942 1 +296 2 +2962 1 +2968 2 +2971 1 +2977 1 +2979 1 +2984 1 +2986 1 +2988 1 +2991 1 +3002 1 +3006 1 +301 1 +302 1 +3021 2 +3024 1 +3029 1 +3031 1 +3036 1 +3043 1 +3054 1 +3055 1 +3058 1 +3059 1 +3060 2 +3067 1 +3071 1 +3073 1 +3079 2 +3083 1 +3084 1 +3089 1 +3094 1 +3103 1 +311 1 +3111 1 +3118 1 +3119 1 +3144 1 +3147 1 +3159 2 +3163 1 +3174 1 +3183 1 +3190 1 +3197 1 +3199 1 +320 1 +3203 1 +3206 1 +3208 1 +3212 1 +3213 1 +3231 1 +3232 1 +3235 1 +3244 1 +3245 1 +3248 1 +3249 1 +3253 1 +3255 1 +3263 1 +3286 1 +3300 1 +3307 1 +3322 1 +3333 1 +3352 1 +336 1 +3365 1 +3366 1 +3397 1 +34 1 +3401 1 +3407 1 +3409 1 +341 1 +3418 2 +342 1 +3421 1 +3430 1 +3443 1 +3446 1 +345 1 +3456 1 +346 2 +3460 1 +3462 3 +3467 2 +347 1 +3472 1 +3478 1 +3493 1 +350 1 +3507 1 +3510 1 +3512 1 +3533 1 +3534 1 +3541 1 +3542 1 +355 1 +3554 1 +3555 2 +3563 1 +3566 1 +3567 1 +3568 1 +3579 1 +3588 2 +3599 1 +3606 1 +3608 1 +3609 1 +361 1 +3613 1 +3622 2 +3625 1 +3630 1 +3637 1 +364 1 +3648 1 +3663 1 +3664 1 +367 1 +3672 1 +3673 1 +3677 1 +3680 1 +3682 1 +3690 1 +3691 1 +3701 1 +3702 1 +3703 1 +3707 1 +3722 1 +3724 1 +3725 2 +3728 2 +3739 1 +3747 1 +3749 1 +375 1 +3755 1 +3763 1 +3764 1 +3769 1 +3770 2 +378 1 +3781 2 +3789 1 +379 1 +3810 1 +3812 1 +3823 1 +3824 1 +383 2 +3830 1 +3835 1 +3841 1 +3848 1 +3858 1 +3860 1 +3866 2 +3874 1 +3879 1 +388 1 +3887 1 +3901 1 +3904 1 +3907 1 +391 1 +3910 1 +3911 1 +3913 1 +392 1 +3932 1 +3940 1 +3941 1 +3945 1 +3946 1 +3949 1 +3958 1 +3960 1 +3961 1 +3962 1 +3965 1 +3974 2 +3980 1 +3990 1 +4018 1 +4020 1 +4024 1 +4030 1 +4037 1 +4051 1 +4054 1 +4056 1 +4075 1 +4078 1 +4088 1 +41 1 +412 2 +417 1 +425 1 +443 1 +454 1 +455 1 +462 1 +470 1 +471 1 +481 1 +482 1 +485 1 +489 1 +49 1 +490 1 +491 1 +5 1 +500 1 +501 2 +504 1 +522 1 +523 1 +524 1 +530 1 +535 1 +579 1 +583 1 +584 1 +586 1 +587 1 +590 1 +597 1 +601 1 +612 1 +615 1 +618 1 +65 1 +650 1 +658 1 +66 1 +661 2 +663 1 +664 1 +677 1 +68 1 +681 1 +687 1 +688 1 +690 1 +691 1 +6923604860394528768 1 +6924820982050758656 1 +6926925215281774592 1 +6927260280037097472 1 +6928080429732536320 1 +6933001829416034304 1 +6933451028794925056 1 +6933731240564056064 1 +6934570741217755136 1 +694 1 +6947488599548215296 1 +695 1 +6960137166475911168 1 +6962726713896484864 1 +6963217546192322560 1 +6964585306125008896 1 +6967631925774639104 1 +6969599299897163776 1 +6974475559697768448 1 +6982145326341423104 1 +6987889924212203520 1 +6991316084916879360 1 +6996686091335884800 1 +7006803044329021440 1 +7013693841855774720 1 +7014537632150224896 1 +7017956982081404928 1 +7022349041913978880 1 +7027529814236192768 1 +7031339012080549888 1 +7039820685967343616 1 +7045967493826387968 1 +7049773031131283456 1 +7052226236896256000 1 +7054271419461812224 1 +7054938591408996352 1 +7060236714847412224 1 +7061498706968428544 1 +7061809776248545280 1 +7062382339142156288 1 +7062605127422894080 1 +7065344324692443136 1 +7068517339681259520 1 +7069729473166090240 1 +707 1 +7077311975029555200 1 +7078641038157643776 1 +7080269176324218880 1 +7084659344078970880 1 +7086206629592252416 1 +7091300332052062208 1 +7099005292698550272 1 +71 1 +7107604675626008576 1 +7125231541858205696 1 +7128222874437238784 1 +7130159794259353600 1 +7130306447560826880 1 +7149417430082027520 1 +7153922334283776000 1 +7157247449513484288 1 +7164349895861829632 1 +7165364563962191872 1 +7166263463731421184 1 +7175638927948562432 1 +7186401810812059648 1 +7195454019231834112 1 +7198687580227043328 1 +7199539820886958080 1 +7204802700490858496 1 +7210160489915236352 1 +7212016545671348224 1 +7212090742612467712 1 +7217123582035116032 1 +7220131672176058368 1 +7220581538170413056 1 +7223569671814987776 1 +7226360892091416576 1 +7229607057201127424 1 +723 1 +7231399302953377792 1 +7232273749940838400 1 +7235109456886816768 1 +7237310132329488384 1 +7238339720750948352 1 +724 1 +7242751359672631296 1 +7249443195032985600 1 +7250237407877382144 1 +7254710367022645248 1 +7255302164215013376 1 +7259955893466931200 1 +7260908278294560768 1 +7265141874315517952 1 +7266437490436341760 1 +7271786885641666560 1 +7271887863395459072 1 +7274777328897802240 1 +7291432593139507200 1 +7295502697317097472 1 +7295926343524163584 1 +7296164580491075584 1 +7299197687217856512 1 +73 1 +7304839835188609024 1 +7308289763456000000 1 +7309156463509061632 1 +7310869618402910208 1 +7319711402123149312 1 +7333512171174223872 1 +7339426767877390336 1 +7343171468838567936 1 +7344029858387820544 1 +7345991518378442752 1 +7347732772348870656 1 +7348598907182800896 1 +735 1 +7354813692542304256 1 +7359004378440146944 1 +736 1 +7368920486374989824 1 +7370078518278397952 1 +7370803940448305152 1 +7375521127126089728 1 +7376467688511455232 1 +7378993334503694336 1 +738 1 +7381659098423926784 1 +7384150968511315968 1 +7386087924003676160 1 +7391208370547269632 1 +7393308503950548992 1 +7394967727502467072 1 +7401968422230032384 1 +7410096605330227200 1 +7410872053689794560 1 +7411793502161182720 1 +7412924364686458880 1 +7414865343000322048 1 +7418271723644403712 1 +743 1 +7432428551399669760 1 +7432998950057975808 1 +7436133434239229952 1 +7440265908266827776 1 +7450416810848313344 1 +7452756603516190720 1 +7454442625055145984 1 +7454632396542074880 1 +7461153404961128448 1 +7471208109437304832 1 +7473537548003352576 1 +7486884806277611520 1 +7487338208419823616 1 +7487538600082554880 1 +7490717730239250432 1 +7491898395977523200 1 +7492436934952574976 1 +7497276415392407552 1 +7497306924248834048 1 +7500716020874674176 1 +7514552840617558016 1 +7517159036469575680 1 +7524958388842078208 1 +7528074274555305984 1 +7528211148397944832 1 +7534042483076857856 1 +7534145866886782976 1 +7534549597202194432 1 +7545689659010949120 1 +7548958830580563968 1 +7549858023389003776 1 +7555301305375858688 1 +7566273236152721408 1 +7569249672628789248 1 +7570474972934488064 1 +7573530789362262016 1 +7575087487730196480 1 +7581052107944361984 1 +7581614118458335232 1 +7584007864107778048 1 +7592440105065308160 1 +7593521922173419520 1 +7596563216912211968 1 +7599019810193211392 1 +7608447395949109248 1 +7614435638888210432 1 +7620183559667081216 1 +7621013099259527168 1 +7625728883085025280 1 +7626715182847090688 1 +763 1 +7637152193832886272 1 +7647481735646363648 1 +7648729477297987584 1 +7652123583449161728 1 +7659279803863146496 1 +7662037650719850496 1 +7675009476762918912 1 +7678790769408172032 1 +7682327310082531328 1 +7686992843032010752 1 +7689489436826804224 1 +7690986322714066944 1 +7691062622443044864 1 +7696737688942567424 1 +7697541332524376064 1 +7700734109530767360 1 +7701723309715685376 1 +7705445437881278464 1 +7710447533880614912 1 +7718825401976684544 1 +7720187583697502208 1 +7731443941834678272 1 +7735566678126616576 1 +774 1 +7741854854673367040 1 +7746402369011277824 1 +7747874976739016704 1 +7748799008146366464 1 +7752740515534422016 1 +7753359568986636288 1 +7753882935005880320 1 +7761834341179375616 1 +7762823913046556672 1 +7765456790394871808 1 +7768984605670604800 1 +7775034125776363520 1 +7778936842502275072 1 +7779486624537370624 1 +7779735136559579136 1 +7782245855193874432 1 +7784169796350730240 1 +7784489776013295616 1 +779 1 +7790728456522784768 1 +7792036342592348160 1 +7794244032613703680 1 +78 1 +780 1 +7800332581637259264 1 +7801697837312884736 1 +7818464507324121088 1 +782 1 +7823874904139849728 1 +784 1 +7843804446688264192 1 +7844258063629852672 1 +7845953007588401152 1 +7857878068300898304 1 +7868367829080506368 1 +7870277756614623232 1 +7871189141676998656 1 +7871554728617025536 1 +7874764415950176256 1 +7885697257930588160 1 +7888238729321496576 1 +789 1 +7892026679115554816 1 +7892281003266408448 1 +7898670840507031552 1 +7909645665163804672 1 +7917494645725765632 1 +7919597361814577152 1 +7921639119138070528 1 +7922443154272395264 1 +7926898770090491904 1 +7933040277013962752 1 +7936149988210212864 1 +7944741547145502720 1 +7947544013461512192 1 +7948803266578161664 1 +7955126053367119872 1 +7961515985722605568 1 +7961909238130270208 1 +797 1 +7983789401706094592 1 +7989119273552158720 1 +7989160253372817408 1 +7997694023324975104 1 +7998357471114969088 1 +7998687089080467456 1 +80 1 +8000440057238052864 1 +8002769767000145920 1 +8004633750273925120 1 +8011181697250631680 1 +8011602724663336960 1 +8014986215157530624 1 +8017403886247927808 1 +803 1 +8045070943673671680 1 +8048726769133592576 1 +8059284960252731392 1 +8069531888205086720 1 +8071961599867387904 1 +8073733016154431488 1 +8079573715140485120 1 +808 1 +8087737899452432384 1 +809 1 +8091421389575282688 1 +8099215208813903872 1 +8100036735858401280 1 +8109381965028548608 1 +8111757081791733760 1 +8113585123802529792 1 +8116738401948377088 1 +812 1 +8120593157178228736 1 +8129551357032259584 1 +8135164922674872320 1 +8142241016679735296 1 +8143462899383345152 1 +8144552446127972352 1 +8145745969573666816 1 +8145750910080745472 1 +8146288732715196416 1 +8146492373537660928 1 +8148211378319933440 1 +815 1 +8150115791664340992 1 +8156018594610790400 1 +8156782979767238656 1 +8160569434550403072 1 +8160662610166194176 1 +8163948965373386752 1 +8168742078705262592 1 +8169878743136043008 1 +8171188598958407680 1 +8183233196086214656 1 +8184799300477943808 1 +8190539859890601984 1 +8190967051000659968 1 +8192304692696383488 1 +8195103847607967744 1 +8199513544090730496 1 +820 2 +8201303040648052736 1 +8201491077550874624 1 +8208354137450766336 1 +8210813831744118784 1 +8213810702473183232 1 +8219326436390821888 1 +8220104397160169472 1 +8221561626658881536 1 +8222714144797368320 1 +8223732800007864320 1 +823 1 +8230371298967609344 1 +8235179243092090880 1 +8244041599171862528 1 +8254763178969915392 1 +8268875586442256384 1 +8269730157217062912 1 +8272001752345690112 1 +8279056098670198784 1 +8282648443538710528 1 +8283099811330506752 1 +8286706213485297664 1 +8287522765741301760 1 +8290014929764040704 1 +8290944180915871744 1 +8294315622451740672 1 +8295110846998233088 1 +83 1 +8302473563519950848 1 +8316336224427483136 1 +8323460620425330688 1 +8325227661920133120 1 +8332670681629106176 1 +8333523087360901120 1 +8337549596011102208 1 +8345435427356090368 1 +835 1 +8351163199364390912 1 +8362046808797306880 1 +8365058996333953024 1 +8367680396909404160 1 +8368012468775608320 1 +837 1 +8371939471056470016 1 +8372408423196270592 1 +8372588378498777088 1 +8374321007870836736 1 +8376440110255243264 1 +8383159090746204160 1 +8388363436324085760 1 +8391407951622815744 1 +8391785334471589888 1 +8396433451610652672 1 +8398862954249560064 1 +8407869317250220032 1 +8410599906334097408 1 +8411494452500930560 1 +8415171956168417280 1 +8416121695917498368 1 +8417381121663746048 1 +8419958579638157312 1 +8424515140664360960 1 +8435912708683087872 1 +845 1 +8451612303224520704 1 +8454154705460666368 1 +8455496814886002688 1 +8457906374051020800 1 +8461498293348065280 1 +8463868417649524736 1 +8467976965865799680 1 +8470141334513098752 1 +8472429318602268672 1 +8473699639908261888 1 +8487573502287478784 1 +8489584373231919104 1 +8489735221193138176 1 +85 1 +8501910015960735744 1 +8508401924853850112 1 +8509508263705477120 1 +8514851182589771776 1 +8514979402185596928 1 +8515682078777081856 1 +8518454006987948032 1 +8519937082746634240 1 +8523972434954510336 1 +8524940073536954368 1 +8525336514806317056 1 +8525894870444638208 1 +8532016240026279936 1 +8536948829863198720 1 +8540237852367446016 1 +8543177193114779648 1 +8547243497773457408 1 +8551446856960942080 1 +8553195689344991232 1 +8554899472487596032 1 +8555933456197828608 1 +8555948987770511360 1 +8557218322962644992 1 +8558000156325707776 1 +8560526613401714688 1 +8569030475428511744 1 +8570983266408103936 1 +8571268359622172672 1 +8573305425181941760 1 +8577096957495025664 1 +8579974641030365184 1 +8583916402383601664 1 +8613562211893919744 1 +8625937019655200768 1 +8631515095562887168 1 +8637720762289659904 1 +8639254009546055680 1 +8641221723991433216 1 +8643198489997254656 1 +8644602243484803072 1 +8649296591032172544 1 +8652485812846567424 1 +8656571350884048896 1 +8660248367767076864 1 +8665969966920990720 1 +8666178591503564800 1 +8677632093825916928 1 +8677794924343164928 1 +868 1 +8682955459667951616 1 +8687042963221159936 1 +8688483860094599168 1 +8693036785094565888 1 +8697823501349609472 1 +8698055291501543424 1 +8708232769657815040 1 +8708845895460577280 1 +871 1 +8714829359200747520 1 +8716401555586727936 1 +8720504651219001344 1 +8723248113030782976 1 +873 1 +8731960288562044928 1 +8734584858442498048 1 +8736061027343859712 1 +874 1 +8752150411997356032 1 +8759089349412847616 1 +8759184090543857664 1 +8760285623204290560 1 +8761174805938331648 1 +8769199243315814400 1 +8773222500321361920 1 +8775009214012456960 1 +8779073705407963136 1 +8779711700787298304 1 +878 1 +8780196485890555904 1 +8782900615468302336 1 +8783241818558193664 1 +8785153741735616512 1 +8792059919353348096 1 +8793387410919038976 1 +8795069490394882048 1 +8806507556248731648 1 +8808467247666241536 1 +8811693967537774592 1 +8815398225009967104 1 +8817665768680906752 1 +8822384228057604096 1 +8825059717746376704 1 +8829545979081744384 1 +883 1 +8836228556823977984 1 +8837420822750314496 1 +8849475396952514560 1 +8850055384477401088 1 +8853989376829833216 1 +8854495099223375872 1 +8854677881758162944 1 +8854715632851345408 1 +8856674723376668672 1 +8868529429494071296 1 +8871707618793996288 1 +8875745082589929472 1 +888 1 +8895174927321243648 1 +8896237972875370496 1 +8897901899039473664 1 +8899122608190930944 1 +8900180888218329088 1 +8900351886974279680 1 +8900545829211299840 1 +8905330479248064512 1 +8910706980937261056 1 +8920344895701393408 1 +8920533610804609024 1 +8927691194719174656 1 +8928133990107881472 1 +8935252708196999168 1 +8936639033158410240 1 +8939431770838810624 1 +8945004737083555840 1 +8945302550165004288 1 +8962097525980225536 1 +8972161729142095872 1 +8979012655944220672 1 +898 2 +8983857919580209152 1 +8983912573761167360 1 +8984935029383389184 1 +8987827141270880256 1 +8991071342495531008 1 +8991442360387584000 1 +8994608999945125888 1 +8995562121346260992 1 +8996824426131390464 1 +9000633029632499712 1 +9001907486943993856 1 +9005866015985713152 1 +9016280522993975296 1 +9020143715350814720 1 +9023663198045544448 1 +9030480306789818368 1 +9038087402564657152 1 +9040958359122640896 1 +9043089884440068096 1 +9048002942653710336 1 +9048297564833079296 1 +9050032047355125760 1 +9053187076403060736 1 +9054887854393950208 1 +9062227900376203264 1 +9064847977742032896 1 +9067985867711291392 1 +9073672806863790080 1 +9075404705968840704 1 +9078604269481148416 1 +908 1 +9083076230151864320 1 +9083704659251798016 1 +9084402694981533696 1 +9085381906890203136 1 +9085434340468473856 1 +9086905513121890304 1 +9089435102788009984 1 +9091082386452684800 1 +9091085792947666944 1 +9094945190752903168 1 +9096395849845194752 1 +91 1 +9104574294205636608 1 +9107991000536498176 1 +9112400579327483904 1 +9114850402293882880 1 +9116137265342169088 1 +9117063974299148288 1 +9119046173224370176 1 +9123116008004288512 1 +913 1 +9131533983989358592 1 +9132009829414584320 1 +9136234417125007360 1 +9136548192574529536 1 +9139805788041134080 1 +914 1 +9148071980848742400 1 +9149216169284091904 1 +9165199002069458944 1 +9169248521377374208 1 +917 1 +9174894805640142848 1 +918 1 +9180098147855769600 1 +9182828596851990528 1 +9185458640237641728 1 +9185952983951343616 1 +9188173682239275008 1 +919 1 +9190466190353661952 1 +9191943992860327936 1 +9194388393453060096 1 +9199741683232399360 1 +9207107990561972224 1 +9207927479837319168 1 +9209153648361848832 1 +921 1 +9211455920344088576 1 +922 1 +923 1 +927 1 +928 1 +939 1 +94 1 +945 1 +947 1 +950 2 +958 1 +961 1 +965 1 +967 1 +976 1 +979 1 +982 1 +987 1 +997 1 +999 1 +NULL 2000 +NULL 83 +PREHOOK: query: explain vectorization detail +select `grouping__id`, b from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select `grouping__id`, b from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: true + enabledConditionsMet: [hive.vectorized.execution.enabled IS true] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez +#### A masked pattern was here #### + Edges: + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + TableScan Vectorization: + native: true + projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + Select Operator + expressions: b (type: bigint) + outputColumnNames: _col0 + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [3] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + Group By Vectorization: + className: VectorGroupByOperator + groupByMode: HASH + vectorOutput: true + keyExpressions: col 3, ConstantVectorExpression(val 0) -> 15:long + native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false + vectorProcessingMode: HASH + projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 + keys: _col0 (type: bigint), 0 (type: int) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint), _col1 (type: int) + sort order: ++ + Map-reduce partition columns: _col0 (type: bigint), _col1 (type: int) + Reduce Sink Vectorization: + className: VectorReduceSinkMultiKeyOperator + keyColumns: [0, 1] + native: true + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + valueColumns: [] + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + Execution mode: vectorized, llap + LLAP IO: all inputs + Map Vectorization: + enabled: true + enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true + groupByVectorOutput: true + inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 13 + includeColumns: [3] + dataColumns: t:tinyint, si:smallint, i:int, b:bigint, f:float, d:double, dc:decimal(38,18), bo:boolean, s:string, s2:string, ts:timestamp, ts2:timestamp, dt:date + partitionColumnCount: 0 + scratchColumnTypeNames: bigint, bigint, bigint + Reducer 2 + Execution mode: vectorized, llap + Reduce Vectorization: + enabled: true + enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true + reduceColumnNullOrder: aa + reduceColumnSortOrder: ++ + groupByVectorOutput: true + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 2 + dataColumns: KEY._col0:bigint, KEY._col1:int + partitionColumnCount: 0 + Reduce Operator Tree: + Group By Operator + Group By Vectorization: + className: VectorGroupByOperator + groupByMode: MERGEPARTIAL + vectorOutput: true + keyExpressions: col 0, col 1 + native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false + vectorProcessingMode: MERGE_PARTIAL + projectedOutputColumns: [] + keys: KEY._col0 (type: bigint), KEY._col1 (type: int) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col1 (type: int), _col0 (type: bigint) + outputColumnNames: _col0, _col1 + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [1, 0] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + File Sink Vectorization: + className: VectorFileSinkOperator + native: false + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select `grouping__id`, b from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select `grouping__id`, b from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +0 -6917607783359897600 +0 -6919476845891313664 +0 -6920172215209426944 +0 -6921654334727036928 +0 -6933565857643814912 +0 -6934304742087655424 +0 -6935038507792801792 +0 -6935548339131138048 +0 -6938706403992854528 +0 -6941777546186579968 +0 -6947955278050181120 +0 -6951350560260784128 +0 -6957946688477274112 +0 -6960947572095770624 +0 -6962271229404348416 +0 -6962292590214234112 +0 -6968771079156654080 +0 -6968892545529896960 +0 -6970396058557005824 +0 -6974654664348033024 +0 -6975459232300236800 +0 -6986178228432322560 +0 -6988811476286873600 +0 -6988970700649168896 +0 -6992217501957169152 +0 -6997233584896229376 +0 -7000925438663041024 +0 -7003696402314215424 +0 -7011425384222244864 +0 -7017212700635545600 +0 -7020852530219171840 +0 -7030489936116252672 +0 -7035132060308643840 +0 -7036607470351654912 +0 -7037375807670501376 +0 -7037638331316469760 +0 -7038455462786334720 +0 -7040248820505149440 +0 -7041362811802148864 +0 -7042183597114081280 +0 -7046180371529351168 +0 -7049618574399692800 +0 -7052619594823221248 +0 -7055619148037554176 +0 -7055760785575665664 +0 -7057750467944931328 +0 -7058986555327307776 +0 -7063777488249085952 +0 -7078068944081002496 +0 -7079898537463537664 +0 -7081500255163727872 +0 -7083646746411720704 +0 -7085247548404178944 +0 -7093825013581979648 +0 -7094189393339678720 +0 -7094827141662539776 +0 -7104310188119834624 +0 -7106210529681350656 +0 -7109790267244814336 +0 -7115054815375073280 +0 -7120456708338688000 +0 -7127548949860818944 +0 -7138415011665043456 +0 -7139677575412686848 +0 -7140008543769042944 +0 -7144791190333546496 +0 -7145585429014888448 +0 -7147490721376591872 +0 -7152177800841502720 +0 -7155539549555105792 +0 -7158472098920390656 +0 -7159700138947862528 +0 -7161165959057334272 +0 -7162299524557471744 +0 -7172594404186693632 +0 -7185369278665605120 +0 -7192529627893858304 +0 -7194281951646187520 +0 -7195217207163166720 +0 -7198372044947275776 +0 -7199983995864711168 +0 -7201085131997011968 +0 -7209060152494817280 +0 -7213775605408178176 +0 -7220731681653604352 +0 -7221474017515347968 +0 -7228589258642194432 +0 -7240213957902663680 +0 -7242345057866285056 +0 -7245872320493322240 +0 -7246123871306244096 +0 -7255010240787030016 +0 -7255686273677328384 +0 -7262049693594943488 +0 -7262384251828518912 +0 -7262798781688651776 +0 -7263060340185194496 +0 -7265998318110711808 +0 -7266719102957125632 +0 -7270034223527993344 +0 -7273590251991162880 +0 -7273694358642851840 +0 -7276111129363046400 +0 -7287583262310350848 +0 -7292078334519894016 +0 -7296096276653391872 +0 -7303847963918393344 +0 -7319315187617587200 +0 -7326863346317598720 +0 -7328087811698909184 +0 -7329767178250018816 +0 -7329807949048193024 +0 -7330203470474985472 +0 -7330413050756235264 +0 -7333278178640953344 +0 -7333362172439035904 +0 -7340231535789727744 +0 -7344146703223496704 +0 -7344947507044466688 +0 -7345562788132315136 +0 -7356685674003021824 +0 -7357888618985873408 +0 -7362189611124563968 +0 -7366430883634929664 +0 -7378096180613840896 +0 -7380731416973295616 +0 -7395343938785738752 +0 -7395553021620731904 +0 -7399631791131074560 +0 -7404052043914526720 +0 -7404057145074712576 +0 -7409317158045442048 +0 -7409653086454030336 +0 -7412431471807283200 +0 -7413317118463164416 +0 -7419068456205385728 +0 -7420448501073051648 +0 -7425160895830573056 +0 -7429331808102899712 +0 -7433265617153343488 +0 -7442593976514420736 +0 -7444070205513138176 +0 -7451660755269853184 +0 -7453525026342617088 +0 -7455898404374921216 +0 -7456869587112255488 +0 -7461750143936897024 +0 -7464270453557993472 +0 -7469660864676585472 +0 -7470307155642245120 +0 -7476082621253402624 +0 -7483435388852559872 +0 -7488345684795342848 +0 -7488415863027367936 +0 -7494411162675691520 +0 -7496839341561954304 +0 -7497303453253402624 +0 -7500200359698907136 +0 -7501803640821456896 +0 -7506254246954500096 +0 -7507424948896415744 +0 -7507578199583694848 +0 -7510418793070075904 +0 -7511202710200885248 +0 -7511952204985049088 +0 -7512289590991544320 +0 -7512297136103800832 +0 -7515996202498473984 +0 -7524170566881329152 +0 -7526793959592140800 +0 -7528526815026692096 +0 -7532751268425261056 +0 -7535857766791577600 +0 -7535958203887706112 +0 -7536330682873937920 +0 -7540104552219860992 +0 -7541860097718902784 +0 -7542857121910046720 +0 -7547245548870025216 +0 -7547432761381339136 +0 -7551394356730339328 +0 -7557017910095650816 +0 -7558524160894427136 +0 -7571293705217687552 +0 -7571957778022178816 +0 -7572262898020278272 +0 -7572962089372991488 +0 -7576194692683563008 +0 -7593363318079610880 +0 -7594824008626372608 +0 -7598782894648565760 +0 -7600138468036386816 +0 -7603467428164009984 +0 -7603569103205916672 +0 -7610137349734883328 +0 -7611584069753552896 +0 -7612455481940246528 +0 -7612466483992051712 +0 -7616522969329262592 +0 -7617860842651017216 +0 -7623047151287754752 +0 -7623359796281999360 +0 -7623405558242500608 +0 -7624057992767782912 +0 -7629401308029976576 +0 -7637494527844343808 +0 -7637755520917741568 +0 -7642381493746483200 +0 -7647020450676146176 +0 -7661192563533062144 +0 -7661250850555633664 +0 -7663293054873812992 +0 -7665186441284968448 +0 -7668388017287020544 +0 -7669169138124275712 +0 -7673901622181953536 +0 -7679894005808693248 +0 -7686220526274502656 +0 -7687052294777208832 +0 -7692192232238678016 +0 -7695491171376291840 +0 -7700203302632210432 +0 -7703540456272994304 +0 -7707242953271500800 +0 -7707867749256445952 +0 -7708932208121225216 +0 -7709958788604936192 +0 -7712425776235274240 +0 -7720966287634112512 +0 -7739424919198187520 +0 -7744462446680375296 +0 -7751265769984491520 +0 -7751427073017544704 +0 -7753051494275432448 +0 -7759238919361888256 +0 -7759425383684849664 +0 -7772064021830574080 +0 -7773957003968675840 +0 -7777884099756122112 +0 -7778829032042790912 +0 -7779270198785875968 +0 -7782344916178796544 +0 -7784419454650843136 +0 -7792903881635938304 +0 -7793447076762345472 +0 -7797149520019062784 +0 -7797151404935618560 +0 -7800879252150779904 +0 -7802538500225777664 +0 -7804116532814151680 +0 -7805985795815342080 +0 -7811060170911375360 +0 -7818454479651135488 +0 -7819437864839495680 +0 -7822452149325094912 +0 -7824788571789279232 +0 -7827420207675105280 +0 -7831320202242228224 +0 -7831595638727565312 +0 -7833618000492109824 +0 -7835907977757245440 +0 -7838598833900584960 +0 -7840338174858199040 +0 -7845896959112658944 +0 -7848043121524228096 +0 -7849504559236210688 +0 -7858505678035951616 +0 -7866079955473989632 +0 -7867219225874571264 +0 -7868306678534193152 +0 -7873753603299540992 +0 -7875953567586451456 +0 -7877598807023386624 +0 -7878145001776152576 +0 -7879864376629567488 +0 -7881262505761710080 +0 -7881351200983613440 +0 -7883252982752665600 +0 -7884460946615984128 +0 -7888051992910274560 +0 -7892780594910871552 +0 -7893577088764174336 +0 -7894382303337832448 +0 -7895991410072928256 +0 -7902517224300036096 +0 -7903158849011843072 +0 -7904188195431661568 +0 -7907355742053883904 +0 -7910019233726242816 +0 -7911421221625077760 +0 -7915999634274369536 +0 -7916510129632296960 +0 -7928062266382778368 +0 -7928440849566146560 +0 -7939634346485858304 +0 -7949309059286163456 +0 -7949445503604604928 +0 -7953426740065312768 +0 -7964801953178091520 +0 -7966960765508280320 +0 -7978782649203228672 +0 -7989766326847807488 +0 -7998947380180819968 +0 -8007017894942638080 +0 -8013397854633648128 +0 -8016589197379289088 +0 -8017791189288869888 +0 -8018511948141748224 +0 -8021859935185928192 +0 -8022573309127000064 +0 -8023708819947323392 +0 -8028275725610909696 +0 -8028910243475038208 +0 -8030058711611629568 +0 -8034414142083170304 +0 -8046189486447017984 +0 -8046238369820344320 +0 -8047774491688255488 +0 -8051395538179063808 +0 -8051587217208967168 +0 -8051871680800120832 +0 -8054581198284668928 +0 -8067243114610532352 +0 -8070535484085895168 +0 -8076479329071955968 +0 -8082793390939193344 +0 -8084716955963252736 +0 -8086577583338061824 +0 -8088337436168830976 +0 -8099313480512716800 +0 -8103788088118018048 +0 -8104684579106914304 +0 -8108693586698706944 +0 -8115963579415650304 +0 -8117838333114212352 +0 -8122639684164501504 +0 -8127494999848919040 +0 -8131997716860526592 +0 -8136227554401107968 +0 -8140349174954893312 +0 -8142667274351345664 +0 -8147405381260345344 +0 -8158011642485825536 +0 -8161047750470279168 +0 -8172827216441573376 +0 -8182421179156905984 +0 -8191825921746305024 +0 -8194062064124362752 +0 -8203008052020879360 +0 -8203075743525806080 +0 -8205148279289085952 +0 -8214462866994339840 +0 -8219876839318716416 +0 -8232763638546694144 +0 -8240034910581153792 +0 -8240684139569233920 +0 -8243487285852766208 +0 -8244116388227104768 +0 -8244657976255889408 +0 -8260340354454503424 +0 -8269917980278980608 +0 -8270479187688816640 +0 -8275337702906757120 +0 -8280276629934981120 +0 -8293833565967810560 +0 -8297230235506343936 +0 -8300526097982226432 +0 -8300764106868350976 +0 -8302817097848307712 +0 -8317591428117274624 +0 -8318886086186213376 +0 -8322751250650218496 +0 -8330233444291084288 +0 -8335810316927213568 +0 -8340523561480437760 +0 -8345065519816695808 +0 -8347088645602050048 +0 -8357136656913686528 +0 -8358130693961195520 +0 -8359839265974165504 +0 -8368269352975982592 +0 -8368487814665895936 +0 -8369487968903897088 +0 -8379109122834997248 +0 -8379964450833367040 +0 -8384695077413412864 +0 -8387347109404286976 +0 -8387536830476820480 +0 -8395998375405912064 +0 -8400045653258444800 +0 -8411282676082565120 +0 -8418913260807217152 +0 -8425998949410889728 +0 -8426531414463545344 +0 -8430283518005846016 +0 -8430370933326536704 +0 -8431492599012163584 +0 -8438554249514491904 +0 -8445801063348281344 +0 -8453491903284994048 +0 -8454143651040444416 +0 -8465978403747037184 +0 -8469607298426437632 +0 -8471480409335513088 +0 -8485389240529354752 +0 -8488247955875618816 +0 -8490382417169408000 +0 -8494118409594650624 +0 -8503342882470019072 +0 -8503573595507761152 +0 -8507279516485566464 +0 -8509547439040757760 +0 -8518060755719585792 +0 -8518258741831680000 +0 -8521578237232529408 +0 -8522878384019169280 +0 -8523434203900674048 +0 -8525212657458348032 +0 -8535957064499879936 +0 -8536369662934401024 +0 -8543982423727128576 +0 -8544299740525461504 +0 -8545239748068941824 +0 -8546758906409312256 +0 -8552393882631389184 +0 -8555709701170552832 +0 -8559008501282832384 +0 -8559252110266564608 +0 -8562524688907485184 +0 -8566856504746352640 +0 -8566940231897874432 +0 -8570933074545745920 +0 -8572823448513445888 +0 -8572949572756774912 +0 -8581765103969312768 +0 -8581979259158929408 +0 -8584520406368493568 +0 -8585134536083660800 +0 -8585966098173870080 +0 -8593419958317056000 +0 -8603817012434198528 +0 -8604758220106014720 +0 -8607195685207408640 +0 -8615168537390571520 +0 -8619303037130301440 +0 -8623238306523824128 +0 -8623965248051789824 +0 -8632237187473088512 +0 -8649711322250362880 +0 -8651641150831362048 +0 -8654433008222797824 +0 -8654797319350927360 +0 -8658387566611996672 +0 -8659643752269242368 +0 -8659692318743314432 +0 -8660149447361404928 +0 -8664374244449050624 +0 -8664806103426252800 +0 -8665218198816497664 +0 -8665764757143658496 +0 -8675661101615489024 +0 -8675892979328212992 +0 -8683802826440105984 +0 -8688153842294595584 +0 -8689606130068611072 +0 -8694818694700048384 +0 -8696162322976997376 +0 -8703026916864802816 +0 -8704234107608203264 +0 -8705403811649355776 +0 -8710298418608619520 +0 -8714995808835444736 +0 -8719510423723155456 +0 -8730803262481580032 +0 -8731068123910987776 +0 -8746702976270385152 +0 -8754966081778565120 +0 -8754992450211692544 +0 -8756989568739835904 +0 -8760655406971863040 +0 -8763062627136864256 +0 -8768744394742235136 +0 -8782213262837530624 +0 -8783777723063099392 +0 -8789178184387641344 +0 -8797972842900307968 +0 -8807361476639629312 +0 -8813211231120031744 +0 -8831091081349758976 +0 -8832750849949892608 +0 -8833019327569510400 +0 -8835408234247168000 +0 -8836899523028312064 +0 -8843859708698583040 +0 -8844949406948671488 +0 -8845239510002753536 +0 -8852770376039219200 +0 -8853553406533894144 +0 -8856151919723003904 +0 -8856821118526734336 +0 -8857335871148171264 +0 -8858063395050110976 +0 -8859107121649893376 +0 -8866442231663067136 +0 -8870186814744420352 +0 -8870673219965001728 +0 -8875546987176206336 +0 -8877053610728161280 +0 -8877431933441327104 +0 -8879742387365429248 +0 -8881446757271846912 +0 -8887058200926093312 +0 -8892963883085578240 +0 -8896045754034978816 +0 -8914039133569400832 +0 -8916987977485312000 +0 -8922409715403112448 +0 -8923529803981905920 +0 -8927968289860370432 +0 -8930307926221807616 +0 -8938849835283677184 +0 -8940944155843461120 +0 -8941201923743703040 +0 -8946656952763777024 +0 -8948335470186373120 +0 -8959796625322680320 +0 -8961059046745669632 +0 -8962547695651323904 +0 -8965578088652095488 +0 -8989473881707921408 +0 -8990843030306717696 +0 -8992599250893979648 +0 -8996954350906294272 +0 -9002912355472736256 +0 -9004892183139811328 +0 -9008631121684832256 +0 -9012093603044245504 +0 -9013952631912325120 +0 -9014145341570203648 +0 -9022154842129547264 +0 -9032650742739836928 +0 -9049720998034137088 +0 -9051477157204770816 +0 -9058029636530003968 +0 -9066993118333706240 +0 -9071565764086521856 +0 -9075302542655684608 +0 -9075486079396069376 +0 -9078662294976061440 +0 -9079801920509001728 +0 -9080568167841226752 +0 -9080956291212132352 +0 -9084940280061485056 +0 -9088239683374350336 +0 -9091113592821972992 +0 -9095689235523264512 +0 -9101953184875757568 +0 -9102482277760983040 +0 -9105358806324035584 +0 -9105701280936501248 +0 -9109392978217484288 +0 -9117959922369060864 +0 -9126793997498957824 +0 -9136398397785948160 +0 -9142610685888192512 +0 -9145593811310010368 +0 -9148197394287779840 +0 -9149719074367946752 +0 -9157613004431998976 +0 -9175038118837149696 +0 -9175279464813223936 +0 -9178166810751909888 +0 -9187662685618348032 +0 -9189155542884474880 +0 -9203804401302323200 +0 -9203942396257984512 +0 -9206329156028112896 +0 -9210275791460499456 +0 -9213132862973829120 +0 -9215144824304721920 +0 -9218875542187065344 +0 -9219066990552760320 +0 1021 +0 1030 +0 1032 +0 1039 +0 1046 +0 1048 +0 1053 +0 1055 +0 1058 +0 1065 +0 1066 +0 1074 +0 1075 +0 108 +0 1086 +0 1093 +0 1094 +0 1095 +0 1099 +0 1115 +0 112 +0 1127 +0 1128 +0 1132 +0 1134 +0 1141 +0 1142 +0 1145 +0 1153 +0 1157 +0 1158 +0 1165 +0 1168 +0 1177 +0 1187 +0 1189 +0 1198 +0 120 +0 1201 +0 1217 +0 1234 +0 1243 +0 1247 +0 1252 +0 1261 +0 1270 +0 1280 +0 1282 +0 1286 +0 1287 +0 1290 +0 1291 +0 1299 +0 130 +0 1307 +0 1312 +0 1316 +0 1321 +0 1337 +0 1341 +0 1342 +0 1343 +0 1345 +0 1346 +0 135 +0 1366 +0 1368 +0 1371 +0 138 +0 1386 +0 1398 +0 1409 +0 1422 +0 1423 +0 1436 +0 1439 +0 1447 +0 1450 +0 1454 +0 1458 +0 1462 +0 1466 +0 1470 +0 1477 +0 1481 +0 1489 +0 1493 +0 1495 +0 1501 +0 1506 +0 1508 +0 1509 +0 1518 +0 1520 +0 1521 +0 1524 +0 1530 +0 1537 +0 154 +0 1541 +0 1542 +0 1545 +0 1556 +0 1559 +0 1561 +0 1566 +0 1604 +0 1606 +0 1608 +0 1613 +0 1614 +0 1620 +0 1638 +0 1641 +0 1643 +0 1648 +0 1651 +0 1667 +0 1671 +0 1674 +0 1676 +0 1678 +0 168 +0 1681 +0 169 +0 1693 +0 1701 +0 1704 +0 1719 +0 1726 +0 1728 +0 1745 +0 1751 +0 1752 +0 1769 +0 1774 +0 1775 +0 1777 +0 1780 +0 1781 +0 1785 +0 1786 +0 1788 +0 1789 +0 1791 +0 1796 +0 1806 +0 181 +0 1811 +0 1813 +0 1826 +0 1827 +0 1835 +0 1837 +0 1845 +0 1846 +0 1856 +0 1862 +0 1863 +0 1864 +0 1866 +0 187 +0 1870 +0 188 +0 1880 +0 1890 +0 1892 +0 1899 +0 19 +0 1906 +0 1910 +0 1914 +0 1926 +0 1937 +0 1940 +0 1941 +0 1948 +0 1955 +0 1965 +0 1972 +0 1981 +0 1983 +0 1987 +0 1990 +0 1995 +0 1999 +0 2001 +0 2002 +0 2004 +0 2009 +0 2011 +0 2013 +0 2016 +0 2017 +0 2020 +0 2025 +0 2026 +0 2029 +0 203 +0 204 +0 2046 +0 2056 +0 2067 +0 2072 +0 2073 +0 2085 +0 2089 +0 2092 +0 2105 +0 2106 +0 2108 +0 213 +0 2131 +0 2138 +0 2140 +0 2144 +0 2155 +0 2177 +0 2179 +0 2180 +0 2183 +0 2186 +0 2187 +0 2189 +0 2193 +0 2194 +0 22 +0 2201 +0 2205 +0 2214 +0 2217 +0 2218 +0 2223 +0 2227 +0 2229 +0 2232 +0 2241 +0 2244 +0 2255 +0 2262 +0 2264 +0 2270 +0 2274 +0 2277 +0 2279 +0 228 +0 2283 +0 2285 +0 2295 +0 2306 +0 2320 +0 2323 +0 2325 +0 2335 +0 2341 +0 2348 +0 2358 +0 236 +0 2373 +0 238 +0 2386 +0 2393 +0 2398 +0 2400 +0 2410 +0 2412 +0 2420 +0 2426 +0 2434 +0 244 +0 2461 +0 2463 +0 2465 +0 2469 +0 2475 +0 2476 +0 2485 +0 2487 +0 2492 +0 2494 +0 2502 +0 2506 +0 2509 +0 2512 +0 2514 +0 2515 +0 2517 +0 2524 +0 2533 +0 2539 +0 2540 +0 255 +0 2551 +0 2553 +0 2560 +0 2563 +0 2565 +0 2569 +0 2579 +0 2580 +0 2587 +0 259 +0 2599 +0 2607 +0 2608 +0 2619 +0 2625 +0 2626 +0 263 +0 2637 +0 2647 +0 2649 +0 2662 +0 2663 +0 2675 +0 268 +0 2680 +0 2682 +0 2688 +0 2689 +0 2692 +0 2700 +0 2712 +0 2714 +0 2715 +0 2719 +0 2724 +0 2725 +0 2735 +0 2745 +0 275 +0 2752 +0 2762 +0 2772 +0 2776 +0 2786 +0 279 +0 2790 +0 2791 +0 2803 +0 2805 +0 281 +0 2810 +0 2811 +0 2816 +0 2821 +0 2824 +0 2835 +0 2842 +0 2843 +0 2846 +0 2847 +0 2848 +0 2850 +0 2855 +0 2862 +0 2878 +0 2886 +0 289 +0 2897 +0 2900 +0 2903 +0 2905 +0 2911 +0 2915 +0 2919 +0 2933 +0 2938 +0 294 +0 2941 +0 2942 +0 296 +0 2962 +0 2968 +0 2971 +0 2977 +0 2979 +0 2984 +0 2986 +0 2988 +0 2991 +0 3002 +0 3006 +0 301 +0 302 +0 3021 +0 3024 +0 3029 +0 3031 +0 3036 +0 3043 +0 3054 +0 3055 +0 3058 +0 3059 +0 3060 +0 3067 +0 3071 +0 3073 +0 3079 +0 3083 +0 3084 +0 3089 +0 3094 +0 3103 +0 311 +0 3111 +0 3118 +0 3119 +0 3144 +0 3147 +0 3159 +0 3163 +0 3174 +0 3183 +0 3190 +0 3197 +0 3199 +0 320 +0 3203 +0 3206 +0 3208 +0 3212 +0 3213 +0 3231 +0 3232 +0 3235 +0 3244 +0 3245 +0 3248 +0 3249 +0 3253 +0 3255 +0 3263 +0 3286 +0 3300 +0 3307 +0 3322 +0 3333 +0 3352 +0 336 +0 3365 +0 3366 +0 3397 +0 34 +0 3401 +0 3407 +0 3409 +0 341 +0 3418 +0 342 +0 3421 +0 3430 +0 3443 +0 3446 +0 345 +0 3456 +0 346 +0 3460 +0 3462 +0 3467 +0 347 +0 3472 +0 3478 +0 3493 +0 350 +0 3507 +0 3510 +0 3512 +0 3533 +0 3534 +0 3541 +0 3542 +0 355 +0 3554 +0 3555 +0 3563 +0 3566 +0 3567 +0 3568 +0 3579 +0 3588 +0 3599 +0 3606 +0 3608 +0 3609 +0 361 +0 3613 +0 3622 +0 3625 +0 3630 +0 3637 +0 364 +0 3648 +0 3663 +0 3664 +0 367 +0 3672 +0 3673 +0 3677 +0 3680 +0 3682 +0 3690 +0 3691 +0 3701 +0 3702 +0 3703 +0 3707 +0 3722 +0 3724 +0 3725 +0 3728 +0 3739 +0 3747 +0 3749 +0 375 +0 3755 +0 3763 +0 3764 +0 3769 +0 3770 +0 378 +0 3781 +0 3789 +0 379 +0 3810 +0 3812 +0 3823 +0 3824 +0 383 +0 3830 +0 3835 +0 3841 +0 3848 +0 3858 +0 3860 +0 3866 +0 3874 +0 3879 +0 388 +0 3887 +0 3901 +0 3904 +0 3907 +0 391 +0 3910 +0 3911 +0 3913 +0 392 +0 3932 +0 3940 +0 3941 +0 3945 +0 3946 +0 3949 +0 3958 +0 3960 +0 3961 +0 3962 +0 3965 +0 3974 +0 3980 +0 3990 +0 4018 +0 4020 +0 4024 +0 4030 +0 4037 +0 4051 +0 4054 +0 4056 +0 4075 +0 4078 +0 4088 +0 41 +0 412 +0 417 +0 425 +0 443 +0 454 +0 455 +0 462 +0 470 +0 471 +0 481 +0 482 +0 485 +0 489 +0 49 +0 490 +0 491 +0 5 +0 500 +0 501 +0 504 +0 522 +0 523 +0 524 +0 530 +0 535 +0 579 +0 583 +0 584 +0 586 +0 587 +0 590 +0 597 +0 601 +0 612 +0 615 +0 618 +0 65 +0 650 +0 658 +0 66 +0 661 +0 663 +0 664 +0 677 +0 68 +0 681 +0 687 +0 688 +0 690 +0 691 +0 6923604860394528768 +0 6924820982050758656 +0 6926925215281774592 +0 6927260280037097472 +0 6928080429732536320 +0 6933001829416034304 +0 6933451028794925056 +0 6933731240564056064 +0 6934570741217755136 +0 694 +0 6947488599548215296 +0 695 +0 6960137166475911168 +0 6962726713896484864 +0 6963217546192322560 +0 6964585306125008896 +0 6967631925774639104 +0 6969599299897163776 +0 6974475559697768448 +0 6982145326341423104 +0 6987889924212203520 +0 6991316084916879360 +0 6996686091335884800 +0 7006803044329021440 +0 7013693841855774720 +0 7014537632150224896 +0 7017956982081404928 +0 7022349041913978880 +0 7027529814236192768 +0 7031339012080549888 +0 7039820685967343616 +0 7045967493826387968 +0 7049773031131283456 +0 7052226236896256000 +0 7054271419461812224 +0 7054938591408996352 +0 7060236714847412224 +0 7061498706968428544 +0 7061809776248545280 +0 7062382339142156288 +0 7062605127422894080 +0 7065344324692443136 +0 7068517339681259520 +0 7069729473166090240 +0 707 +0 7077311975029555200 +0 7078641038157643776 +0 7080269176324218880 +0 7084659344078970880 +0 7086206629592252416 +0 7091300332052062208 +0 7099005292698550272 +0 71 +0 7107604675626008576 +0 7125231541858205696 +0 7128222874437238784 +0 7130159794259353600 +0 7130306447560826880 +0 7149417430082027520 +0 7153922334283776000 +0 7157247449513484288 +0 7164349895861829632 +0 7165364563962191872 +0 7166263463731421184 +0 7175638927948562432 +0 7186401810812059648 +0 7195454019231834112 +0 7198687580227043328 +0 7199539820886958080 +0 7204802700490858496 +0 7210160489915236352 +0 7212016545671348224 +0 7212090742612467712 +0 7217123582035116032 +0 7220131672176058368 +0 7220581538170413056 +0 7223569671814987776 +0 7226360892091416576 +0 7229607057201127424 +0 723 +0 7231399302953377792 +0 7232273749940838400 +0 7235109456886816768 +0 7237310132329488384 +0 7238339720750948352 +0 724 +0 7242751359672631296 +0 7249443195032985600 +0 7250237407877382144 +0 7254710367022645248 +0 7255302164215013376 +0 7259955893466931200 +0 7260908278294560768 +0 7265141874315517952 +0 7266437490436341760 +0 7271786885641666560 +0 7271887863395459072 +0 7274777328897802240 +0 7291432593139507200 +0 7295502697317097472 +0 7295926343524163584 +0 7296164580491075584 +0 7299197687217856512 +0 73 +0 7304839835188609024 +0 7308289763456000000 +0 7309156463509061632 +0 7310869618402910208 +0 7319711402123149312 +0 7333512171174223872 +0 7339426767877390336 +0 7343171468838567936 +0 7344029858387820544 +0 7345991518378442752 +0 7347732772348870656 +0 7348598907182800896 +0 735 +0 7354813692542304256 +0 7359004378440146944 +0 736 +0 7368920486374989824 +0 7370078518278397952 +0 7370803940448305152 +0 7375521127126089728 +0 7376467688511455232 +0 7378993334503694336 +0 738 +0 7381659098423926784 +0 7384150968511315968 +0 7386087924003676160 +0 7391208370547269632 +0 7393308503950548992 +0 7394967727502467072 +0 7401968422230032384 +0 7410096605330227200 +0 7410872053689794560 +0 7411793502161182720 +0 7412924364686458880 +0 7414865343000322048 +0 7418271723644403712 +0 743 +0 7432428551399669760 +0 7432998950057975808 +0 7436133434239229952 +0 7440265908266827776 +0 7450416810848313344 +0 7452756603516190720 +0 7454442625055145984 +0 7454632396542074880 +0 7461153404961128448 +0 7471208109437304832 +0 7473537548003352576 +0 7486884806277611520 +0 7487338208419823616 +0 7487538600082554880 +0 7490717730239250432 +0 7491898395977523200 +0 7492436934952574976 +0 7497276415392407552 +0 7497306924248834048 +0 7500716020874674176 +0 7514552840617558016 +0 7517159036469575680 +0 7524958388842078208 +0 7528074274555305984 +0 7528211148397944832 +0 7534042483076857856 +0 7534145866886782976 +0 7534549597202194432 +0 7545689659010949120 +0 7548958830580563968 +0 7549858023389003776 +0 7555301305375858688 +0 7566273236152721408 +0 7569249672628789248 +0 7570474972934488064 +0 7573530789362262016 +0 7575087487730196480 +0 7581052107944361984 +0 7581614118458335232 +0 7584007864107778048 +0 7592440105065308160 +0 7593521922173419520 +0 7596563216912211968 +0 7599019810193211392 +0 7608447395949109248 +0 7614435638888210432 +0 7620183559667081216 +0 7621013099259527168 +0 7625728883085025280 +0 7626715182847090688 +0 763 +0 7637152193832886272 +0 7647481735646363648 +0 7648729477297987584 +0 7652123583449161728 +0 7659279803863146496 +0 7662037650719850496 +0 7675009476762918912 +0 7678790769408172032 +0 7682327310082531328 +0 7686992843032010752 +0 7689489436826804224 +0 7690986322714066944 +0 7691062622443044864 +0 7696737688942567424 +0 7697541332524376064 +0 7700734109530767360 +0 7701723309715685376 +0 7705445437881278464 +0 7710447533880614912 +0 7718825401976684544 +0 7720187583697502208 +0 7731443941834678272 +0 7735566678126616576 +0 774 +0 7741854854673367040 +0 7746402369011277824 +0 7747874976739016704 +0 7748799008146366464 +0 7752740515534422016 +0 7753359568986636288 +0 7753882935005880320 +0 7761834341179375616 +0 7762823913046556672 +0 7765456790394871808 +0 7768984605670604800 +0 7775034125776363520 +0 7778936842502275072 +0 7779486624537370624 +0 7779735136559579136 +0 7782245855193874432 +0 7784169796350730240 +0 7784489776013295616 +0 779 +0 7790728456522784768 +0 7792036342592348160 +0 7794244032613703680 +0 78 +0 780 +0 7800332581637259264 +0 7801697837312884736 +0 7818464507324121088 +0 782 +0 7823874904139849728 +0 784 +0 7843804446688264192 +0 7844258063629852672 +0 7845953007588401152 +0 7857878068300898304 +0 7868367829080506368 +0 7870277756614623232 +0 7871189141676998656 +0 7871554728617025536 +0 7874764415950176256 +0 7885697257930588160 +0 7888238729321496576 +0 789 +0 7892026679115554816 +0 7892281003266408448 +0 7898670840507031552 +0 7909645665163804672 +0 7917494645725765632 +0 7919597361814577152 +0 7921639119138070528 +0 7922443154272395264 +0 7926898770090491904 +0 7933040277013962752 +0 7936149988210212864 +0 7944741547145502720 +0 7947544013461512192 +0 7948803266578161664 +0 7955126053367119872 +0 7961515985722605568 +0 7961909238130270208 +0 797 +0 7983789401706094592 +0 7989119273552158720 +0 7989160253372817408 +0 7997694023324975104 +0 7998357471114969088 +0 7998687089080467456 +0 80 +0 8000440057238052864 +0 8002769767000145920 +0 8004633750273925120 +0 8011181697250631680 +0 8011602724663336960 +0 8014986215157530624 +0 8017403886247927808 +0 803 +0 8045070943673671680 +0 8048726769133592576 +0 8059284960252731392 +0 8069531888205086720 +0 8071961599867387904 +0 8073733016154431488 +0 8079573715140485120 +0 808 +0 8087737899452432384 +0 809 +0 8091421389575282688 +0 8099215208813903872 +0 8100036735858401280 +0 8109381965028548608 +0 8111757081791733760 +0 8113585123802529792 +0 8116738401948377088 +0 812 +0 8120593157178228736 +0 8129551357032259584 +0 8135164922674872320 +0 8142241016679735296 +0 8143462899383345152 +0 8144552446127972352 +0 8145745969573666816 +0 8145750910080745472 +0 8146288732715196416 +0 8146492373537660928 +0 8148211378319933440 +0 815 +0 8150115791664340992 +0 8156018594610790400 +0 8156782979767238656 +0 8160569434550403072 +0 8160662610166194176 +0 8163948965373386752 +0 8168742078705262592 +0 8169878743136043008 +0 8171188598958407680 +0 8183233196086214656 +0 8184799300477943808 +0 8190539859890601984 +0 8190967051000659968 +0 8192304692696383488 +0 8195103847607967744 +0 8199513544090730496 +0 820 +0 8201303040648052736 +0 8201491077550874624 +0 8208354137450766336 +0 8210813831744118784 +0 8213810702473183232 +0 8219326436390821888 +0 8220104397160169472 +0 8221561626658881536 +0 8222714144797368320 +0 8223732800007864320 +0 823 +0 8230371298967609344 +0 8235179243092090880 +0 8244041599171862528 +0 8254763178969915392 +0 8268875586442256384 +0 8269730157217062912 +0 8272001752345690112 +0 8279056098670198784 +0 8282648443538710528 +0 8283099811330506752 +0 8286706213485297664 +0 8287522765741301760 +0 8290014929764040704 +0 8290944180915871744 +0 8294315622451740672 +0 8295110846998233088 +0 83 +0 8302473563519950848 +0 8316336224427483136 +0 8323460620425330688 +0 8325227661920133120 +0 8332670681629106176 +0 8333523087360901120 +0 8337549596011102208 +0 8345435427356090368 +0 835 +0 8351163199364390912 +0 8362046808797306880 +0 8365058996333953024 +0 8367680396909404160 +0 8368012468775608320 +0 837 +0 8371939471056470016 +0 8372408423196270592 +0 8372588378498777088 +0 8374321007870836736 +0 8376440110255243264 +0 8383159090746204160 +0 8388363436324085760 +0 8391407951622815744 +0 8391785334471589888 +0 8396433451610652672 +0 8398862954249560064 +0 8407869317250220032 +0 8410599906334097408 +0 8411494452500930560 +0 8415171956168417280 +0 8416121695917498368 +0 8417381121663746048 +0 8419958579638157312 +0 8424515140664360960 +0 8435912708683087872 +0 845 +0 8451612303224520704 +0 8454154705460666368 +0 8455496814886002688 +0 8457906374051020800 +0 8461498293348065280 +0 8463868417649524736 +0 8467976965865799680 +0 8470141334513098752 +0 8472429318602268672 +0 8473699639908261888 +0 8487573502287478784 +0 8489584373231919104 +0 8489735221193138176 +0 85 +0 8501910015960735744 +0 8508401924853850112 +0 8509508263705477120 +0 8514851182589771776 +0 8514979402185596928 +0 8515682078777081856 +0 8518454006987948032 +0 8519937082746634240 +0 8523972434954510336 +0 8524940073536954368 +0 8525336514806317056 +0 8525894870444638208 +0 8532016240026279936 +0 8536948829863198720 +0 8540237852367446016 +0 8543177193114779648 +0 8547243497773457408 +0 8551446856960942080 +0 8553195689344991232 +0 8554899472487596032 +0 8555933456197828608 +0 8555948987770511360 +0 8557218322962644992 +0 8558000156325707776 +0 8560526613401714688 +0 8569030475428511744 +0 8570983266408103936 +0 8571268359622172672 +0 8573305425181941760 +0 8577096957495025664 +0 8579974641030365184 +0 8583916402383601664 +0 8613562211893919744 +0 8625937019655200768 +0 8631515095562887168 +0 8637720762289659904 +0 8639254009546055680 +0 8641221723991433216 +0 8643198489997254656 +0 8644602243484803072 +0 8649296591032172544 +0 8652485812846567424 +0 8656571350884048896 +0 8660248367767076864 +0 8665969966920990720 +0 8666178591503564800 +0 8677632093825916928 +0 8677794924343164928 +0 868 +0 8682955459667951616 +0 8687042963221159936 +0 8688483860094599168 +0 8693036785094565888 +0 8697823501349609472 +0 8698055291501543424 +0 8708232769657815040 +0 8708845895460577280 +0 871 +0 8714829359200747520 +0 8716401555586727936 +0 8720504651219001344 +0 8723248113030782976 +0 873 +0 8731960288562044928 +0 8734584858442498048 +0 8736061027343859712 +0 874 +0 8752150411997356032 +0 8759089349412847616 +0 8759184090543857664 +0 8760285623204290560 +0 8761174805938331648 +0 8769199243315814400 +0 8773222500321361920 +0 8775009214012456960 +0 8779073705407963136 +0 8779711700787298304 +0 878 +0 8780196485890555904 +0 8782900615468302336 +0 8783241818558193664 +0 8785153741735616512 +0 8792059919353348096 +0 8793387410919038976 +0 8795069490394882048 +0 8806507556248731648 +0 8808467247666241536 +0 8811693967537774592 +0 8815398225009967104 +0 8817665768680906752 +0 8822384228057604096 +0 8825059717746376704 +0 8829545979081744384 +0 883 +0 8836228556823977984 +0 8837420822750314496 +0 8849475396952514560 +0 8850055384477401088 +0 8853989376829833216 +0 8854495099223375872 +0 8854677881758162944 +0 8854715632851345408 +0 8856674723376668672 +0 8868529429494071296 +0 8871707618793996288 +0 8875745082589929472 +0 888 +0 8895174927321243648 +0 8896237972875370496 +0 8897901899039473664 +0 8899122608190930944 +0 8900180888218329088 +0 8900351886974279680 +0 8900545829211299840 +0 8905330479248064512 +0 8910706980937261056 +0 8920344895701393408 +0 8920533610804609024 +0 8927691194719174656 +0 8928133990107881472 +0 8935252708196999168 +0 8936639033158410240 +0 8939431770838810624 +0 8945004737083555840 +0 8945302550165004288 +0 8962097525980225536 +0 8972161729142095872 +0 8979012655944220672 +0 898 +0 8983857919580209152 +0 8983912573761167360 +0 8984935029383389184 +0 8987827141270880256 +0 8991071342495531008 +0 8991442360387584000 +0 8994608999945125888 +0 8995562121346260992 +0 8996824426131390464 +0 9000633029632499712 +0 9001907486943993856 +0 9005866015985713152 +0 9016280522993975296 +0 9020143715350814720 +0 9023663198045544448 +0 9030480306789818368 +0 9038087402564657152 +0 9040958359122640896 +0 9043089884440068096 +0 9048002942653710336 +0 9048297564833079296 +0 9050032047355125760 +0 9053187076403060736 +0 9054887854393950208 +0 9062227900376203264 +0 9064847977742032896 +0 9067985867711291392 +0 9073672806863790080 +0 9075404705968840704 +0 9078604269481148416 +0 908 +0 9083076230151864320 +0 9083704659251798016 +0 9084402694981533696 +0 9085381906890203136 +0 9085434340468473856 +0 9086905513121890304 +0 9089435102788009984 +0 9091082386452684800 +0 9091085792947666944 +0 9094945190752903168 +0 9096395849845194752 +0 91 +0 9104574294205636608 +0 9107991000536498176 +0 9112400579327483904 +0 9114850402293882880 +0 9116137265342169088 +0 9117063974299148288 +0 9119046173224370176 +0 9123116008004288512 +0 913 +0 9131533983989358592 +0 9132009829414584320 +0 9136234417125007360 +0 9136548192574529536 +0 9139805788041134080 +0 914 +0 9148071980848742400 +0 9149216169284091904 +0 9165199002069458944 +0 9169248521377374208 +0 917 +0 9174894805640142848 +0 918 +0 9180098147855769600 +0 9182828596851990528 +0 9185458640237641728 +0 9185952983951343616 +0 9188173682239275008 +0 919 +0 9190466190353661952 +0 9191943992860327936 +0 9194388393453060096 +0 9199741683232399360 +0 9207107990561972224 +0 9207927479837319168 +0 9209153648361848832 +0 921 +0 9211455920344088576 +0 922 +0 923 +0 927 +0 928 +0 939 +0 94 +0 945 +0 947 +0 950 +0 958 +0 961 +0 965 +0 967 +0 976 +0 979 +0 982 +0 987 +0 997 +0 999 +0 NULL +1 NULL +PREHOOK: query: explain vectorization detail +select `grouping__id`, b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select `grouping__id`, b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: true + enabledConditionsMet: [hive.vectorized.execution.enabled IS true] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez +#### A masked pattern was here #### + Edges: + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + TableScan Vectorization: + native: true + projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + Select Operator + expressions: b (type: bigint) + outputColumnNames: _col0 + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [3] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count() + Group By Vectorization: + aggregators: VectorUDAFCountStar(*) -> bigint + className: VectorGroupByOperator + groupByMode: HASH + vectorOutput: true + keyExpressions: col 3, ConstantVectorExpression(val 0) -> 15:long + native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false + vectorProcessingMode: HASH + projectedOutputColumns: [0] + keys: _col0 (type: bigint), 0 (type: int) + mode: hash + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint), _col1 (type: int) + sort order: ++ + Map-reduce partition columns: _col0 (type: bigint), _col1 (type: int) + Reduce Sink Vectorization: + className: VectorReduceSinkMultiKeyOperator + keyColumns: [0, 1] + native: true + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + valueColumns: [2] + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + value expressions: _col2 (type: bigint) + Execution mode: vectorized, llap + LLAP IO: all inputs + Map Vectorization: + enabled: true + enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true + groupByVectorOutput: true + inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 13 + includeColumns: [3] + dataColumns: t:tinyint, si:smallint, i:int, b:bigint, f:float, d:double, dc:decimal(38,18), bo:boolean, s:string, s2:string, ts:timestamp, ts2:timestamp, dt:date + partitionColumnCount: 0 + scratchColumnTypeNames: bigint, bigint, bigint + Reducer 2 + Execution mode: vectorized, llap + Reduce Vectorization: + enabled: true + enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true + reduceColumnNullOrder: aa + reduceColumnSortOrder: ++ + groupByVectorOutput: true + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + rowBatchContext: + dataColumnCount: 3 + dataColumns: KEY._col0:bigint, KEY._col1:int, VALUE._col0:bigint + partitionColumnCount: 0 + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + Group By Vectorization: + aggregators: VectorUDAFCountMerge(col 2) -> bigint + className: VectorGroupByOperator + groupByMode: MERGEPARTIAL + vectorOutput: true + keyExpressions: col 0, col 1 + native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false + vectorProcessingMode: MERGE_PARTIAL + projectedOutputColumns: [0] + keys: KEY._col0 (type: bigint), KEY._col1 (type: int) + mode: mergepartial + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col1 (type: int), _col0 (type: bigint), _col2 (type: bigint) + outputColumnNames: _col0, _col1, _col2 + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [1, 0, 2] + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + File Sink Vectorization: + className: VectorFileSinkOperator + native: false + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select `grouping__id`, b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select `grouping__id`, b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +0 -6917607783359897600 1 +0 -6919476845891313664 1 +0 -6920172215209426944 1 +0 -6921654334727036928 1 +0 -6933565857643814912 1 +0 -6934304742087655424 1 +0 -6935038507792801792 1 +0 -6935548339131138048 1 +0 -6938706403992854528 1 +0 -6941777546186579968 1 +0 -6947955278050181120 1 +0 -6951350560260784128 1 +0 -6957946688477274112 1 +0 -6960947572095770624 1 +0 -6962271229404348416 1 +0 -6962292590214234112 1 +0 -6968771079156654080 1 +0 -6968892545529896960 1 +0 -6970396058557005824 1 +0 -6974654664348033024 1 +0 -6975459232300236800 1 +0 -6986178228432322560 1 +0 -6988811476286873600 1 +0 -6988970700649168896 1 +0 -6992217501957169152 1 +0 -6997233584896229376 1 +0 -7000925438663041024 1 +0 -7003696402314215424 1 +0 -7011425384222244864 1 +0 -7017212700635545600 1 +0 -7020852530219171840 1 +0 -7030489936116252672 1 +0 -7035132060308643840 1 +0 -7036607470351654912 1 +0 -7037375807670501376 1 +0 -7037638331316469760 1 +0 -7038455462786334720 1 +0 -7040248820505149440 1 +0 -7041362811802148864 1 +0 -7042183597114081280 1 +0 -7046180371529351168 1 +0 -7049618574399692800 1 +0 -7052619594823221248 1 +0 -7055619148037554176 1 +0 -7055760785575665664 1 +0 -7057750467944931328 1 +0 -7058986555327307776 1 +0 -7063777488249085952 1 +0 -7078068944081002496 1 +0 -7079898537463537664 1 +0 -7081500255163727872 1 +0 -7083646746411720704 1 +0 -7085247548404178944 1 +0 -7093825013581979648 1 +0 -7094189393339678720 1 +0 -7094827141662539776 1 +0 -7104310188119834624 1 +0 -7106210529681350656 1 +0 -7109790267244814336 1 +0 -7115054815375073280 1 +0 -7120456708338688000 1 +0 -7127548949860818944 1 +0 -7138415011665043456 1 +0 -7139677575412686848 1 +0 -7140008543769042944 1 +0 -7144791190333546496 1 +0 -7145585429014888448 1 +0 -7147490721376591872 1 +0 -7152177800841502720 1 +0 -7155539549555105792 1 +0 -7158472098920390656 1 +0 -7159700138947862528 1 +0 -7161165959057334272 1 +0 -7162299524557471744 1 +0 -7172594404186693632 1 +0 -7185369278665605120 1 +0 -7192529627893858304 1 +0 -7194281951646187520 1 +0 -7195217207163166720 1 +0 -7198372044947275776 1 +0 -7199983995864711168 1 +0 -7201085131997011968 1 +0 -7209060152494817280 1 +0 -7213775605408178176 1 +0 -7220731681653604352 1 +0 -7221474017515347968 1 +0 -7228589258642194432 1 +0 -7240213957902663680 1 +0 -7242345057866285056 1 +0 -7245872320493322240 1 +0 -7246123871306244096 1 +0 -7255010240787030016 1 +0 -7255686273677328384 1 +0 -7262049693594943488 1 +0 -7262384251828518912 1 +0 -7262798781688651776 1 +0 -7263060340185194496 1 +0 -7265998318110711808 1 +0 -7266719102957125632 1 +0 -7270034223527993344 1 +0 -7273590251991162880 1 +0 -7273694358642851840 1 +0 -7276111129363046400 1 +0 -7287583262310350848 1 +0 -7292078334519894016 1 +0 -7296096276653391872 1 +0 -7303847963918393344 1 +0 -7319315187617587200 1 +0 -7326863346317598720 1 +0 -7328087811698909184 1 +0 -7329767178250018816 1 +0 -7329807949048193024 1 +0 -7330203470474985472 1 +0 -7330413050756235264 1 +0 -7333278178640953344 1 +0 -7333362172439035904 1 +0 -7340231535789727744 1 +0 -7344146703223496704 1 +0 -7344947507044466688 1 +0 -7345562788132315136 1 +0 -7356685674003021824 1 +0 -7357888618985873408 1 +0 -7362189611124563968 1 +0 -7366430883634929664 1 +0 -7378096180613840896 1 +0 -7380731416973295616 1 +0 -7395343938785738752 1 +0 -7395553021620731904 1 +0 -7399631791131074560 1 +0 -7404052043914526720 1 +0 -7404057145074712576 1 +0 -7409317158045442048 1 +0 -7409653086454030336 1 +0 -7412431471807283200 1 +0 -7413317118463164416 1 +0 -7419068456205385728 1 +0 -7420448501073051648 1 +0 -7425160895830573056 1 +0 -7429331808102899712 1 +0 -7433265617153343488 1 +0 -7442593976514420736 1 +0 -7444070205513138176 1 +0 -7451660755269853184 1 +0 -7453525026342617088 1 +0 -7455898404374921216 1 +0 -7456869587112255488 1 +0 -7461750143936897024 1 +0 -7464270453557993472 1 +0 -7469660864676585472 1 +0 -7470307155642245120 1 +0 -7476082621253402624 1 +0 -7483435388852559872 1 +0 -7488345684795342848 1 +0 -7488415863027367936 1 +0 -7494411162675691520 1 +0 -7496839341561954304 1 +0 -7497303453253402624 1 +0 -7500200359698907136 1 +0 -7501803640821456896 1 +0 -7506254246954500096 1 +0 -7507424948896415744 1 +0 -7507578199583694848 1 +0 -7510418793070075904 1 +0 -7511202710200885248 1 +0 -7511952204985049088 1 +0 -7512289590991544320 1 +0 -7512297136103800832 1 +0 -7515996202498473984 1 +0 -7524170566881329152 1 +0 -7526793959592140800 1 +0 -7528526815026692096 1 +0 -7532751268425261056 1 +0 -7535857766791577600 1 +0 -7535958203887706112 1 +0 -7536330682873937920 1 +0 -7540104552219860992 1 +0 -7541860097718902784 1 +0 -7542857121910046720 1 +0 -7547245548870025216 1 +0 -7547432761381339136 1 +0 -7551394356730339328 1 +0 -7557017910095650816 1 +0 -7558524160894427136 1 +0 -7571293705217687552 1 +0 -7571957778022178816 1 +0 -7572262898020278272 1 +0 -7572962089372991488 1 +0 -7576194692683563008 1 +0 -7593363318079610880 1 +0 -7594824008626372608 1 +0 -7598782894648565760 1 +0 -7600138468036386816 1 +0 -7603467428164009984 1 +0 -7603569103205916672 1 +0 -7610137349734883328 1 +0 -7611584069753552896 1 +0 -7612455481940246528 1 +0 -7612466483992051712 1 +0 -7616522969329262592 1 +0 -7617860842651017216 1 +0 -7623047151287754752 1 +0 -7623359796281999360 1 +0 -7623405558242500608 1 +0 -7624057992767782912 1 +0 -7629401308029976576 1 +0 -7637494527844343808 1 +0 -7637755520917741568 1 +0 -7642381493746483200 1 +0 -7647020450676146176 1 +0 -7661192563533062144 1 +0 -7661250850555633664 1 +0 -7663293054873812992 1 +0 -7665186441284968448 1 +0 -7668388017287020544 1 +0 -7669169138124275712 1 +0 -7673901622181953536 1 +0 -7679894005808693248 1 +0 -7686220526274502656 1 +0 -7687052294777208832 1 +0 -7692192232238678016 1 +0 -7695491171376291840 1 +0 -7700203302632210432 1 +0 -7703540456272994304 1 +0 -7707242953271500800 1 +0 -7707867749256445952 1 +0 -7708932208121225216 1 +0 -7709958788604936192 1 +0 -7712425776235274240 1 +0 -7720966287634112512 1 +0 -7739424919198187520 1 +0 -7744462446680375296 1 +0 -7751265769984491520 1 +0 -7751427073017544704 1 +0 -7753051494275432448 1 +0 -7759238919361888256 1 +0 -7759425383684849664 1 +0 -7772064021830574080 1 +0 -7773957003968675840 1 +0 -7777884099756122112 1 +0 -7778829032042790912 1 +0 -7779270198785875968 1 +0 -7782344916178796544 1 +0 -7784419454650843136 1 +0 -7792903881635938304 1 +0 -7793447076762345472 1 +0 -7797149520019062784 1 +0 -7797151404935618560 1 +0 -7800879252150779904 1 +0 -7802538500225777664 1 +0 -7804116532814151680 1 +0 -7805985795815342080 1 +0 -7811060170911375360 1 +0 -7818454479651135488 1 +0 -7819437864839495680 1 +0 -7822452149325094912 1 +0 -7824788571789279232 1 +0 -7827420207675105280 1 +0 -7831320202242228224 1 +0 -7831595638727565312 1 +0 -7833618000492109824 1 +0 -7835907977757245440 1 +0 -7838598833900584960 1 +0 -7840338174858199040 1 +0 -7845896959112658944 1 +0 -7848043121524228096 1 +0 -7849504559236210688 1 +0 -7858505678035951616 1 +0 -7866079955473989632 1 +0 -7867219225874571264 1 +0 -7868306678534193152 1 +0 -7873753603299540992 1 +0 -7875953567586451456 1 +0 -7877598807023386624 1 +0 -7878145001776152576 1 +0 -7879864376629567488 1 +0 -7881262505761710080 1 +0 -7881351200983613440 1 +0 -7883252982752665600 1 +0 -7884460946615984128 1 +0 -7888051992910274560 1 +0 -7892780594910871552 1 +0 -7893577088764174336 1 +0 -7894382303337832448 1 +0 -7895991410072928256 1 +0 -7902517224300036096 1 +0 -7903158849011843072 1 +0 -7904188195431661568 1 +0 -7907355742053883904 1 +0 -7910019233726242816 1 +0 -7911421221625077760 1 +0 -7915999634274369536 1 +0 -7916510129632296960 1 +0 -7928062266382778368 1 +0 -7928440849566146560 1 +0 -7939634346485858304 1 +0 -7949309059286163456 1 +0 -7949445503604604928 1 +0 -7953426740065312768 1 +0 -7964801953178091520 1 +0 -7966960765508280320 1 +0 -7978782649203228672 1 +0 -7989766326847807488 1 +0 -7998947380180819968 1 +0 -8007017894942638080 1 +0 -8013397854633648128 1 +0 -8016589197379289088 1 +0 -8017791189288869888 1 +0 -8018511948141748224 1 +0 -8021859935185928192 1 +0 -8022573309127000064 1 +0 -8023708819947323392 1 +0 -8028275725610909696 1 +0 -8028910243475038208 1 +0 -8030058711611629568 1 +0 -8034414142083170304 1 +0 -8046189486447017984 1 +0 -8046238369820344320 1 +0 -8047774491688255488 1 +0 -8051395538179063808 1 +0 -8051587217208967168 1 +0 -8051871680800120832 1 +0 -8054581198284668928 1 +0 -8067243114610532352 1 +0 -8070535484085895168 1 +0 -8076479329071955968 1 +0 -8082793390939193344 1 +0 -8084716955963252736 1 +0 -8086577583338061824 1 +0 -8088337436168830976 1 +0 -8099313480512716800 1 +0 -8103788088118018048 1 +0 -8104684579106914304 1 +0 -8108693586698706944 1 +0 -8115963579415650304 1 +0 -8117838333114212352 1 +0 -8122639684164501504 1 +0 -8127494999848919040 1 +0 -8131997716860526592 1 +0 -8136227554401107968 1 +0 -8140349174954893312 1 +0 -8142667274351345664 1 +0 -8147405381260345344 1 +0 -8158011642485825536 1 +0 -8161047750470279168 1 +0 -8172827216441573376 1 +0 -8182421179156905984 1 +0 -8191825921746305024 1 +0 -8194062064124362752 1 +0 -8203008052020879360 1 +0 -8203075743525806080 1 +0 -8205148279289085952 1 +0 -8214462866994339840 1 +0 -8219876839318716416 1 +0 -8232763638546694144 1 +0 -8240034910581153792 1 +0 -8240684139569233920 1 +0 -8243487285852766208 1 +0 -8244116388227104768 1 +0 -8244657976255889408 1 +0 -8260340354454503424 1 +0 -8269917980278980608 1 +0 -8270479187688816640 1 +0 -8275337702906757120 1 +0 -8280276629934981120 1 +0 -8293833565967810560 1 +0 -8297230235506343936 1 +0 -8300526097982226432 1 +0 -8300764106868350976 1 +0 -8302817097848307712 1 +0 -8317591428117274624 1 +0 -8318886086186213376 1 +0 -8322751250650218496 1 +0 -8330233444291084288 1 +0 -8335810316927213568 1 +0 -8340523561480437760 1 +0 -8345065519816695808 1 +0 -8347088645602050048 1 +0 -8357136656913686528 1 +0 -8358130693961195520 1 +0 -8359839265974165504 1 +0 -8368269352975982592 1 +0 -8368487814665895936 1 +0 -8369487968903897088 1 +0 -8379109122834997248 1 +0 -8379964450833367040 1 +0 -8384695077413412864 1 +0 -8387347109404286976 1 +0 -8387536830476820480 1 +0 -8395998375405912064 1 +0 -8400045653258444800 1 +0 -8411282676082565120 1 +0 -8418913260807217152 1 +0 -8425998949410889728 1 +0 -8426531414463545344 1 +0 -8430283518005846016 1 +0 -8430370933326536704 1 +0 -8431492599012163584 1 +0 -8438554249514491904 1 +0 -8445801063348281344 1 +0 -8453491903284994048 1 +0 -8454143651040444416 1 +0 -8465978403747037184 1 +0 -8469607298426437632 1 +0 -8471480409335513088 1 +0 -8485389240529354752 1 +0 -8488247955875618816 1 +0 -8490382417169408000 1 +0 -8494118409594650624 1 +0 -8503342882470019072 1 +0 -8503573595507761152 1 +0 -8507279516485566464 1 +0 -8509547439040757760 1 +0 -8518060755719585792 1 +0 -8518258741831680000 1 +0 -8521578237232529408 1 +0 -8522878384019169280 1 +0 -8523434203900674048 1 +0 -8525212657458348032 1 +0 -8535957064499879936 1 +0 -8536369662934401024 1 +0 -8543982423727128576 1 +0 -8544299740525461504 1 +0 -8545239748068941824 1 +0 -8546758906409312256 1 +0 -8552393882631389184 1 +0 -8555709701170552832 1 +0 -8559008501282832384 1 +0 -8559252110266564608 1 +0 -8562524688907485184 1 +0 -8566856504746352640 1 +0 -8566940231897874432 1 +0 -8570933074545745920 1 +0 -8572823448513445888 1 +0 -8572949572756774912 1 +0 -8581765103969312768 1 +0 -8581979259158929408 1 +0 -8584520406368493568 1 +0 -8585134536083660800 1 +0 -8585966098173870080 1 +0 -8593419958317056000 1 +0 -8603817012434198528 1 +0 -8604758220106014720 1 +0 -8607195685207408640 1 +0 -8615168537390571520 1 +0 -8619303037130301440 1 +0 -8623238306523824128 1 +0 -8623965248051789824 1 +0 -8632237187473088512 1 +0 -8649711322250362880 1 +0 -8651641150831362048 1 +0 -8654433008222797824 1 +0 -8654797319350927360 1 +0 -8658387566611996672 1 +0 -8659643752269242368 1 +0 -8659692318743314432 1 +0 -8660149447361404928 1 +0 -8664374244449050624 1 +0 -8664806103426252800 1 +0 -8665218198816497664 1 +0 -8665764757143658496 1 +0 -8675661101615489024 1 +0 -8675892979328212992 1 +0 -8683802826440105984 1 +0 -8688153842294595584 1 +0 -8689606130068611072 1 +0 -8694818694700048384 1 +0 -8696162322976997376 1 +0 -8703026916864802816 1 +0 -8704234107608203264 1 +0 -8705403811649355776 1 +0 -8710298418608619520 1 +0 -8714995808835444736 1 +0 -8719510423723155456 1 +0 -8730803262481580032 1 +0 -8731068123910987776 1 +0 -8746702976270385152 1 +0 -8754966081778565120 1 +0 -8754992450211692544 1 +0 -8756989568739835904 1 +0 -8760655406971863040 1 +0 -8763062627136864256 1 +0 -8768744394742235136 1 +0 -8782213262837530624 1 +0 -8783777723063099392 1 +0 -8789178184387641344 1 +0 -8797972842900307968 1 +0 -8807361476639629312 1 +0 -8813211231120031744 1 +0 -8831091081349758976 1 +0 -8832750849949892608 1 +0 -8833019327569510400 1 +0 -8835408234247168000 1 +0 -8836899523028312064 1 +0 -8843859708698583040 1 +0 -8844949406948671488 1 +0 -8845239510002753536 1 +0 -8852770376039219200 1 +0 -8853553406533894144 1 +0 -8856151919723003904 1 +0 -8856821118526734336 1 +0 -8857335871148171264 1 +0 -8858063395050110976 1 +0 -8859107121649893376 1 +0 -8866442231663067136 1 +0 -8870186814744420352 1 +0 -8870673219965001728 1 +0 -8875546987176206336 1 +0 -8877053610728161280 1 +0 -8877431933441327104 1 +0 -8879742387365429248 1 +0 -8881446757271846912 1 +0 -8887058200926093312 1 +0 -8892963883085578240 1 +0 -8896045754034978816 1 +0 -8914039133569400832 1 +0 -8916987977485312000 1 +0 -8922409715403112448 1 +0 -8923529803981905920 1 +0 -8927968289860370432 1 +0 -8930307926221807616 1 +0 -8938849835283677184 1 +0 -8940944155843461120 1 +0 -8941201923743703040 1 +0 -8946656952763777024 1 +0 -8948335470186373120 1 +0 -8959796625322680320 1 +0 -8961059046745669632 1 +0 -8962547695651323904 1 +0 -8965578088652095488 1 +0 -8989473881707921408 1 +0 -8990843030306717696 1 +0 -8992599250893979648 1 +0 -8996954350906294272 1 +0 -9002912355472736256 1 +0 -9004892183139811328 1 +0 -9008631121684832256 1 +0 -9012093603044245504 1 +0 -9013952631912325120 1 +0 -9014145341570203648 1 +0 -9022154842129547264 1 +0 -9032650742739836928 1 +0 -9049720998034137088 1 +0 -9051477157204770816 1 +0 -9058029636530003968 1 +0 -9066993118333706240 1 +0 -9071565764086521856 1 +0 -9075302542655684608 1 +0 -9075486079396069376 1 +0 -9078662294976061440 1 +0 -9079801920509001728 1 +0 -9080568167841226752 1 +0 -9080956291212132352 1 +0 -9084940280061485056 1 +0 -9088239683374350336 1 +0 -9091113592821972992 1 +0 -9095689235523264512 1 +0 -9101953184875757568 1 +0 -9102482277760983040 1 +0 -9105358806324035584 1 +0 -9105701280936501248 1 +0 -9109392978217484288 1 +0 -9117959922369060864 1 +0 -9126793997498957824 1 +0 -9136398397785948160 1 +0 -9142610685888192512 1 +0 -9145593811310010368 1 +0 -9148197394287779840 1 +0 -9149719074367946752 1 +0 -9157613004431998976 1 +0 -9175038118837149696 1 +0 -9175279464813223936 1 +0 -9178166810751909888 1 +0 -9187662685618348032 1 +0 -9189155542884474880 1 +0 -9203804401302323200 1 +0 -9203942396257984512 1 +0 -9206329156028112896 1 +0 -9210275791460499456 1 +0 -9213132862973829120 1 +0 -9215144824304721920 1 +0 -9218875542187065344 1 +0 -9219066990552760320 1 +0 1021 1 +0 1030 1 +0 1032 1 +0 1039 1 +0 1046 1 +0 1048 1 +0 1053 1 +0 1055 1 +0 1058 1 +0 1065 1 +0 1066 1 +0 1074 1 +0 1075 3 +0 108 1 +0 1086 1 +0 1093 1 +0 1094 1 +0 1095 1 +0 1099 1 +0 1115 1 +0 112 1 +0 1127 1 +0 1128 1 +0 1132 1 +0 1134 1 +0 1141 1 +0 1142 1 +0 1145 1 +0 1153 1 +0 1157 1 +0 1158 1 +0 1165 2 +0 1168 1 +0 1177 1 +0 1187 1 +0 1189 1 +0 1198 1 +0 120 1 +0 1201 1 +0 1217 1 +0 1234 1 +0 1243 1 +0 1247 1 +0 1252 1 +0 1261 1 +0 1270 1 +0 1280 1 +0 1282 1 +0 1286 1 +0 1287 1 +0 1290 1 +0 1291 1 +0 1299 1 +0 130 1 +0 1307 1 +0 1312 1 +0 1316 1 +0 1321 1 +0 1337 1 +0 1341 1 +0 1342 1 +0 1343 1 +0 1345 1 +0 1346 1 +0 135 1 +0 1366 1 +0 1368 2 +0 1371 2 +0 138 1 +0 1386 1 +0 1398 1 +0 1409 1 +0 1422 1 +0 1423 1 +0 1436 1 +0 1439 1 +0 1447 1 +0 1450 1 +0 1454 1 +0 1458 1 +0 1462 1 +0 1466 1 +0 1470 1 +0 1477 1 +0 1481 2 +0 1489 1 +0 1493 1 +0 1495 1 +0 1501 1 +0 1506 1 +0 1508 1 +0 1509 2 +0 1518 1 +0 1520 1 +0 1521 1 +0 1524 1 +0 1530 1 +0 1537 2 +0 154 2 +0 1541 1 +0 1542 1 +0 1545 1 +0 1556 1 +0 1559 1 +0 1561 1 +0 1566 1 +0 1604 1 +0 1606 1 +0 1608 1 +0 1613 1 +0 1614 1 +0 1620 1 +0 1638 1 +0 1641 1 +0 1643 1 +0 1648 1 +0 1651 1 +0 1667 1 +0 1671 1 +0 1674 1 +0 1676 1 +0 1678 1 +0 168 1 +0 1681 1 +0 169 1 +0 1693 1 +0 1701 2 +0 1704 1 +0 1719 2 +0 1726 1 +0 1728 1 +0 1745 1 +0 1751 1 +0 1752 1 +0 1769 1 +0 1774 1 +0 1775 1 +0 1777 2 +0 1780 1 +0 1781 1 +0 1785 1 +0 1786 1 +0 1788 1 +0 1789 1 +0 1791 1 +0 1796 1 +0 1806 1 +0 181 1 +0 1811 1 +0 1813 1 +0 1826 1 +0 1827 1 +0 1835 1 +0 1837 1 +0 1845 1 +0 1846 1 +0 1856 2 +0 1862 1 +0 1863 1 +0 1864 1 +0 1866 1 +0 187 1 +0 1870 1 +0 188 1 +0 1880 1 +0 1890 1 +0 1892 1 +0 1899 1 +0 19 2 +0 1906 1 +0 1910 1 +0 1914 2 +0 1926 1 +0 1937 1 +0 1940 1 +0 1941 1 +0 1948 3 +0 1955 1 +0 1965 1 +0 1972 1 +0 1981 1 +0 1983 1 +0 1987 1 +0 1990 1 +0 1995 1 +0 1999 1 +0 2001 1 +0 2002 1 +0 2004 1 +0 2009 1 +0 2011 1 +0 2013 1 +0 2016 1 +0 2017 1 +0 2020 2 +0 2025 1 +0 2026 1 +0 2029 1 +0 203 1 +0 204 1 +0 2046 1 +0 2056 1 +0 2067 1 +0 2072 1 +0 2073 1 +0 2085 1 +0 2089 1 +0 2092 1 +0 2105 1 +0 2106 1 +0 2108 1 +0 213 2 +0 2131 1 +0 2138 1 +0 2140 1 +0 2144 1 +0 2155 1 +0 2177 1 +0 2179 1 +0 2180 1 +0 2183 1 +0 2186 1 +0 2187 1 +0 2189 1 +0 2193 2 +0 2194 1 +0 22 1 +0 2201 1 +0 2205 1 +0 2214 1 +0 2217 1 +0 2218 1 +0 2223 1 +0 2227 1 +0 2229 1 +0 2232 1 +0 2241 1 +0 2244 1 +0 2255 1 +0 2262 1 +0 2264 1 +0 2270 1 +0 2274 1 +0 2277 1 +0 2279 1 +0 228 1 +0 2283 1 +0 2285 2 +0 2295 1 +0 2306 1 +0 2320 1 +0 2323 1 +0 2325 2 +0 2335 1 +0 2341 1 +0 2348 1 +0 2358 1 +0 236 1 +0 2373 1 +0 238 1 +0 2386 1 +0 2393 2 +0 2398 1 +0 2400 1 +0 2410 1 +0 2412 2 +0 2420 1 +0 2426 1 +0 2434 1 +0 244 1 +0 2461 1 +0 2463 3 +0 2465 1 +0 2469 1 +0 2475 1 +0 2476 1 +0 2485 2 +0 2487 1 +0 2492 1 +0 2494 1 +0 2502 1 +0 2506 1 +0 2509 1 +0 2512 1 +0 2514 1 +0 2515 1 +0 2517 1 +0 2524 1 +0 2533 1 +0 2539 1 +0 2540 1 +0 255 1 +0 2551 1 +0 2553 1 +0 2560 2 +0 2563 1 +0 2565 1 +0 2569 1 +0 2579 1 +0 2580 1 +0 2587 1 +0 259 1 +0 2599 1 +0 2607 1 +0 2608 1 +0 2619 2 +0 2625 1 +0 2626 1 +0 263 2 +0 2637 1 +0 2647 1 +0 2649 1 +0 2662 1 +0 2663 1 +0 2675 1 +0 268 2 +0 2680 1 +0 2682 1 +0 2688 1 +0 2689 1 +0 2692 1 +0 2700 1 +0 2712 1 +0 2714 1 +0 2715 2 +0 2719 1 +0 2724 1 +0 2725 1 +0 2735 1 +0 2745 1 +0 275 1 +0 2752 1 +0 2762 1 +0 2772 1 +0 2776 1 +0 2786 2 +0 279 1 +0 2790 1 +0 2791 1 +0 2803 3 +0 2805 1 +0 281 1 +0 2810 1 +0 2811 1 +0 2816 1 +0 2821 1 +0 2824 1 +0 2835 1 +0 2842 1 +0 2843 2 +0 2846 1 +0 2847 1 +0 2848 1 +0 2850 1 +0 2855 2 +0 2862 1 +0 2878 1 +0 2886 1 +0 289 1 +0 2897 2 +0 2900 1 +0 2903 1 +0 2905 1 +0 2911 1 +0 2915 1 +0 2919 1 +0 2933 2 +0 2938 1 +0 294 1 +0 2941 1 +0 2942 1 +0 296 2 +0 2962 1 +0 2968 2 +0 2971 1 +0 2977 1 +0 2979 1 +0 2984 1 +0 2986 1 +0 2988 1 +0 2991 1 +0 3002 1 +0 3006 1 +0 301 1 +0 302 1 +0 3021 2 +0 3024 1 +0 3029 1 +0 3031 1 +0 3036 1 +0 3043 1 +0 3054 1 +0 3055 1 +0 3058 1 +0 3059 1 +0 3060 2 +0 3067 1 +0 3071 1 +0 3073 1 +0 3079 2 +0 3083 1 +0 3084 1 +0 3089 1 +0 3094 1 +0 3103 1 +0 311 1 +0 3111 1 +0 3118 1 +0 3119 1 +0 3144 1 +0 3147 1 +0 3159 2 +0 3163 1 +0 3174 1 +0 3183 1 +0 3190 1 +0 3197 1 +0 3199 1 +0 320 1 +0 3203 1 +0 3206 1 +0 3208 1 +0 3212 1 +0 3213 1 +0 3231 1 +0 3232 1 +0 3235 1 +0 3244 1 +0 3245 1 +0 3248 1 +0 3249 1 +0 3253 1 +0 3255 1 +0 3263 1 +0 3286 1 +0 3300 1 +0 3307 1 +0 3322 1 +0 3333 1 +0 3352 1 +0 336 1 +0 3365 1 +0 3366 1 +0 3397 1 +0 34 1 +0 3401 1 +0 3407 1 +0 3409 1 +0 341 1 +0 3418 2 +0 342 1 +0 3421 1 +0 3430 1 +0 3443 1 +0 3446 1 +0 345 1 +0 3456 1 +0 346 2 +0 3460 1 +0 3462 3 +0 3467 2 +0 347 1 +0 3472 1 +0 3478 1 +0 3493 1 +0 350 1 +0 3507 1 +0 3510 1 +0 3512 1 +0 3533 1 +0 3534 1 +0 3541 1 +0 3542 1 +0 355 1 +0 3554 1 +0 3555 2 +0 3563 1 +0 3566 1 +0 3567 1 +0 3568 1 +0 3579 1 +0 3588 2 +0 3599 1 +0 3606 1 +0 3608 1 +0 3609 1 +0 361 1 +0 3613 1 +0 3622 2 +0 3625 1 +0 3630 1 +0 3637 1 +0 364 1 +0 3648 1 +0 3663 1 +0 3664 1 +0 367 1 +0 3672 1 +0 3673 1 +0 3677 1 +0 3680 1 +0 3682 1 +0 3690 1 +0 3691 1 +0 3701 1 +0 3702 1 +0 3703 1 +0 3707 1 +0 3722 1 +0 3724 1 +0 3725 2 +0 3728 2 +0 3739 1 +0 3747 1 +0 3749 1 +0 375 1 +0 3755 1 +0 3763 1 +0 3764 1 +0 3769 1 +0 3770 2 +0 378 1 +0 3781 2 +0 3789 1 +0 379 1 +0 3810 1 +0 3812 1 +0 3823 1 +0 3824 1 +0 383 2 +0 3830 1 +0 3835 1 +0 3841 1 +0 3848 1 +0 3858 1 +0 3860 1 +0 3866 2 +0 3874 1 +0 3879 1 +0 388 1 +0 3887 1 +0 3901 1 +0 3904 1 +0 3907 1 +0 391 1 +0 3910 1 +0 3911 1 +0 3913 1 +0 392 1 +0 3932 1 +0 3940 1 +0 3941 1 +0 3945 1 +0 3946 1 +0 3949 1 +0 3958 1 +0 3960 1 +0 3961 1 +0 3962 1 +0 3965 1 +0 3974 2 +0 3980 1 +0 3990 1 +0 4018 1 +0 4020 1 +0 4024 1 +0 4030 1 +0 4037 1 +0 4051 1 +0 4054 1 +0 4056 1 +0 4075 1 +0 4078 1 +0 4088 1 +0 41 1 +0 412 2 +0 417 1 +0 425 1 +0 443 1 +0 454 1 +0 455 1 +0 462 1 +0 470 1 +0 471 1 +0 481 1 +0 482 1 +0 485 1 +0 489 1 +0 49 1 +0 490 1 +0 491 1 +0 5 1 +0 500 1 +0 501 2 +0 504 1 +0 522 1 +0 523 1 +0 524 1 +0 530 1 +0 535 1 +0 579 1 +0 583 1 +0 584 1 +0 586 1 +0 587 1 +0 590 1 +0 597 1 +0 601 1 +0 612 1 +0 615 1 +0 618 1 +0 65 1 +0 650 1 +0 658 1 +0 66 1 +0 661 2 +0 663 1 +0 664 1 +0 677 1 +0 68 1 +0 681 1 +0 687 1 +0 688 1 +0 690 1 +0 691 1 +0 6923604860394528768 1 +0 6924820982050758656 1 +0 6926925215281774592 1 +0 6927260280037097472 1 +0 6928080429732536320 1 +0 6933001829416034304 1 +0 6933451028794925056 1 +0 6933731240564056064 1 +0 6934570741217755136 1 +0 694 1 +0 6947488599548215296 1 +0 695 1 +0 6960137166475911168 1 +0 6962726713896484864 1 +0 6963217546192322560 1 +0 6964585306125008896 1 +0 6967631925774639104 1 +0 6969599299897163776 1 +0 6974475559697768448 1 +0 6982145326341423104 1 +0 6987889924212203520 1 +0 6991316084916879360 1 +0 6996686091335884800 1 +0 7006803044329021440 1 +0 7013693841855774720 1 +0 7014537632150224896 1 +0 7017956982081404928 1 +0 7022349041913978880 1 +0 7027529814236192768 1 +0 7031339012080549888 1 +0 7039820685967343616 1 +0 7045967493826387968 1 +0 7049773031131283456 1 +0 7052226236896256000 1 +0 7054271419461812224 1 +0 7054938591408996352 1 +0 7060236714847412224 1 +0 7061498706968428544 1 +0 7061809776248545280 1 +0 7062382339142156288 1 +0 7062605127422894080 1 +0 7065344324692443136 1 +0 7068517339681259520 1 +0 7069729473166090240 1 +0 707 1 +0 7077311975029555200 1 +0 7078641038157643776 1 +0 7080269176324218880 1 +0 7084659344078970880 1 +0 7086206629592252416 1 +0 7091300332052062208 1 +0 7099005292698550272 1 +0 71 1 +0 7107604675626008576 1 +0 7125231541858205696 1 +0 7128222874437238784 1 +0 7130159794259353600 1 +0 7130306447560826880 1 +0 7149417430082027520 1 +0 7153922334283776000 1 +0 7157247449513484288 1 +0 7164349895861829632 1 +0 7165364563962191872 1 +0 7166263463731421184 1 +0 7175638927948562432 1 +0 7186401810812059648 1 +0 7195454019231834112 1 +0 7198687580227043328 1 +0 7199539820886958080 1 +0 7204802700490858496 1 +0 7210160489915236352 1 +0 7212016545671348224 1 +0 7212090742612467712 1 +0 7217123582035116032 1 +0 7220131672176058368 1 +0 7220581538170413056 1 +0 7223569671814987776 1 +0 7226360892091416576 1 +0 7229607057201127424 1 +0 723 1 +0 7231399302953377792 1 +0 7232273749940838400 1 +0 7235109456886816768 1 +0 7237310132329488384 1 +0 7238339720750948352 1 +0 724 1 +0 7242751359672631296 1 +0 7249443195032985600 1 +0 7250237407877382144 1 +0 7254710367022645248 1 +0 7255302164215013376 1 +0 7259955893466931200 1 +0 7260908278294560768 1 +0 7265141874315517952 1 +0 7266437490436341760 1 +0 7271786885641666560 1 +0 7271887863395459072 1 +0 7274777328897802240 1 +0 7291432593139507200 1 +0 7295502697317097472 1 +0 7295926343524163584 1 +0 7296164580491075584 1 +0 7299197687217856512 1 +0 73 1 +0 7304839835188609024 1 +0 7308289763456000000 1 +0 7309156463509061632 1 +0 7310869618402910208 1 +0 7319711402123149312 1 +0 7333512171174223872 1 +0 7339426767877390336 1 +0 7343171468838567936 1 +0 7344029858387820544 1 +0 7345991518378442752 1 +0 7347732772348870656 1 +0 7348598907182800896 1 +0 735 1 +0 7354813692542304256 1 +0 7359004378440146944 1 +0 736 1 +0 7368920486374989824 1 +0 7370078518278397952 1 +0 7370803940448305152 1 +0 7375521127126089728 1 +0 7376467688511455232 1 +0 7378993334503694336 1 +0 738 1 +0 7381659098423926784 1 +0 7384150968511315968 1 +0 7386087924003676160 1 +0 7391208370547269632 1 +0 7393308503950548992 1 +0 7394967727502467072 1 +0 7401968422230032384 1 +0 7410096605330227200 1 +0 7410872053689794560 1 +0 7411793502161182720 1 +0 7412924364686458880 1 +0 7414865343000322048 1 +0 7418271723644403712 1 +0 743 1 +0 7432428551399669760 1 +0 7432998950057975808 1 +0 7436133434239229952 1 +0 7440265908266827776 1 +0 7450416810848313344 1 +0 7452756603516190720 1 +0 7454442625055145984 1 +0 7454632396542074880 1 +0 7461153404961128448 1 +0 7471208109437304832 1 +0 7473537548003352576 1 +0 7486884806277611520 1 +0 7487338208419823616 1 +0 7487538600082554880 1 +0 7490717730239250432 1 +0 7491898395977523200 1 +0 7492436934952574976 1 +0 7497276415392407552 1 +0 7497306924248834048 1 +0 7500716020874674176 1 +0 7514552840617558016 1 +0 7517159036469575680 1 +0 7524958388842078208 1 +0 7528074274555305984 1 +0 7528211148397944832 1 +0 7534042483076857856 1 +0 7534145866886782976 1 +0 7534549597202194432 1 +0 7545689659010949120 1 +0 7548958830580563968 1 +0 7549858023389003776 1 +0 7555301305375858688 1 +0 7566273236152721408 1 +0 7569249672628789248 1 +0 7570474972934488064 1 +0 7573530789362262016 1 +0 7575087487730196480 1 +0 7581052107944361984 1 +0 7581614118458335232 1 +0 7584007864107778048 1 +0 7592440105065308160 1 +0 7593521922173419520 1 +0 7596563216912211968 1 +0 7599019810193211392 1 +0 7608447395949109248 1 +0 7614435638888210432 1 +0 7620183559667081216 1 +0 7621013099259527168 1 +0 7625728883085025280 1 +0 7626715182847090688 1 +0 763 1 +0 7637152193832886272 1 +0 7647481735646363648 1 +0 7648729477297987584 1 +0 7652123583449161728 1 +0 7659279803863146496 1 +0 7662037650719850496 1 +0 7675009476762918912 1 +0 7678790769408172032 1 +0 7682327310082531328 1 +0 7686992843032010752 1 +0 7689489436826804224 1 +0 7690986322714066944 1 +0 7691062622443044864 1 +0 7696737688942567424 1 +0 7697541332524376064 1 +0 7700734109530767360 1 +0 7701723309715685376 1 +0 7705445437881278464 1 +0 7710447533880614912 1 +0 7718825401976684544 1 +0 7720187583697502208 1 +0 7731443941834678272 1 +0 7735566678126616576 1 +0 774 1 +0 7741854854673367040 1 +0 7746402369011277824 1 +0 7747874976739016704 1 +0 7748799008146366464 1 +0 7752740515534422016 1 +0 7753359568986636288 1 +0 7753882935005880320 1 +0 7761834341179375616 1 +0 7762823913046556672 1 +0 7765456790394871808 1 +0 7768984605670604800 1 +0 7775034125776363520 1 +0 7778936842502275072 1 +0 7779486624537370624 1 +0 7779735136559579136 1 +0 7782245855193874432 1 +0 7784169796350730240 1 +0 7784489776013295616 1 +0 779 1 +0 7790728456522784768 1 +0 7792036342592348160 1 +0 7794244032613703680 1 +0 78 1 +0 780 1 +0 7800332581637259264 1 +0 7801697837312884736 1 +0 7818464507324121088 1 +0 782 1 +0 7823874904139849728 1 +0 784 1 +0 7843804446688264192 1 +0 7844258063629852672 1 +0 7845953007588401152 1 +0 7857878068300898304 1 +0 7868367829080506368 1 +0 7870277756614623232 1 +0 7871189141676998656 1 +0 7871554728617025536 1 +0 7874764415950176256 1 +0 7885697257930588160 1 +0 7888238729321496576 1 +0 789 1 +0 7892026679115554816 1 +0 7892281003266408448 1 +0 7898670840507031552 1 +0 7909645665163804672 1 +0 7917494645725765632 1 +0 7919597361814577152 1 +0 7921639119138070528 1 +0 7922443154272395264 1 +0 7926898770090491904 1 +0 7933040277013962752 1 +0 7936149988210212864 1 +0 7944741547145502720 1 +0 7947544013461512192 1 +0 7948803266578161664 1 +0 7955126053367119872 1 +0 7961515985722605568 1 +0 7961909238130270208 1 +0 797 1 +0 7983789401706094592 1 +0 7989119273552158720 1 +0 7989160253372817408 1 +0 7997694023324975104 1 +0 7998357471114969088 1 +0 7998687089080467456 1 +0 80 1 +0 8000440057238052864 1 +0 8002769767000145920 1 +0 8004633750273925120 1 +0 8011181697250631680 1 +0 8011602724663336960 1 +0 8014986215157530624 1 +0 8017403886247927808 1 +0 803 1 +0 8045070943673671680 1 +0 8048726769133592576 1 +0 8059284960252731392 1 +0 8069531888205086720 1 +0 8071961599867387904 1 +0 8073733016154431488 1 +0 8079573715140485120 1 +0 808 1 +0 8087737899452432384 1 +0 809 1 +0 8091421389575282688 1 +0 8099215208813903872 1 +0 8100036735858401280 1 +0 8109381965028548608 1 +0 8111757081791733760 1 +0 8113585123802529792 1 +0 8116738401948377088 1 +0 812 1 +0 8120593157178228736 1 +0 8129551357032259584 1 +0 8135164922674872320 1 +0 8142241016679735296 1 +0 8143462899383345152 1 +0 8144552446127972352 1 +0 8145745969573666816 1 +0 8145750910080745472 1 +0 8146288732715196416 1 +0 8146492373537660928 1 +0 8148211378319933440 1 +0 815 1 +0 8150115791664340992 1 +0 8156018594610790400 1 +0 8156782979767238656 1 +0 8160569434550403072 1 +0 8160662610166194176 1 +0 8163948965373386752 1 +0 8168742078705262592 1 +0 8169878743136043008 1 +0 8171188598958407680 1 +0 8183233196086214656 1 +0 8184799300477943808 1 +0 8190539859890601984 1 +0 8190967051000659968 1 +0 8192304692696383488 1 +0 8195103847607967744 1 +0 8199513544090730496 1 +0 820 2 +0 8201303040648052736 1 +0 8201491077550874624 1 +0 8208354137450766336 1 +0 8210813831744118784 1 +0 8213810702473183232 1 +0 8219326436390821888 1 +0 8220104397160169472 1 +0 8221561626658881536 1 +0 8222714144797368320 1 +0 8223732800007864320 1 +0 823 1 +0 8230371298967609344 1 +0 8235179243092090880 1 +0 8244041599171862528 1 +0 8254763178969915392 1 +0 8268875586442256384 1 +0 8269730157217062912 1 +0 8272001752345690112 1 +0 8279056098670198784 1 +0 8282648443538710528 1 +0 8283099811330506752 1 +0 8286706213485297664 1 +0 8287522765741301760 1 +0 8290014929764040704 1 +0 8290944180915871744 1 +0 8294315622451740672 1 +0 8295110846998233088 1 +0 83 1 +0 8302473563519950848 1 +0 8316336224427483136 1 +0 8323460620425330688 1 +0 8325227661920133120 1 +0 8332670681629106176 1 +0 8333523087360901120 1 +0 8337549596011102208 1 +0 8345435427356090368 1 +0 835 1 +0 8351163199364390912 1 +0 8362046808797306880 1 +0 8365058996333953024 1 +0 8367680396909404160 1 +0 8368012468775608320 1 +0 837 1 +0 8371939471056470016 1 +0 8372408423196270592 1 +0 8372588378498777088 1 +0 8374321007870836736 1 +0 8376440110255243264 1 +0 8383159090746204160 1 +0 8388363436324085760 1 +0 8391407951622815744 1 +0 8391785334471589888 1 +0 8396433451610652672 1 +0 8398862954249560064 1 +0 8407869317250220032 1 +0 8410599906334097408 1 +0 8411494452500930560 1 +0 8415171956168417280 1 +0 8416121695917498368 1 +0 8417381121663746048 1 +0 8419958579638157312 1 +0 8424515140664360960 1 +0 8435912708683087872 1 +0 845 1 +0 8451612303224520704 1 +0 8454154705460666368 1 +0 8455496814886002688 1 +0 8457906374051020800 1 +0 8461498293348065280 1 +0 8463868417649524736 1 +0 8467976965865799680 1 +0 8470141334513098752 1 +0 8472429318602268672 1 +0 8473699639908261888 1 +0 8487573502287478784 1 +0 8489584373231919104 1 +0 8489735221193138176 1 +0 85 1 +0 8501910015960735744 1 +0 8508401924853850112 1 +0 8509508263705477120 1 +0 8514851182589771776 1 +0 8514979402185596928 1 +0 8515682078777081856 1 +0 8518454006987948032 1 +0 8519937082746634240 1 +0 8523972434954510336 1 +0 8524940073536954368 1 +0 8525336514806317056 1 +0 8525894870444638208 1 +0 8532016240026279936 1 +0 8536948829863198720 1 +0 8540237852367446016 1 +0 8543177193114779648 1 +0 8547243497773457408 1 +0 8551446856960942080 1 +0 8553195689344991232 1 +0 8554899472487596032 1 +0 8555933456197828608 1 +0 8555948987770511360 1 +0 8557218322962644992 1 +0 8558000156325707776 1 +0 8560526613401714688 1 +0 8569030475428511744 1 +0 8570983266408103936 1 +0 8571268359622172672 1 +0 8573305425181941760 1 +0 8577096957495025664 1 +0 8579974641030365184 1 +0 8583916402383601664 1 +0 8613562211893919744 1 +0 8625937019655200768 1 +0 8631515095562887168 1 +0 8637720762289659904 1 +0 8639254009546055680 1 +0 8641221723991433216 1 +0 8643198489997254656 1 +0 8644602243484803072 1 +0 8649296591032172544 1 +0 8652485812846567424 1 +0 8656571350884048896 1 +0 8660248367767076864 1 +0 8665969966920990720 1 +0 8666178591503564800 1 +0 8677632093825916928 1 +0 8677794924343164928 1 +0 868 1 +0 8682955459667951616 1 +0 8687042963221159936 1 +0 8688483860094599168 1 +0 8693036785094565888 1 +0 8697823501349609472 1 +0 8698055291501543424 1 +0 8708232769657815040 1 +0 8708845895460577280 1 +0 871 1 +0 8714829359200747520 1 +0 8716401555586727936 1 +0 8720504651219001344 1 +0 8723248113030782976 1 +0 873 1 +0 8731960288562044928 1 +0 8734584858442498048 1 +0 8736061027343859712 1 +0 874 1 +0 8752150411997356032 1 +0 8759089349412847616 1 +0 8759184090543857664 1 +0 8760285623204290560 1 +0 8761174805938331648 1 +0 8769199243315814400 1 +0 8773222500321361920 1 +0 8775009214012456960 1 +0 8779073705407963136 1 +0 8779711700787298304 1 +0 878 1 +0 8780196485890555904 1 +0 8782900615468302336 1 +0 8783241818558193664 1 +0 8785153741735616512 1 +0 8792059919353348096 1 +0 8793387410919038976 1 +0 8795069490394882048 1 +0 8806507556248731648 1 +0 8808467247666241536 1 +0 8811693967537774592 1 +0 8815398225009967104 1 +0 8817665768680906752 1 +0 8822384228057604096 1 +0 8825059717746376704 1 +0 8829545979081744384 1 +0 883 1 +0 8836228556823977984 1 +0 8837420822750314496 1 +0 8849475396952514560 1 +0 8850055384477401088 1 +0 8853989376829833216 1 +0 8854495099223375872 1 +0 8854677881758162944 1 +0 8854715632851345408 1 +0 8856674723376668672 1 +0 8868529429494071296 1 +0 8871707618793996288 1 +0 8875745082589929472 1 +0 888 1 +0 8895174927321243648 1 +0 8896237972875370496 1 +0 8897901899039473664 1 +0 8899122608190930944 1 +0 8900180888218329088 1 +0 8900351886974279680 1 +0 8900545829211299840 1 +0 8905330479248064512 1 +0 8910706980937261056 1 +0 8920344895701393408 1 +0 8920533610804609024 1 +0 8927691194719174656 1 +0 8928133990107881472 1 +0 8935252708196999168 1 +0 8936639033158410240 1 +0 8939431770838810624 1 +0 8945004737083555840 1 +0 8945302550165004288 1 +0 8962097525980225536 1 +0 8972161729142095872 1 +0 8979012655944220672 1 +0 898 2 +0 8983857919580209152 1 +0 8983912573761167360 1 +0 8984935029383389184 1 +0 8987827141270880256 1 +0 8991071342495531008 1 +0 8991442360387584000 1 +0 8994608999945125888 1 +0 8995562121346260992 1 +0 8996824426131390464 1 +0 9000633029632499712 1 +0 9001907486943993856 1 +0 9005866015985713152 1 +0 9016280522993975296 1 +0 9020143715350814720 1 +0 9023663198045544448 1 +0 9030480306789818368 1 +0 9038087402564657152 1 +0 9040958359122640896 1 +0 9043089884440068096 1 +0 9048002942653710336 1 +0 9048297564833079296 1 +0 9050032047355125760 1 +0 9053187076403060736 1 +0 9054887854393950208 1 +0 9062227900376203264 1 +0 9064847977742032896 1 +0 9067985867711291392 1 +0 9073672806863790080 1 +0 9075404705968840704 1 +0 9078604269481148416 1 +0 908 1 +0 9083076230151864320 1 +0 9083704659251798016 1 +0 9084402694981533696 1 +0 9085381906890203136 1 +0 9085434340468473856 1 +0 9086905513121890304 1 +0 9089435102788009984 1 +0 9091082386452684800 1 +0 9091085792947666944 1 +0 9094945190752903168 1 +0 9096395849845194752 1 +0 91 1 +0 9104574294205636608 1 +0 9107991000536498176 1 +0 9112400579327483904 1 +0 9114850402293882880 1 +0 9116137265342169088 1 +0 9117063974299148288 1 +0 9119046173224370176 1 +0 9123116008004288512 1 +0 913 1 +0 9131533983989358592 1 +0 9132009829414584320 1 +0 9136234417125007360 1 +0 9136548192574529536 1 +0 9139805788041134080 1 +0 914 1 +0 9148071980848742400 1 +0 9149216169284091904 1 +0 9165199002069458944 1 +0 9169248521377374208 1 +0 917 1 +0 9174894805640142848 1 +0 918 1 +0 9180098147855769600 1 +0 9182828596851990528 1 +0 9185458640237641728 1 +0 9185952983951343616 1 +0 9188173682239275008 1 +0 919 1 +0 9190466190353661952 1 +0 9191943992860327936 1 +0 9194388393453060096 1 +0 9199741683232399360 1 +0 9207107990561972224 1 +0 9207927479837319168 1 +0 9209153648361848832 1 +0 921 1 +0 9211455920344088576 1 +0 922 1 +0 923 1 +0 927 1 +0 928 1 +0 939 1 +0 94 1 +0 945 1 +0 947 1 +0 950 2 +0 958 1 +0 961 1 +0 965 1 +0 967 1 +0 976 1 +0 979 1 +0 982 1 +0 987 1 +0 997 1 +0 999 1 +0 NULL 83 +1 NULL 2000 diff --git ql/src/test/results/clientpositive/llap/vector_grouping_sets.q.out ql/src/test/results/clientpositive/llap/vector_grouping_sets.q.out index a84da2c..9dd55b8 100644 --- ql/src/test/results/clientpositive/llap/vector_grouping_sets.q.out +++ ql/src/test/results/clientpositive/llap/vector_grouping_sets.q.out @@ -170,10 +170,11 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 1, ConstantVectorExpression(val 0) -> 29:long + keyExpressions: col 1, ConstantVectorExpression(val 0) -> 31:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: s_store_id (type: string), 0 (type: int) mode: hash outputColumnNames: _col0, _col1 @@ -214,8 +215,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [] keys: KEY._col0 (type: string), KEY._col1 (type: int) mode: mergepartial outputColumnNames: _col0 @@ -304,10 +306,11 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 1, ConstantVectorExpression(val 0) -> 29:long + keyExpressions: col 1, ConstantVectorExpression(val 0) -> 31:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: _col0 (type: string), 0 (type: int) mode: hash outputColumnNames: _col0, _col1 @@ -348,8 +351,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [] keys: KEY._col0 (type: string), KEY._col1 (type: int) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/llap/vector_include_no_sel.q.out ql/src/test/results/clientpositive/llap/vector_include_no_sel.q.out index f5cbe53..c179d1c 100644 --- ql/src/test/results/clientpositive/llap/vector_include_no_sel.q.out +++ ql/src/test/results/clientpositive/llap/vector_include_no_sel.q.out @@ -255,13 +255,14 @@ STAGE PLANS: Group By Operator aggregations: count(1) Group By Vectorization: - aggregators: VectorUDAFCount(ConstantVectorExpression(val 1) -> 25:long) -> bigint + aggregators: VectorUDAFCount(ConstantVectorExpression(val 1) -> 27:long) -> bigint className: VectorGroupByOperator groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -302,8 +303,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/llap/vector_inner_join.q.out ql/src/test/results/clientpositive/llap/vector_inner_join.q.out index 3e2ed6f..2bdbe59 100644 --- ql/src/test/results/clientpositive/llap/vector_inner_join.q.out +++ ql/src/test/results/clientpositive/llap/vector_inner_join.q.out @@ -308,8 +308,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 diff --git ql/src/test/results/clientpositive/llap/vector_join30.q.out ql/src/test/results/clientpositive/llap/vector_join30.q.out index 6b5e604..8176a23 100644 --- ql/src/test/results/clientpositive/llap/vector_join30.q.out +++ ql/src/test/results/clientpositive/llap/vector_join30.q.out @@ -83,13 +83,14 @@ STAGE PLANS: Group By Operator aggregations: sum(hash(_col2,_col3)) Group By Vectorization: - aggregators: VectorUDAFSumLong(VectorUDFAdaptor(hash(_col2,_col3)) -> 3:int) -> bigint + aggregators: VectorUDAFSumLong(VectorUDFAdaptor(hash(_col2,_col3)) -> 5:int) -> bigint className: VectorGroupByOperator groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -172,8 +173,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -279,13 +281,14 @@ STAGE PLANS: Group By Operator aggregations: sum(hash(_col2,_col3)) Group By Vectorization: - aggregators: VectorUDAFSumLong(VectorUDFAdaptor(hash(_col2,_col3)) -> 4:int) -> bigint + aggregators: VectorUDAFSumLong(VectorUDFAdaptor(hash(_col2,_col3)) -> 6:int) -> bigint className: VectorGroupByOperator groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -361,8 +364,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -503,13 +507,14 @@ STAGE PLANS: Group By Operator aggregations: sum(hash(_col2,_col3)) Group By Vectorization: - aggregators: VectorUDAFSumLong(VectorUDFAdaptor(hash(_col2,_col3)) -> 2:int) -> bigint + aggregators: VectorUDAFSumLong(VectorUDFAdaptor(hash(_col2,_col3)) -> 4:int) -> bigint className: VectorGroupByOperator groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -549,8 +554,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -673,13 +679,14 @@ STAGE PLANS: Group By Operator aggregations: sum(hash(_col2,_col3)) Group By Vectorization: - aggregators: VectorUDAFSumLong(VectorUDFAdaptor(hash(_col2,_col3)) -> 2:int) -> bigint + aggregators: VectorUDAFSumLong(VectorUDFAdaptor(hash(_col2,_col3)) -> 4:int) -> bigint className: VectorGroupByOperator groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -804,8 +811,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1016,7 +1024,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1042,8 +1049,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1254,7 +1262,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1280,8 +1287,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1492,7 +1500,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1518,8 +1525,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1730,7 +1738,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1756,8 +1763,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/llap/vector_leftsemi_mapjoin.q.out ql/src/test/results/clientpositive/llap/vector_leftsemi_mapjoin.q.out index c02f879..174def6 100644 --- ql/src/test/results/clientpositive/llap/vector_leftsemi_mapjoin.q.out +++ ql/src/test/results/clientpositive/llap/vector_leftsemi_mapjoin.q.out @@ -3392,6 +3392,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -3505,6 +3507,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -3620,6 +3624,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -3730,6 +3736,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -3848,6 +3856,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -3932,6 +3942,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -4045,6 +4057,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -4155,6 +4169,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -4293,6 +4309,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -4419,6 +4437,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -4554,6 +4574,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -4677,6 +4699,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkMultiKeyOperator @@ -4798,6 +4822,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -4828,6 +4854,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -4963,6 +4991,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -5105,6 +5135,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -5233,6 +5265,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -5379,6 +5413,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -5527,6 +5563,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -5702,6 +5740,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkLongOperator @@ -5865,6 +5905,8 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH Reduce Sink Vectorization: className: VectorReduceSinkStringOperator @@ -6002,8 +6044,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -6199,8 +6246,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -6398,8 +6450,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -6597,8 +6654,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col1 (type: int), _col1 (type: int) mode: hash outputColumnNames: _col0, _col1 @@ -6799,8 +6861,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -6938,8 +7005,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -7140,8 +7212,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -7339,8 +7416,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -7590,8 +7672,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -7800,8 +7887,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -8052,8 +8144,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -8259,8 +8356,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -8467,8 +8569,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -8529,8 +8636,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -8759,8 +8871,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -8984,8 +9101,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -9195,8 +9317,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -9440,8 +9567,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -9687,8 +9819,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -9988,8 +10125,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -10257,8 +10399,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: string) mode: hash outputColumnNames: _col0 @@ -10417,8 +10564,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -10617,8 +10769,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -10819,8 +10976,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -11021,8 +11183,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col1 (type: int), _col1 (type: int) mode: hash outputColumnNames: _col0, _col1 @@ -11226,8 +11393,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -11365,8 +11537,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -11570,8 +11747,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -11772,8 +11954,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -12029,8 +12216,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -12242,8 +12434,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -12494,8 +12691,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -12704,8 +12906,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -12912,8 +13119,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -12974,8 +13186,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -13204,8 +13421,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -13429,8 +13651,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -13640,8 +13867,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -13885,8 +14117,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -14132,8 +14369,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -14439,8 +14681,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -14711,8 +14958,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: string) mode: hash outputColumnNames: _col0 @@ -14871,8 +15123,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -15071,8 +15328,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -15273,8 +15535,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -15475,8 +15742,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col1 (type: int), _col1 (type: int) mode: hash outputColumnNames: _col0, _col1 @@ -15680,8 +15952,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -15819,8 +16096,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -16024,8 +16306,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -16226,8 +16513,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -16483,8 +16775,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -16696,8 +16993,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -16948,8 +17250,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -17158,8 +17465,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -17366,8 +17678,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -17428,8 +17745,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -17658,8 +17980,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -17883,8 +18210,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -18094,8 +18426,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -18339,8 +18676,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -18586,8 +18928,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -18893,8 +19240,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -19165,8 +19517,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: _col0 (type: string) mode: hash outputColumnNames: _col0 diff --git ql/src/test/results/clientpositive/llap/vector_mapjoin_reduce.q.out ql/src/test/results/clientpositive/llap/vector_mapjoin_reduce.q.out index e6d444b..5c578fb 100644 --- ql/src/test/results/clientpositive/llap/vector_mapjoin_reduce.q.out +++ ql/src/test/results/clientpositive/llap/vector_mapjoin_reduce.q.out @@ -48,8 +48,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: l_partkey (type: int) mode: hash outputColumnNames: _col0 @@ -146,8 +147,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -188,8 +190,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0 @@ -321,8 +324,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: l_partkey (type: int) mode: hash outputColumnNames: _col0 @@ -420,8 +424,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 3 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: _col0 (type: int), _col1 (type: int) mode: hash outputColumnNames: _col0, _col1 @@ -462,8 +467,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [] keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0 diff --git ql/src/test/results/clientpositive/llap/vector_mapjoin_slot_number.q.out ql/src/test/results/clientpositive/llap/vector_mapjoin_slot_number.q.out new file mode 100644 index 0000000..d90edcf --- /dev/null +++ ql/src/test/results/clientpositive/llap/vector_mapjoin_slot_number.q.out @@ -0,0 +1,6679 @@ +PREHOOK: query: create table vectortab2k( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' +STORED AS TEXTFILE +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@vectortab2k +POSTHOOK: query: create table vectortab2k( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' +STORED AS TEXTFILE +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@vectortab2k +PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/vectortab2k' OVERWRITE INTO TABLE vectortab2k +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@vectortab2k +POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/vectortab2k' OVERWRITE INTO TABLE vectortab2k +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@vectortab2k +PREHOOK: query: create table vectortab2korc( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +STORED AS ORC +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@vectortab2korc +POSTHOOK: query: create table vectortab2korc( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +STORED AS ORC +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@vectortab2korc +PREHOOK: query: INSERT INTO TABLE vectortab2korc SELECT * FROM vectortab2k +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2k +PREHOOK: Output: default@vectortab2korc +POSTHOOK: query: INSERT INTO TABLE vectortab2korc SELECT * FROM vectortab2k +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2k +POSTHOOK: Output: default@vectortab2korc +POSTHOOK: Lineage: vectortab2korc.b SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:b, type:bigint, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.bo SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:bo, type:boolean, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.d SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:d, type:double, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.dc SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:dc, type:decimal(38,18), comment:null), ] +POSTHOOK: Lineage: vectortab2korc.dt SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:dt, type:date, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.f SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:f, type:float, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.i SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:i, type:int, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.s SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:s, type:string, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.s2 SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:s2, type:string, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.si SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:si, type:smallint, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.t SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:t, type:tinyint, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.ts SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:ts, type:timestamp, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.ts2 SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:ts2, type:timestamp, comment:null), ] +PREHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(10, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(10, b), b having count(*) > 1 order by slot_count desc, slot_number +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(10, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(10, b), b having count(*) > 1 order by slot_count desc, slot_number +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +1075 3 120 +1165 2 204 +1368 2 263 +1371 2 260 +1481 2 414 +1509 2 432 +1537 2 621 +154 2 146 +1701 2 706 +1719 2 721 +1777 2 659 +1856 2 826 +19 2 18 +1914 2 771 +1948 3 1002 +2020 2 917 +213 2 217 +2193 2 9 +2285 2 114 +2325 2 406 +2393 2 478 +2412 2 488 +2463 3 277 +2485 2 317 +2560 2 692 +2619 2 652 +263 2 277 +268 2 286 +2715 2 551 +2786 2 601 +2803 3 585 +2843 2 956 +2855 2 899 +2897 2 1010 +2933 2 980 +296 2 312 +2968 2 822 +3021 2 870 +3060 2 860 +3079 2 223 +3159 2 138 +3418 2 405 +346 2 333 +3462 3 325 +3467 2 328 +3555 2 294 +3588 2 760 +3622 2 728 +3725 2 632 +3728 2 612 +3770 2 588 +3781 2 564 +383 2 362 +3866 2 1013 +3974 2 865 +412 2 390 +501 2 489 +661 2 697 +820 2 769 +898 2 957 +950 2 906 +NULL 83 NULL +PREHOOK: query: select count(*) as slot_count, vector_mapjoin_slot_number(10, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(10, b) order by slot_count desc, slot_number +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select count(*) as slot_count, vector_mapjoin_slot_number(10, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(10, b) order by slot_count desc, slot_number +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +1 0 +1 1000 +1 1003 +1 1004 +1 1006 +1 1009 +1 1011 +1 1012 +1 1016 +1 1017 +1 105 +1 106 +1 107 +1 11 +1 110 +1 111 +1 113 +1 121 +1 122 +1 128 +1 129 +1 13 +1 131 +1 137 +1 143 +1 145 +1 148 +1 15 +1 153 +1 160 +1 165 +1 172 +1 173 +1 179 +1 183 +1 19 +1 190 +1 192 +1 193 +1 199 +1 20 +1 200 +1 201 +1 202 +1 206 +1 208 +1 210 +1 212 +1 221 +1 222 +1 23 +1 230 +1 232 +1 233 +1 234 +1 235 +1 237 +1 245 +1 246 +1 247 +1 256 +1 258 +1 259 +1 26 +1 269 +1 273 +1 274 +1 275 +1 276 +1 29 +1 298 +1 30 +1 300 +1 303 +1 311 +1 315 +1 321 +1 326 +1 336 +1 339 +1 343 +1 344 +1 345 +1 350 +1 351 +1 359 +1 36 +1 366 +1 367 +1 368 +1 386 +1 387 +1 388 +1 389 +1 398 +1 4 +1 401 +1 407 +1 408 +1 411 +1 413 +1 418 +1 420 +1 423 +1 425 +1 426 +1 427 +1 430 +1 431 +1 433 +1 437 +1 438 +1 44 +1 441 +1 444 +1 446 +1 448 +1 45 +1 453 +1 459 +1 46 +1 465 +1 467 +1 469 +1 474 +1 476 +1 480 +1 490 +1 491 +1 493 +1 498 +1 499 +1 500 +1 501 +1 505 +1 506 +1 508 +1 512 +1 516 +1 520 +1 522 +1 526 +1 529 +1 531 +1 533 +1 537 +1 54 +1 541 +1 546 +1 547 +1 548 +1 549 +1 553 +1 559 +1 561 +1 568 +1 57 +1 571 +1 574 +1 576 +1 577 +1 583 +1 584 +1 586 +1 590 +1 592 +1 598 +1 599 +1 600 +1 602 +1 603 +1 608 +1 610 +1 611 +1 613 +1 616 +1 62 +1 630 +1 635 +1 636 +1 641 +1 643 +1 644 +1 645 +1 646 +1 647 +1 649 +1 655 +1 663 +1 671 +1 678 +1 679 +1 682 +1 685 +1 687 +1 691 +1 698 +1 7 +1 70 +1 701 +1 704 +1 707 +1 711 +1 720 +1 727 +1 732 +1 733 +1 735 +1 737 +1 738 +1 743 +1 744 +1 75 +1 750 +1 752 +1 753 +1 755 +1 756 +1 758 +1 766 +1 767 +1 768 +1 772 +1 773 +1 780 +1 786 +1 79 +1 790 +1 791 +1 793 +1 794 +1 798 +1 804 +1 808 +1 809 +1 81 +1 811 +1 813 +1 818 +1 824 +1 838 +1 84 +1 847 +1 850 +1 853 +1 866 +1 87 +1 873 +1 874 +1 879 +1 88 +1 881 +1 883 +1 884 +1 885 +1 891 +1 903 +1 908 +1 918 +1 921 +1 93 +1 930 +1 947 +1 950 +1 955 +1 964 +1 968 +1 97 +1 970 +1 974 +1 976 +1 978 +1 979 +1 98 +1 981 +1 984 +1 987 +1 990 +1 992 +1 993 +1 996 +2 1 +2 1001 +2 1007 +2 101 +2 1021 +2 108 +2 109 +2 114 +2 115 +2 116 +2 119 +2 132 +2 135 +2 136 +2 139 +2 14 +2 142 +2 146 +2 151 +2 157 +2 159 +2 16 +2 162 +2 163 +2 164 +2 17 +2 174 +2 175 +2 177 +2 182 +2 184 +2 187 +2 188 +2 189 +2 196 +2 197 +2 205 +2 21 +2 214 +2 22 +2 224 +2 227 +2 231 +2 236 +2 239 +2 241 +2 243 +2 252 +2 255 +2 264 +2 279 +2 28 +2 280 +2 283 +2 284 +2 287 +2 290 +2 291 +2 293 +2 302 +2 306 +2 307 +2 309 +2 316 +2 319 +2 324 +2 330 +2 332 +2 337 +2 338 +2 34 +2 346 +2 348 +2 35 +2 352 +2 353 +2 354 +2 360 +2 362 +2 364 +2 37 +2 371 +2 373 +2 374 +2 375 +2 378 +2 38 +2 380 +2 395 +2 397 +2 402 +2 405 +2 41 +2 410 +2 419 +2 42 +2 424 +2 429 +2 436 +2 440 +2 442 +2 447 +2 449 +2 452 +2 454 +2 457 +2 461 +2 466 +2 468 +2 47 +2 475 +2 477 +2 48 +2 482 +2 484 +2 485 +2 486 +2 487 +2 496 +2 497 +2 50 +2 504 +2 507 +2 509 +2 51 +2 513 +2 514 +2 515 +2 525 +2 53 +2 530 +2 535 +2 543 +2 544 +2 552 +2 557 +2 558 +2 56 +2 560 +2 562 +2 563 +2 564 +2 569 +2 570 +2 575 +2 579 +2 58 +2 582 +2 595 +2 6 +2 604 +2 605 +2 61 +2 612 +2 614 +2 615 +2 618 +2 619 +2 620 +2 627 +2 628 +2 629 +2 634 +2 650 +2 654 +2 66 +2 660 +2 661 +2 662 +2 666 +2 667 +2 668 +2 670 +2 676 +2 68 +2 683 +2 688 +2 69 +2 694 +2 696 +2 700 +2 705 +2 706 +2 709 +2 715 +2 716 +2 717 +2 730 +2 736 +2 740 +2 746 +2 748 +2 749 +2 751 +2 754 +2 757 +2 760 +2 761 +2 763 +2 765 +2 774 +2 778 +2 779 +2 78 +2 782 +2 789 +2 792 +2 797 +2 80 +2 800 +2 806 +2 810 +2 814 +2 815 +2 817 +2 821 +2 822 +2 830 +2 833 +2 836 +2 839 +2 840 +2 843 +2 844 +2 845 +2 846 +2 848 +2 85 +2 852 +2 854 +2 864 +2 870 +2 871 +2 877 +2 882 +2 886 +2 887 +2 892 +2 895 +2 898 +2 909 +2 91 +2 916 +2 922 +2 925 +2 926 +2 927 +2 928 +2 929 +2 933 +2 936 +2 941 +2 943 +2 944 +2 952 +2 953 +2 96 +2 962 +2 967 +2 975 +2 985 +2 988 +2 99 +2 995 +3 1018 +3 103 +3 104 +3 112 +3 117 +3 124 +3 125 +3 127 +3 134 +3 138 +3 150 +3 152 +3 154 +3 161 +3 168 +3 169 +3 185 +3 186 +3 195 +3 204 +3 207 +3 211 +3 213 +3 215 +3 219 +3 220 +3 223 +3 24 +3 244 +3 25 +3 253 +3 262 +3 265 +3 27 +3 292 +3 294 +3 295 +3 296 +3 297 +3 299 +3 301 +3 310 +3 317 +3 32 +3 322 +3 33 +3 333 +3 335 +3 340 +3 347 +3 349 +3 379 +3 384 +3 390 +3 393 +3 40 +3 403 +3 404 +3 414 +3 415 +3 417 +3 428 +3 43 +3 434 +3 439 +3 455 +3 463 +3 473 +3 478 +3 489 +3 49 +3 5 +3 503 +3 511 +3 519 +3 527 +3 555 +3 556 +3 567 +3 578 +3 585 +3 588 +3 591 +3 593 +3 594 +3 596 +3 60 +3 606 +3 607 +3 617 +3 624 +3 633 +3 637 +3 639 +3 64 +3 640 +3 656 +3 657 +3 659 +3 664 +3 67 +3 675 +3 680 +3 681 +3 686 +3 689 +3 697 +3 699 +3 702 +3 71 +3 713 +3 714 +3 719 +3 724 +3 725 +3 728 +3 74 +3 741 +3 747 +3 76 +3 764 +3 770 +3 775 +3 783 +3 787 +3 788 +3 795 +3 796 +3 807 +3 816 +3 820 +3 829 +3 835 +3 849 +3 851 +3 858 +3 859 +3 860 +3 862 +3 863 +3 865 +3 875 +3 876 +3 880 +3 888 +3 89 +3 893 +3 899 +3 901 +3 910 +3 911 +3 912 +3 913 +3 92 +3 924 +3 931 +3 932 +3 934 +3 935 +3 938 +3 939 +3 940 +3 942 +3 948 +3 95 +3 951 +3 958 +3 960 +3 965 +3 969 +3 971 +3 972 +3 982 +3 991 +3 998 +3 999 +4 10 +4 1013 +4 1015 +4 1019 +4 1020 +4 130 +4 155 +4 158 +4 166 +4 170 +4 176 +4 18 +4 191 +4 198 +4 2 +4 225 +4 250 +4 260 +4 263 +4 272 +4 281 +4 286 +4 312 +4 318 +4 323 +4 329 +4 334 +4 358 +4 369 +4 381 +4 385 +4 400 +4 406 +4 416 +4 421 +4 451 +4 456 +4 472 +4 524 +4 528 +4 536 +4 538 +4 540 +4 550 +4 551 +4 572 +4 581 +4 601 +4 623 +4 632 +4 665 +4 673 +4 692 +4 695 +4 742 +4 745 +4 759 +4 77 +4 771 +4 802 +4 82 +4 828 +4 834 +4 841 +4 855 +4 856 +4 857 +4 868 +4 890 +4 897 +4 9 +4 902 +4 906 +4 915 +4 917 +4 94 +4 949 +4 956 +5 1010 +5 1022 +5 120 +5 126 +5 266 +5 305 +5 308 +5 320 +5 325 +5 327 +5 328 +5 342 +5 356 +5 376 +5 391 +5 412 +5 432 +5 462 +5 488 +5 494 +5 502 +5 573 +5 622 +5 652 +5 653 +5 669 +5 672 +5 684 +5 769 +5 803 +5 826 +5 842 +5 86 +5 878 +5 900 +5 920 +5 923 +5 937 +5 957 +5 980 +5 994 +6 1002 +6 217 +6 443 +6 52 +6 521 +6 539 +6 721 +6 963 +7 621 +8 277 +83 NULL +PREHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(10, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(10, b), b order by slot_count desc, slot_number +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(10, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(10, b), b order by slot_count desc, slot_number +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 1 62 +-6919476845891313664 1 621 +-6920172215209426944 1 955 +-6921654334727036928 1 473 +-6933565857643814912 1 220 +-6934304742087655424 1 606 +-6935038507792801792 1 979 +-6935548339131138048 1 836 +-6938706403992854528 1 614 +-6941777546186579968 1 521 +-6947955278050181120 1 969 +-6951350560260784128 1 659 +-6957946688477274112 1 684 +-6960947572095770624 1 111 +-6962271229404348416 1 555 +-6962292590214234112 1 963 +-6968771079156654080 1 434 +-6968892545529896960 1 876 +-6970396058557005824 1 982 +-6974654664348033024 1 442 +-6975459232300236800 1 842 +-6986178228432322560 1 89 +-6988811476286873600 1 527 +-6988970700649168896 1 815 +-6992217501957169152 1 266 +-6997233584896229376 1 509 +-7000925438663041024 1 623 +-7003696402314215424 1 296 +-7011425384222244864 1 353 +-7017212700635545600 1 211 +-7020852530219171840 1 811 +-7030489936116252672 1 309 +-7035132060308643840 1 621 +-7036607470351654912 1 845 +-7037375807670501376 1 527 +-7037638331316469760 1 540 +-7038455462786334720 1 614 +-7040248820505149440 1 185 +-7041362811802148864 1 10 +-7042183597114081280 1 416 +-7046180371529351168 1 680 +-7049618574399692800 1 255 +-7052619594823221248 1 263 +-7055619148037554176 1 557 +-7055760785575665664 1 828 +-7057750467944931328 1 337 +-7058986555327307776 1 33 +-7063777488249085952 1 56 +-7078068944081002496 1 371 +-7079898537463537664 1 60 +-7081500255163727872 1 53 +-7083646746411720704 1 287 +-7085247548404178944 1 880 +-7093825013581979648 1 878 +-7094189393339678720 1 408 +-7094827141662539776 1 884 +-7104310188119834624 1 617 +-7106210529681350656 1 826 +-7109790267244814336 1 185 +-7115054815375073280 1 328 +-7120456708338688000 1 994 +-7127548949860818944 1 417 +-7138415011665043456 1 796 +-7139677575412686848 1 441 +-7140008543769042944 1 22 +-7144791190333546496 1 28 +-7145585429014888448 1 745 +-7147490721376591872 1 71 +-7152177800841502720 1 572 +-7155539549555105792 1 223 +-7158472098920390656 1 452 +-7159700138947862528 1 538 +-7161165959057334272 1 676 +-7162299524557471744 1 451 +-7172594404186693632 1 563 +-7185369278665605120 1 512 +-7192529627893858304 1 514 +-7194281951646187520 1 6 +-7195217207163166720 1 496 +-7198372044947275776 1 232 +-7199983995864711168 1 923 +-7201085131997011968 1 593 +-7209060152494817280 1 730 +-7213775605408178176 1 419 +-7220731681653604352 1 775 +-7221474017515347968 1 719 +-7228589258642194432 1 539 +-7240213957902663680 1 683 +-7242345057866285056 1 926 +-7245872320493322240 1 958 +-7246123871306244096 1 560 +-7255010240787030016 1 661 +-7255686273677328384 1 820 +-7262049693594943488 1 320 +-7262384251828518912 1 6 +-7262798781688651776 1 318 +-7263060340185194496 1 297 +-7265998318110711808 1 94 +-7266719102957125632 1 1022 +-7270034223527993344 1 1013 +-7273590251991162880 1 637 +-7273694358642851840 1 120 +-7276111129363046400 1 893 +-7287583262310350848 1 262 +-7292078334519894016 1 219 +-7296096276653391872 1 698 +-7303847963918393344 1 622 +-7319315187617587200 1 333 +-7326863346317598720 1 906 +-7328087811698909184 1 25 +-7329767178250018816 1 713 +-7329807949048193024 1 443 +-7330203470474985472 1 892 +-7330413050756235264 1 964 +-7333278178640953344 1 915 +-7333362172439035904 1 525 +-7340231535789727744 1 684 +-7344146703223496704 1 607 +-7344947507044466688 1 815 +-7345562788132315136 1 27 +-7356685674003021824 1 957 +-7357888618985873408 1 283 +-7362189611124563968 1 814 +-7366430883634929664 1 272 +-7378096180613840896 1 751 +-7380731416973295616 1 0 +-7395343938785738752 1 207 +-7395553021620731904 1 191 +-7399631791131074560 1 850 +-7404052043914526720 1 277 +-7404057145074712576 1 524 +-7409317158045442048 1 851 +-7409653086454030336 1 252 +-7412431471807283200 1 505 +-7413317118463164416 1 369 +-7419068456205385728 1 694 +-7420448501073051648 1 621 +-7425160895830573056 1 308 +-7429331808102899712 1 859 +-7433265617153343488 1 539 +-7442593976514420736 1 920 +-7444070205513138176 1 764 +-7451660755269853184 1 960 +-7453525026342617088 1 243 +-7455898404374921216 1 749 +-7456869587112255488 1 835 +-7461750143936897024 1 515 +-7464270453557993472 1 593 +-7469660864676585472 1 949 +-7470307155642245120 1 423 +-7476082621253402624 1 897 +-7483435388852559872 1 369 +-7488345684795342848 1 323 +-7488415863027367936 1 552 +-7494411162675691520 1 656 +-7496839341561954304 1 449 +-7497303453253402624 1 499 +-7500200359698907136 1 316 +-7501803640821456896 1 863 +-7506254246954500096 1 250 +-7507424948896415744 1 280 +-7507578199583694848 1 778 +-7510418793070075904 1 134 +-7511202710200885248 1 397 +-7511952204985049088 1 1011 +-7512289590991544320 1 205 +-7512297136103800832 1 807 +-7515996202498473984 1 269 +-7524170566881329152 1 700 +-7526793959592140800 1 40 +-7528526815026692096 1 591 +-7532751268425261056 1 985 +-7535857766791577600 1 276 +-7535958203887706112 1 857 +-7536330682873937920 1 332 +-7540104552219860992 1 802 +-7541860097718902784 1 769 +-7542857121910046720 1 929 +-7547245548870025216 1 234 +-7547432761381339136 1 204 +-7551394356730339328 1 71 +-7557017910095650816 1 834 +-7558524160894427136 1 537 +-7571293705217687552 1 219 +-7571957778022178816 1 761 +-7572262898020278272 1 173 +-7572962089372991488 1 69 +-7576194692683563008 1 878 +-7593363318079610880 1 985 +-7594824008626372608 1 60 +-7598782894648565760 1 170 +-7600138468036386816 1 385 +-7603467428164009984 1 892 +-7603569103205916672 1 342 +-7610137349734883328 1 709 +-7611584069753552896 1 672 +-7612455481940246528 1 803 +-7612466483992051712 1 555 +-7616522969329262592 1 53 +-7617860842651017216 1 934 +-7623047151287754752 1 911 +-7623359796281999360 1 541 +-7623405558242500608 1 451 +-7624057992767782912 1 620 +-7629401308029976576 1 848 +-7637494527844343808 1 101 +-7637755520917741568 1 1015 +-7642381493746483200 1 27 +-7647020450676146176 1 418 +-7661192563533062144 1 1019 +-7661250850555633664 1 675 +-7663293054873812992 1 893 +-7665186441284968448 1 682 +-7668388017287020544 1 95 +-7669169138124275712 1 312 +-7673901622181953536 1 771 +-7679894005808693248 1 639 +-7686220526274502656 1 935 +-7687052294777208832 1 286 +-7692192232238678016 1 724 +-7695491171376291840 1 970 +-7700203302632210432 1 539 +-7703540456272994304 1 763 +-7707242953271500800 1 326 +-7707867749256445952 1 125 +-7708932208121225216 1 999 +-7709958788604936192 1 502 +-7712425776235274240 1 401 +-7720966287634112512 1 835 +-7739424919198187520 1 104 +-7744462446680375296 1 503 +-7751265769984491520 1 725 +-7751427073017544704 1 369 +-7753051494275432448 1 295 +-7759238919361888256 1 293 +-7759425383684849664 1 1002 +-7772064021830574080 1 85 +-7773957003968675840 1 555 +-7777884099756122112 1 24 +-7778829032042790912 1 169 +-7779270198785875968 1 923 +-7782344916178796544 1 669 +-7784419454650843136 1 277 +-7792903881635938304 1 551 +-7793447076762345472 1 335 +-7797149520019062784 1 851 +-7797151404935618560 1 184 +-7800879252150779904 1 842 +-7802538500225777664 1 459 +-7804116532814151680 1 329 +-7805985795815342080 1 622 +-7811060170911375360 1 412 +-7818454479651135488 1 444 +-7819437864839495680 1 938 +-7822452149325094912 1 443 +-7824788571789279232 1 847 +-7827420207675105280 1 297 +-7831320202242228224 1 912 +-7831595638727565312 1 843 +-7833618000492109824 1 415 +-7835907977757245440 1 403 +-7838598833900584960 1 942 +-7840338174858199040 1 307 +-7845896959112658944 1 116 +-7848043121524228096 1 266 +-7849504559236210688 1 1019 +-7858505678035951616 1 125 +-7866079955473989632 1 563 +-7867219225874571264 1 519 +-7868306678534193152 1 264 +-7873753603299540992 1 923 +-7875953567586451456 1 868 +-7877598807023386624 1 937 +-7878145001776152576 1 305 +-7879864376629567488 1 86 +-7881262505761710080 1 485 +-7881351200983613440 1 665 +-7883252982752665600 1 681 +-7884460946615984128 1 579 +-7888051992910274560 1 573 +-7892780594910871552 1 544 +-7893577088764174336 1 176 +-7894382303337832448 1 352 +-7895991410072928256 1 629 +-7902517224300036096 1 306 +-7903158849011843072 1 189 +-7904188195431661568 1 873 +-7907355742053883904 1 960 +-7910019233726242816 1 783 +-7911421221625077760 1 323 +-7915999634274369536 1 546 +-7916510129632296960 1 502 +-7928062266382778368 1 733 +-7928440849566146560 1 684 +-7939634346485858304 1 68 +-7949309059286163456 1 915 +-7949445503604604928 1 859 +-7953426740065312768 1 521 +-7964801953178091520 1 468 +-7966960765508280320 1 759 +-7978782649203228672 1 52 +-7989766326847807488 1 277 +-7998947380180819968 1 595 +-8007017894942638080 1 214 +-8013397854633648128 1 624 +-8016589197379289088 1 198 +-8017791189288869888 1 570 +-8018511948141748224 1 215 +-8021859935185928192 1 593 +-8022573309127000064 1 980 +-8023708819947323392 1 994 +-8028275725610909696 1 61 +-8028910243475038208 1 972 +-8030058711611629568 1 924 +-8034414142083170304 1 513 +-8046189486447017984 1 521 +-8046238369820344320 1 462 +-8047774491688255488 1 225 +-8051395538179063808 1 42 +-8051587217208967168 1 553 +-8051871680800120832 1 231 +-8054581198284668928 1 56 +-8067243114610532352 1 902 +-8070535484085895168 1 42 +-8076479329071955968 1 186 +-8082793390939193344 1 932 +-8084716955963252736 1 427 +-8086577583338061824 1 725 +-8088337436168830976 1 107 +-8099313480512716800 1 509 +-8103788088118018048 1 453 +-8104684579106914304 1 364 +-8108693586698706944 1 416 +-8115963579415650304 1 334 +-8117838333114212352 1 224 +-8122639684164501504 1 603 +-8127494999848919040 1 127 +-8131997716860526592 1 43 +-8136227554401107968 1 981 +-8140349174954893312 1 525 +-8142667274351345664 1 1022 +-8147405381260345344 1 94 +-8158011642485825536 1 1006 +-8161047750470279168 1 25 +-8172827216441573376 1 699 +-8182421179156905984 1 35 +-8191825921746305024 1 807 +-8194062064124362752 1 660 +-8203008052020879360 1 250 +-8203075743525806080 1 220 +-8205148279289085952 1 266 +-8214462866994339840 1 462 +-8219876839318716416 1 578 +-8232763638546694144 1 528 +-8240034910581153792 1 244 +-8240684139569233920 1 281 +-8243487285852766208 1 992 +-8244116388227104768 1 496 +-8244657976255889408 1 381 +-8260340354454503424 1 746 +-8269917980278980608 1 1015 +-8270479187688816640 1 334 +-8275337702906757120 1 158 +-8280276629934981120 1 292 +-8293833565967810560 1 686 +-8297230235506343936 1 197 +-8300526097982226432 1 804 +-8300764106868350976 1 971 +-8302817097848307712 1 502 +-8317591428117274624 1 158 +-8318886086186213376 1 312 +-8322751250650218496 1 774 +-8330233444291084288 1 406 +-8335810316927213568 1 195 +-8340523561480437760 1 40 +-8345065519816695808 1 926 +-8347088645602050048 1 782 +-8357136656913686528 1 438 +-8358130693961195520 1 134 +-8359839265974165504 1 202 +-8368269352975982592 1 842 +-8368487814665895936 1 340 +-8369487968903897088 1 903 +-8379109122834997248 1 788 +-8379964450833367040 1 876 +-8384695077413412864 1 688 +-8387347109404286976 1 486 +-8387536830476820480 1 621 +-8395998375405912064 1 596 +-8400045653258444800 1 166 +-8411282676082565120 1 52 +-8418913260807217152 1 721 +-8425998949410889728 1 52 +-8426531414463545344 1 239 +-8430283518005846016 1 488 +-8430370933326536704 1 165 +-8431492599012163584 1 9 +-8438554249514491904 1 35 +-8445801063348281344 1 660 +-8453491903284994048 1 253 +-8454143651040444416 1 376 +-8465978403747037184 1 412 +-8469607298426437632 1 320 +-8471480409335513088 1 771 +-8485389240529354752 1 130 +-8488247955875618816 1 575 +-8490382417169408000 1 802 +-8494118409594650624 1 852 +-8503342882470019072 1 378 +-8503573595507761152 1 636 +-8507279516485566464 1 455 +-8509547439040757760 1 888 +-8518060755719585792 1 639 +-8518258741831680000 1 911 +-8521578237232529408 1 637 +-8522878384019169280 1 649 +-8523434203900674048 1 186 +-8525212657458348032 1 1017 +-8535957064499879936 1 250 +-8536369662934401024 1 233 +-8543982423727128576 1 24 +-8544299740525461504 1 617 +-8545239748068941824 1 305 +-8546758906409312256 1 839 +-8552393882631389184 1 963 +-8555709701170552832 1 702 +-8559008501282832384 1 605 +-8559252110266564608 1 410 +-8562524688907485184 1 342 +-8566856504746352640 1 844 +-8566940231897874432 1 721 +-8570933074545745920 1 393 +-8572823448513445888 1 358 +-8572949572756774912 1 528 +-8581765103969312768 1 272 +-8581979259158929408 1 540 +-8584520406368493568 1 528 +-8585134536083660800 1 236 +-8585966098173870080 1 434 +-8593419958317056000 1 393 +-8603817012434198528 1 891 +-8604758220106014720 1 878 +-8607195685207408640 1 94 +-8615168537390571520 1 841 +-8619303037130301440 1 347 +-8623238306523824128 1 109 +-8623965248051789824 1 126 +-8632237187473088512 1 788 +-8649711322250362880 1 998 +-8651641150831362048 1 732 +-8654433008222797824 1 117 +-8654797319350927360 1 421 +-8658387566611996672 1 748 +-8659643752269242368 1 159 +-8659692318743314432 1 309 +-8660149447361404928 1 17 +-8664374244449050624 1 1020 +-8664806103426252800 1 1018 +-8665218198816497664 1 252 +-8665764757143658496 1 463 +-8675661101615489024 1 475 +-8675892979328212992 1 161 +-8683802826440105984 1 948 +-8688153842294595584 1 995 +-8689606130068611072 1 948 +-8694818694700048384 1 92 +-8696162322976997376 1 816 +-8703026916864802816 1 33 +-8704234107608203264 1 51 +-8705403811649355776 1 606 +-8710298418608619520 1 411 +-8714995808835444736 1 431 +-8719510423723155456 1 759 +-8730803262481580032 1 836 +-8731068123910987776 1 302 +-8746702976270385152 1 378 +-8754966081778565120 1 864 +-8754992450211692544 1 652 +-8756989568739835904 1 21 +-8760655406971863040 1 750 +-8763062627136864256 1 968 +-8768744394742235136 1 716 +-8782213262837530624 1 397 +-8783777723063099392 1 798 +-8789178184387641344 1 52 +-8797972842900307968 1 213 +-8807361476639629312 1 2 +-8813211231120031744 1 115 +-8831091081349758976 1 49 +-8832750849949892608 1 740 +-8833019327569510400 1 709 +-8835408234247168000 1 662 +-8836899523028312064 1 279 +-8843859708698583040 1 866 +-8844949406948671488 1 272 +-8845239510002753536 1 196 +-8852770376039219200 1 742 +-8853553406533894144 1 975 +-8856151919723003904 1 187 +-8856821118526734336 1 244 +-8857335871148171264 1 665 +-8858063395050110976 1 717 +-8859107121649893376 1 172 +-8866442231663067136 1 335 +-8870186814744420352 1 684 +-8870673219965001728 1 619 +-8875546987176206336 1 747 +-8877053610728161280 1 152 +-8877431933441327104 1 150 +-8879742387365429248 1 963 +-8881446757271846912 1 844 +-8887058200926093312 1 672 +-8892963883085578240 1 920 +-8896045754034978816 1 43 +-8914039133569400832 1 391 +-8916987977485312000 1 828 +-8922409715403112448 1 933 +-8923529803981905920 1 846 +-8927968289860370432 1 153 +-8930307926221807616 1 292 +-8938849835283677184 1 4 +-8940944155843461120 1 454 +-8941201923743703040 1 775 +-8946656952763777024 1 103 +-8948335470186373120 1 942 +-8959796625322680320 1 856 +-8961059046745669632 1 358 +-8962547695651323904 1 793 +-8965578088652095488 1 632 +-8989473881707921408 1 236 +-8990843030306717696 1 714 +-8992599250893979648 1 67 +-8996954350906294272 1 380 +-9002912355472736256 1 77 +-9004892183139811328 1 927 +-9008631121684832256 1 221 +-9012093603044245504 1 530 +-9013952631912325120 1 197 +-9014145341570203648 1 583 +-9022154842129547264 1 77 +-9032650742739836928 1 596 +-9049720998034137088 1 520 +-9051477157204770816 1 472 +-9058029636530003968 1 868 +-9066993118333706240 1 573 +-9071565764086521856 1 592 +-9075302542655684608 1 429 +-9075486079396069376 1 586 +-9078662294976061440 1 749 +-9079801920509001728 1 694 +-9080568167841226752 1 168 +-9080956291212132352 1 888 +-9084940280061485056 1 795 +-9088239683374350336 1 887 +-9091113592821972992 1 910 +-9095689235523264512 1 982 +-9101953184875757568 1 637 +-9102482277760983040 1 108 +-9105358806324035584 1 610 +-9105701280936501248 1 950 +-9109392978217484288 1 928 +-9117959922369060864 1 802 +-9126793997498957824 1 13 +-9136398397785948160 1 879 +-9142610685888192512 1 787 +-9145593811310010368 1 37 +-9148197394287779840 1 432 +-9149719074367946752 1 145 +-9157613004431998976 1 877 +-9175038118837149696 1 449 +-9175279464813223936 1 1003 +-9178166810751909888 1 103 +-9187662685618348032 1 1019 +-9189155542884474880 1 126 +-9203804401302323200 1 944 +-9203942396257984512 1 868 +-9206329156028112896 1 759 +-9210275791460499456 1 669 +-9213132862973829120 1 179 +-9215144824304721920 1 301 +-9218875542187065344 1 769 +-9219066990552760320 1 400 +1021 1 965 +1030 1 78 +1032 1 64 +1039 1 71 +1046 1 95 +1048 1 81 +1053 1 84 +1055 1 86 +1058 1 104 +1065 1 99 +1066 1 96 +1074 1 121 +1075 3 120 +108 1 106 +1086 1 117 +1093 1 9 +1094 1 10 +1095 1 11 +1099 1 7 +1115 1 22 +112 1 119 +1127 1 41 +1128 1 38 +1132 1 34 +1134 1 32 +1141 1 58 +1142 1 57 +1145 1 54 +1153 1 192 +1157 1 196 +1158 1 199 +1165 2 204 +1168 1 208 +1177 1 217 +1187 1 224 +1189 1 230 +1198 1 237 +120 1 127 +1201 1 243 +1217 1 132 +1234 1 150 +1243 1 159 +1247 1 155 +1252 1 163 +1261 1 170 +1270 1 176 +1280 1 346 +1282 1 344 +1286 1 348 +1287 1 349 +1290 1 336 +1291 1 337 +1299 1 328 +130 1 139 +1307 1 320 +1312 1 376 +1316 1 380 +1321 1 369 +1337 1 352 +1341 1 356 +1342 1 359 +1343 1 358 +1345 1 287 +1346 1 284 +135 1 142 +1366 1 265 +1368 2 263 +1371 2 260 +138 1 131 +1386 1 310 +1398 1 299 +1409 1 466 +1422 1 477 +1423 1 476 +1436 1 462 +1439 1 461 +1447 1 502 +1450 1 507 +1454 1 511 +1458 1 482 +1462 1 486 +1466 1 490 +1470 1 494 +1477 1 402 +1481 2 414 +1489 1 391 +1493 1 387 +1495 1 385 +1501 1 395 +1506 1 439 +1508 1 433 +1509 2 432 +1518 1 443 +1520 1 420 +1521 1 421 +1524 1 416 +1530 1 430 +1537 2 621 +154 2 146 +1541 1 617 +1542 1 618 +1545 1 613 +1556 1 633 +1559 1 634 +1561 1 628 +1566 1 627 +1604 1 556 +1606 1 558 +1608 1 544 +1613 1 549 +1614 1 550 +1620 1 573 +1638 1 524 +1641 1 515 +1643 1 513 +1648 1 539 +1651 1 536 +1667 1 742 +1671 1 738 +1674 1 751 +1676 1 745 +1678 1 747 +168 1 163 +1681 1 757 +169 1 162 +1693 1 761 +1701 2 706 +1704 1 719 +1719 2 721 +1726 1 728 +1728 1 673 +1745 1 689 +1751 1 695 +1752 1 696 +1769 1 650 +1774 1 653 +1775 1 652 +1777 2 659 +1780 1 662 +1781 1 663 +1785 1 667 +1786 1 664 +1788 1 670 +1789 1 671 +1791 1 669 +1796 1 890 +1806 1 880 +181 1 191 +1811 1 876 +1813 1 874 +1826 1 862 +1827 1 863 +1835 1 855 +1837 1 849 +1845 1 840 +1846 1 843 +1856 2 826 +1862 1 828 +1863 1 829 +1864 1 818 +1866 1 816 +187 1 177 +1870 1 820 +188 1 182 +1880 1 803 +1890 1 794 +1892 1 796 +1899 1 787 +19 2 18 +1906 1 779 +1910 1 783 +1914 2 771 +1926 1 1009 +1937 1 999 +1940 1 994 +1941 1 995 +1948 3 1002 +1955 1 982 +1965 1 984 +1972 1 960 +1981 1 969 +1983 1 971 +1987 1 944 +1990 1 949 +1995 1 952 +1999 1 956 +2001 1 931 +2002 1 928 +2004 1 934 +2009 1 939 +2011 1 937 +2013 1 943 +2016 1 913 +2017 1 912 +2020 2 917 +2025 1 920 +2026 1 923 +2029 1 924 +203 1 198 +204 1 193 +2046 1 910 +2056 1 152 +2067 1 130 +2072 1 137 +2073 1 136 +2085 1 183 +2089 1 187 +2092 1 190 +2105 1 170 +2106 1 169 +2108 1 175 +213 2 217 +2131 1 198 +2138 1 207 +2140 1 201 +2144 1 246 +2155 1 253 +2177 1 24 +2179 1 26 +2180 1 29 +2183 1 30 +2186 1 19 +2187 1 18 +2189 1 20 +2193 2 9 +2194 1 10 +22 1 23 +2201 1 1 +2205 1 5 +2214 1 61 +2217 1 50 +2218 1 49 +2223 1 52 +2227 1 41 +2229 1 47 +2232 1 34 +2241 1 92 +2244 1 89 +2255 1 82 +2262 1 74 +2264 1 68 +2270 1 66 +2274 1 125 +2277 1 122 +2279 1 120 +228 1 235 +2283 1 116 +2285 2 114 +2295 1 105 +2306 1 384 +2320 1 403 +2323 1 400 +2325 2 406 +2335 1 412 +2341 1 421 +2348 1 428 +2358 1 439 +236 1 227 +2373 1 451 +238 1 225 +2386 1 469 +2393 2 478 +2398 1 473 +2400 1 484 +2410 1 494 +2412 2 488 +2420 1 497 +2426 1 511 +2434 1 265 +244 1 250 +2461 1 279 +2463 3 277 +2465 1 296 +2469 1 300 +2475 1 290 +2476 1 293 +2485 2 317 +2487 1 319 +2492 1 308 +2494 1 310 +2502 1 329 +2506 1 325 +2509 1 322 +2512 1 350 +2514 1 348 +2515 1 349 +2517 1 347 +2524 1 338 +2533 1 360 +2539 1 358 +2540 1 353 +255 1 241 +2551 1 379 +2553 1 373 +2560 2 692 +2563 1 695 +2565 1 689 +2569 1 701 +2579 1 678 +2580 1 673 +2587 1 686 +259 1 273 +2599 1 657 +2607 1 665 +2608 1 647 +2619 2 652 +2625 1 753 +2626 1 754 +263 2 277 +2637 1 765 +2647 1 742 +2649 1 744 +2662 1 724 +2663 1 725 +2675 1 704 +268 2 286 +2680 1 715 +2682 1 713 +2688 1 573 +2689 1 572 +2692 1 569 +2700 1 561 +2712 1 548 +2714 1 550 +2715 2 551 +2719 1 547 +2724 1 539 +2725 1 538 +2735 1 528 +2745 1 519 +275 1 256 +2752 1 633 +2762 1 627 +2772 1 620 +2776 1 608 +2786 2 601 +279 1 260 +2790 1 605 +2791 1 604 +2803 3 585 +2805 1 591 +281 1 266 +2810 1 576 +2811 1 577 +2816 1 934 +2821 1 931 +2824 1 942 +2835 1 948 +2842 1 957 +2843 2 956 +2846 1 953 +2847 1 952 +2848 1 900 +2850 1 902 +2855 2 899 +2862 1 906 +2878 1 923 +2886 1 996 +289 1 305 +2897 2 1010 +2900 1 1015 +2903 1 1012 +2905 1 1018 +2911 1 1020 +2915 1 963 +2919 1 967 +2933 2 980 +2938 1 987 +294 1 310 +2941 1 988 +2942 1 991 +296 2 312 +2962 1 828 +2968 2 822 +2971 1 821 +2977 1 780 +2979 1 782 +2984 1 773 +2986 1 775 +2988 1 769 +2991 1 770 +3002 1 790 +3006 1 786 +301 1 317 +302 1 318 +3021 2 870 +3024 1 890 +3029 1 895 +3031 1 893 +3036 1 886 +3043 1 842 +3054 1 839 +3055 1 838 +3058 1 858 +3059 1 859 +3060 2 860 +3067 1 851 +3071 1 855 +3073 1 217 +3079 2 223 +3083 1 211 +3084 1 212 +3089 1 200 +3094 1 207 +3103 1 198 +311 1 294 +3111 1 253 +3118 1 244 +3119 1 245 +3144 1 148 +3147 1 151 +3159 2 138 +3163 1 134 +3174 1 184 +3183 1 177 +3190 1 169 +3197 1 162 +3199 1 160 +320 1 342 +3203 1 82 +3206 1 87 +3208 1 89 +3212 1 93 +3213 1 92 +3231 1 79 +3232 1 115 +3235 1 112 +3244 1 127 +3245 1 126 +3248 1 98 +3249 1 99 +3253 1 103 +3255 1 101 +3263 1 109 +3286 1 2 +3300 1 51 +3307 1 60 +3322 1 44 +3333 1 463 +3352 1 467 +336 1 327 +3365 1 493 +3366 1 494 +3397 1 395 +34 1 32 +3401 1 391 +3407 1 385 +3409 1 414 +341 1 322 +3418 2 405 +342 1 321 +3421 1 402 +3430 1 426 +3443 1 446 +3446 1 443 +345 1 334 +3456 1 323 +346 2 333 +3460 1 327 +3462 3 325 +3467 2 328 +347 1 332 +3472 1 338 +3478 1 340 +3493 1 356 +350 1 329 +3507 1 371 +3510 1 374 +3512 1 376 +3533 1 266 +3534 1 265 +3541 1 275 +3542 1 272 +355 1 375 +3554 1 295 +3555 2 294 +3563 1 302 +3566 1 299 +3567 1 298 +3568 1 308 +3579 1 319 +3588 2 760 +3599 1 755 +3606 1 747 +3608 1 741 +3609 1 740 +361 1 381 +3613 1 736 +3622 2 728 +3625 1 727 +3630 1 720 +3637 1 714 +364 1 376 +3648 1 696 +3663 1 695 +3664 1 681 +367 1 379 +3672 1 673 +3673 1 672 +3677 1 676 +3680 1 666 +3682 1 664 +3690 1 656 +3691 1 657 +3701 1 654 +3702 1 653 +3703 1 652 +3707 1 640 +3722 1 639 +3724 1 633 +3725 2 632 +3728 2 612 +3739 1 623 +3747 1 596 +3749 1 594 +375 1 354 +3755 1 604 +3763 1 581 +3764 1 578 +3769 1 591 +3770 2 588 +378 1 367 +3781 2 564 +3789 1 572 +379 1 366 +3810 1 529 +3812 1 535 +3823 1 540 +3824 1 514 +383 2 362 +3830 1 516 +3835 1 521 +3841 1 1007 +3848 1 998 +3858 1 1021 +3860 1 1019 +3866 2 1013 +3874 1 974 +3879 1 971 +388 1 415 +3887 1 963 +3901 1 976 +3904 1 938 +3907 1 937 +391 1 412 +3910 1 940 +3911 1 941 +3913 1 931 +392 1 403 +3932 1 951 +3940 1 908 +3941 1 909 +3945 1 897 +3946 1 898 +3949 1 901 +3958 1 927 +3960 1 913 +3961 1 912 +3962 1 915 +3965 1 916 +3974 2 865 +3980 1 875 +3990 1 880 +4018 1 854 +4020 1 848 +4024 1 860 +4030 1 858 +4037 1 806 +4051 1 817 +4054 1 820 +4056 1 826 +4075 1 778 +4078 1 783 +4088 1 792 +41 1 43 +412 2 390 +417 1 440 +425 1 432 +443 1 419 +454 1 473 +455 1 472 +462 1 465 +470 1 456 +471 1 457 +481 1 508 +482 1 511 +485 1 504 +489 1 500 +49 1 50 +490 1 503 +491 1 502 +5 1 5 +500 1 488 +501 2 489 +504 1 484 +522 1 558 +523 1 559 +524 1 552 +530 1 567 +535 1 562 +579 1 611 +583 1 615 +584 1 616 +586 1 618 +587 1 619 +590 1 622 +597 1 628 +601 1 632 +612 1 582 +615 1 581 +618 1 584 +65 1 69 +650 1 679 +658 1 702 +66 1 70 +661 2 697 +663 1 699 +664 1 692 +677 1 650 +68 1 64 +681 1 646 +687 1 640 +688 1 670 +690 1 668 +691 1 669 +6923604860394528768 1 472 +6924820982050758656 1 855 +6926925215281774592 1 797 +6927260280037097472 1 595 +6928080429732536320 1 666 +6933001829416034304 1 630 +6933451028794925056 1 601 +6933731240564056064 1 757 +6934570741217755136 1 376 +694 1 664 +6947488599548215296 1 875 +695 1 665 +6960137166475911168 1 902 +6962726713896484864 1 550 +6963217546192322560 1 901 +6964585306125008896 1 260 +6967631925774639104 1 885 +6969599299897163776 1 400 +6974475559697768448 1 856 +6982145326341423104 1 295 +6987889924212203520 1 424 +6991316084916879360 1 379 +6996686091335884800 1 135 +7006803044329021440 1 255 +7013693841855774720 1 210 +7014537632150224896 1 334 +7017956982081404928 1 533 +7022349041913978880 1 507 +7027529814236192768 1 849 +7031339012080549888 1 724 +7039820685967343616 1 166 +7045967493826387968 1 290 +7049773031131283456 1 477 +7052226236896256000 1 980 +7054271419461812224 1 846 +7054938591408996352 1 82 +7060236714847412224 1 653 +7061498706968428544 1 66 +7061809776248545280 1 863 +7062382339142156288 1 150 +7062605127422894080 1 1022 +7065344324692443136 1 622 +7068517339681259520 1 1010 +7069729473166090240 1 645 +707 1 746 +7077311975029555200 1 810 +7078641038157643776 1 417 +7080269176324218880 1 318 +7084659344078970880 1 890 +7086206629592252416 1 602 +7091300332052062208 1 320 +7099005292698550272 1 135 +71 1 67 +7107604675626008576 1 186 +7125231541858205696 1 152 +7128222874437238784 1 455 +7130159794259353600 1 853 +7130306447560826880 1 195 +7149417430082027520 1 830 +7153922334283776000 1 556 +7157247449513484288 1 488 +7164349895861829632 1 540 +7165364563962191872 1 764 +7166263463731421184 1 398 +7175638927948562432 1 82 +7186401810812059648 1 457 +7195454019231834112 1 166 +7198687580227043328 1 406 +7199539820886958080 1 315 +7204802700490858496 1 292 +7210160489915236352 1 833 +7212016545671348224 1 494 +7212090742612467712 1 124 +7217123582035116032 1 487 +7220131672176058368 1 957 +7220581538170413056 1 568 +7223569671814987776 1 413 +7226360892091416576 1 571 +7229607057201127424 1 672 +723 1 763 +7231399302953377792 1 174 +7232273749940838400 1 940 +7235109456886816768 1 717 +7237310132329488384 1 667 +7238339720750948352 1 949 +724 1 764 +7242751359672631296 1 994 +7249443195032985600 1 213 +7250237407877382144 1 772 +7254710367022645248 1 96 +7255302164215013376 1 112 +7259955893466931200 1 624 +7260908278294560768 1 281 +7265141874315517952 1 407 +7266437490436341760 1 364 +7271786885641666560 1 590 +7271887863395459072 1 342 +7274777328897802240 1 424 +7291432593139507200 1 21 +7295502697317097472 1 225 +7295926343524163584 1 535 +7296164580491075584 1 643 +7299197687217856512 1 949 +73 1 77 +7304839835188609024 1 841 +7308289763456000000 1 356 +7309156463509061632 1 765 +7310869618402910208 1 52 +7319711402123149312 1 356 +7333512171174223872 1 689 +7339426767877390336 1 47 +7343171468838567936 1 454 +7344029858387820544 1 789 +7345991518378442752 1 774 +7347732772348870656 1 474 +7348598907182800896 1 920 +735 1 759 +7354813692542304256 1 768 +7359004378440146944 1 661 +736 1 715 +7368920486374989824 1 384 +7370078518278397952 1 1016 +7370803940448305152 1 301 +7375521127126089728 1 195 +7376467688511455232 1 938 +7378993334503694336 1 49 +738 1 713 +7381659098423926784 1 890 +7384150968511315968 1 2 +7386087924003676160 1 258 +7391208370547269632 1 531 +7393308503950548992 1 962 +7394967727502467072 1 991 +7401968422230032384 1 45 +7410096605330227200 1 241 +7410872053689794560 1 388 +7411793502161182720 1 730 +7412924364686458880 1 683 +7414865343000322048 1 972 +7418271723644403712 1 741 +743 1 716 +7432428551399669760 1 161 +7432998950057975808 1 557 +7436133434239229952 1 297 +7440265908266827776 1 856 +7450416810848313344 1 443 +7452756603516190720 1 318 +7454442625055145984 1 451 +7454632396542074880 1 1 +7461153404961128448 1 381 +7471208109437304832 1 562 +7473537548003352576 1 214 +7486884806277611520 1 570 +7487338208419823616 1 581 +7487538600082554880 1 64 +7490717730239250432 1 1001 +7491898395977523200 1 154 +7492436934952574976 1 567 +7497276415392407552 1 536 +7497306924248834048 1 697 +7500716020874674176 1 543 +7514552840617558016 1 176 +7517159036469575680 1 436 +7524958388842078208 1 621 +7528074274555305984 1 327 +7528211148397944832 1 900 +7534042483076857856 1 925 +7534145866886782976 1 1022 +7534549597202194432 1 211 +7545689659010949120 1 951 +7548958830580563968 1 158 +7549858023389003776 1 86 +7555301305375858688 1 155 +7566273236152721408 1 330 +7569249672628789248 1 684 +7570474972934488064 1 462 +7573530789362262016 1 936 +7575087487730196480 1 551 +7581052107944361984 1 322 +7581614118458335232 1 386 +7584007864107778048 1 800 +7592440105065308160 1 130 +7593521922173419520 1 2 +7596563216912211968 1 915 +7599019810193211392 1 607 +7608447395949109248 1 330 +7614435638888210432 1 813 +7620183559667081216 1 259 +7621013099259527168 1 680 +7625728883085025280 1 958 +7626715182847090688 1 655 +763 1 721 +7637152193832886272 1 901 +7647481735646363648 1 188 +7648729477297987584 1 924 +7652123583449161728 1 28 +7659279803863146496 1 594 +7662037650719850496 1 967 +7675009476762918912 1 536 +7678790769408172032 1 130 +7682327310082531328 1 692 +7686992843032010752 1 871 +7689489436826804224 1 455 +7690986322714066944 1 108 +7691062622443044864 1 916 +7696737688942567424 1 217 +7697541332524376064 1 155 +7700734109530767360 1 941 +7701723309715685376 1 1021 +7705445437881278464 1 155 +7710447533880614912 1 522 +7718825401976684544 1 653 +7720187583697502208 1 578 +7731443941834678272 1 536 +7735566678126616576 1 588 +774 1 816 +7741854854673367040 1 222 +7746402369011277824 1 286 +7747874976739016704 1 104 +7748799008146366464 1 538 +7752740515534422016 1 830 +7753359568986636288 1 428 +7753882935005880320 1 735 +7761834341179375616 1 158 +7762823913046556672 1 97 +7765456790394871808 1 707 +7768984605670604800 1 711 +7775034125776363520 1 305 +7778936842502275072 1 641 +7779486624537370624 1 752 +7779735136559579136 1 958 +7782245855193874432 1 417 +7784169796350730240 1 205 +7784489776013295616 1 803 +779 1 829 +7790728456522784768 1 878 +7792036342592348160 1 351 +7794244032613703680 1 656 +78 1 74 +780 1 826 +7800332581637259264 1 27 +7801697837312884736 1 582 +7818464507324121088 1 900 +782 1 824 +7823874904139849728 1 308 +784 1 807 +7843804446688264192 1 75 +7844258063629852672 1 117 +7845953007588401152 1 58 +7857878068300898304 1 188 +7868367829080506368 1 1015 +7870277756614623232 1 864 +7871189141676998656 1 14 +7871554728617025536 1 128 +7874764415950176256 1 714 +7885697257930588160 1 299 +7888238729321496576 1 316 +789 1 802 +7892026679115554816 1 644 +7892281003266408448 1 225 +7898670840507031552 1 126 +7909645665163804672 1 883 +7917494645725765632 1 443 +7919597361814577152 1 281 +7921639119138070528 1 506 +7922443154272395264 1 899 +7926898770090491904 1 262 +7933040277013962752 1 673 +7936149988210212864 1 930 +7944741547145502720 1 770 +7947544013461512192 1 787 +7948803266578161664 1 384 +7955126053367119872 1 76 +7961515985722605568 1 539 +7961909238130270208 1 307 +797 1 810 +7983789401706094592 1 526 +7989119273552158720 1 700 +7989160253372817408 1 817 +7997694023324975104 1 877 +7998357471114969088 1 33 +7998687089080467456 1 623 +80 1 85 +8000440057238052864 1 247 +8002769767000145920 1 485 +8004633750273925120 1 168 +8011181697250631680 1 274 +8011602724663336960 1 283 +8014986215157530624 1 429 +8017403886247927808 1 472 +803 1 791 +8045070943673671680 1 157 +8048726769133592576 1 10 +8059284960252731392 1 835 +8069531888205086720 1 888 +8071961599867387904 1 806 +8073733016154431488 1 965 +8079573715140485120 1 921 +808 1 796 +8087737899452432384 1 219 +809 1 797 +8091421389575282688 1 482 +8099215208813903872 1 263 +8100036735858401280 1 821 +8109381965028548608 1 606 +8111757081791733760 1 227 +8113585123802529792 1 543 +8116738401948377088 1 478 +812 1 792 +8120593157178228736 1 687 +8129551357032259584 1 489 +8135164922674872320 1 421 +8142241016679735296 1 164 +8143462899383345152 1 766 +8144552446127972352 1 745 +8145745969573666816 1 951 +8145750910080745472 1 748 +8146288732715196416 1 416 +8146492373537660928 1 705 +8148211378319933440 1 462 +815 1 795 +8150115791664340992 1 623 +8156018594610790400 1 521 +8156782979767238656 1 154 +8160569434550403072 1 779 +8160662610166194176 1 789 +8163948965373386752 1 875 +8168742078705262592 1 994 +8169878743136043008 1 953 +8171188598958407680 1 461 +8183233196086214656 1 17 +8184799300477943808 1 291 +8190539859890601984 1 865 +8190967051000659968 1 428 +8192304692696383488 1 404 +8195103847607967744 1 110 +8199513544090730496 1 168 +820 2 769 +8201303040648052736 1 622 +8201491077550874624 1 654 +8208354137450766336 1 1000 +8210813831744118784 1 800 +8213810702473183232 1 917 +8219326436390821888 1 574 +8220104397160169472 1 862 +8221561626658881536 1 76 +8222714144797368320 1 139 +8223732800007864320 1 301 +823 1 770 +8230371298967609344 1 882 +8235179243092090880 1 191 +8244041599171862528 1 32 +8254763178969915392 1 721 +8268875586442256384 1 126 +8269730157217062912 1 686 +8272001752345690112 1 329 +8279056098670198784 1 281 +8282648443538710528 1 340 +8283099811330506752 1 325 +8286706213485297664 1 345 +8287522765741301760 1 262 +8290014929764040704 1 653 +8290944180915871744 1 36 +8294315622451740672 1 18 +8295110846998233088 1 80 +83 1 86 +8302473563519950848 1 456 +8316336224427483136 1 439 +8323460620425330688 1 814 +8325227661920133120 1 306 +8332670681629106176 1 480 +8333523087360901120 1 5 +8337549596011102208 1 834 +8345435427356090368 1 579 +835 1 881 +8351163199364390912 1 705 +8362046808797306880 1 491 +8365058996333953024 1 803 +8367680396909404160 1 742 +8368012468775608320 1 206 +837 1 887 +8371939471056470016 1 14 +8372408423196270592 1 882 +8372588378498777088 1 743 +8374321007870836736 1 599 +8376440110255243264 1 385 +8383159090746204160 1 412 +8388363436324085760 1 560 +8391407951622815744 1 767 +8391785334471589888 1 37 +8396433451610652672 1 962 +8398862954249560064 1 415 +8407869317250220032 1 521 +8410599906334097408 1 524 +8411494452500930560 1 375 +8415171956168417280 1 702 +8416121695917498368 1 77 +8417381121663746048 1 432 +8419958579638157312 1 808 +8424515140664360960 1 191 +8435912708683087872 1 487 +845 1 895 +8451612303224520704 1 910 +8454154705460666368 1 311 +8455496814886002688 1 76 +8457906374051020800 1 448 +8461498293348065280 1 935 +8463868417649524736 1 675 +8467976965865799680 1 624 +8470141334513098752 1 1010 +8472429318602268672 1 530 +8473699639908261888 1 176 +8487573502287478784 1 48 +8489584373231919104 1 291 +8489735221193138176 1 119 +85 1 80 +8501910015960735744 1 809 +8508401924853850112 1 1013 +8509508263705477120 1 680 +8514851182589771776 1 356 +8514979402185596928 1 745 +8515682078777081856 1 136 +8518454006987948032 1 635 +8519937082746634240 1 129 +8523972434954510336 1 594 +8524940073536954368 1 175 +8525336514806317056 1 975 +8525894870444638208 1 998 +8532016240026279936 1 871 +8536948829863198720 1 404 +8540237852367446016 1 939 +8543177193114779648 1 991 +8547243497773457408 1 342 +8551446856960942080 1 922 +8553195689344991232 1 67 +8554899472487596032 1 437 +8555933456197828608 1 575 +8555948987770511360 1 629 +8557218322962644992 1 124 +8558000156325707776 1 497 +8560526613401714688 1 598 +8569030475428511744 1 185 +8570983266408103936 1 166 +8571268359622172672 1 572 +8573305425181941760 1 856 +8577096957495025664 1 456 +8579974641030365184 1 91 +8583916402383601664 1 937 +8613562211893919744 1 573 +8625937019655200768 1 328 +8631515095562887168 1 788 +8637720762289659904 1 845 +8639254009546055680 1 324 +8641221723991433216 1 308 +8643198489997254656 1 475 +8644602243484803072 1 343 +8649296591032172544 1 699 +8652485812846567424 1 1020 +8656571350884048896 1 758 +8660248367767076864 1 48 +8665969966920990720 1 902 +8666178591503564800 1 868 +8677632093825916928 1 46 +8677794924343164928 1 1002 +868 1 852 +8682955459667951616 1 284 +8687042963221159936 1 1007 +8688483860094599168 1 264 +8693036785094565888 1 113 +8697823501349609472 1 400 +8698055291501543424 1 920 +8708232769657815040 1 231 +8708845895460577280 1 436 +871 1 855 +8714829359200747520 1 447 +8716401555586727936 1 886 +8720504651219001344 1 16 +8723248113030782976 1 213 +873 1 857 +8731960288562044928 1 170 +8734584858442498048 1 327 +8736061027343859712 1 695 +874 1 858 +8752150411997356032 1 795 +8759089349412847616 1 668 +8759184090543857664 1 956 +8760285623204290560 1 15 +8761174805938331648 1 741 +8769199243315814400 1 215 +8773222500321361920 1 442 +8775009214012456960 1 840 +8779073705407963136 1 354 +8779711700787298304 1 615 +878 1 862 +8780196485890555904 1 320 +8782900615468302336 1 685 +8783241818558193664 1 142 +8785153741735616512 1 736 +8792059919353348096 1 634 +8793387410919038976 1 999 +8795069490394882048 1 404 +8806507556248731648 1 607 +8808467247666241536 1 468 +8811693967537774592 1 217 +8815398225009967104 1 601 +8817665768680906752 1 132 +8822384228057604096 1 40 +8825059717746376704 1 393 +8829545979081744384 1 305 +883 1 834 +8836228556823977984 1 327 +8837420822750314496 1 381 +8849475396952514560 1 74 +8850055384477401088 1 425 +8853989376829833216 1 897 +8854495099223375872 1 456 +8854677881758162944 1 980 +8854715632851345408 1 182 +8856674723376668672 1 922 +8868529429494071296 1 803 +8871707618793996288 1 963 +8875745082589929472 1 841 +888 1 841 +8895174927321243648 1 640 +8896237972875370496 1 494 +8897901899039473664 1 189 +8899122608190930944 1 215 +8900180888218329088 1 339 +8900351886974279680 1 452 +8900545829211299840 1 347 +8905330479248064512 1 829 +8910706980937261056 1 346 +8920344895701393408 1 501 +8920533610804609024 1 972 +8927691194719174656 1 335 +8928133990107881472 1 16 +8935252708196999168 1 434 +8936639033158410240 1 900 +8939431770838810624 1 112 +8945004737083555840 1 569 +8945302550165004288 1 154 +8962097525980225536 1 466 +8972161729142095872 1 503 +8979012655944220672 1 373 +898 2 957 +8983857919580209152 1 323 +8983912573761167360 1 1010 +8984935029383389184 1 834 +8987827141270880256 1 878 +8991071342495531008 1 220 +8991442360387584000 1 965 +8994608999945125888 1 374 +8995562121346260992 1 88 +8996824426131390464 1 849 +9000633029632499712 1 538 +9001907486943993856 1 38 +9005866015985713152 1 324 +9016280522993975296 1 550 +9020143715350814720 1 917 +9023663198045544448 1 463 +9030480306789818368 1 157 +9038087402564657152 1 719 +9040958359122640896 1 360 +9043089884440068096 1 86 +9048002942653710336 1 681 +9048297564833079296 1 527 +9050032047355125760 1 239 +9053187076403060736 1 389 +9054887854393950208 1 25 +9062227900376203264 1 143 +9064847977742032896 1 296 +9067985867711291392 1 672 +9073672806863790080 1 854 +9075404705968840704 1 688 +9078604269481148416 1 519 +908 1 947 +9083076230151864320 1 842 +9083704659251798016 1 932 +9084402694981533696 1 174 +9085381906890203136 1 391 +9085434340468473856 1 756 +9086905513121890304 1 567 +9089435102788009984 1 524 +9091082386452684800 1 138 +9091085792947666944 1 737 +9094945190752903168 1 349 +9096395849845194752 1 900 +91 1 94 +9104574294205636608 1 447 +9107991000536498176 1 164 +9112400579327483904 1 978 +9114850402293882880 1 504 +9116137265342169088 1 280 +9117063974299148288 1 857 +9119046173224370176 1 410 +9123116008004288512 1 391 +913 1 943 +9131533983989358592 1 161 +9132009829414584320 1 657 +9136234417125007360 1 754 +9136548192574529536 1 913 +9139805788041134080 1 600 +914 1 940 +9148071980848742400 1 669 +9149216169284091904 1 833 +9165199002069458944 1 556 +9169248521377374208 1 675 +917 1 939 +9174894805640142848 1 151 +918 1 936 +9180098147855769600 1 303 +9182828596851990528 1 124 +9185458640237641728 1 95 +9185952983951343616 1 691 +9188173682239275008 1 368 +919 1 937 +9190466190353661952 1 390 +9191943992860327936 1 969 +9194388393453060096 1 440 +9199741683232399360 1 897 +9207107990561972224 1 857 +9207927479837319168 1 498 +9209153648361848832 1 581 +921 1 935 +9211455920344088576 1 78 +922 1 932 +923 1 933 +927 1 929 +928 1 925 +939 1 918 +94 1 91 +945 1 909 +947 1 911 +950 2 906 +958 1 898 +961 1 1018 +965 1 1022 +967 1 1020 +976 1 1002 +979 1 1001 +982 1 1004 +987 1 993 +997 1 988 +999 1 990 +NULL 83 NULL +PREHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(20, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(20, b), b having count(*) > 1 order by slot_count desc, slot_number +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(20, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(20, b), b having count(*) > 1 order by slot_count desc, slot_number +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +1075 3 1144 +1165 2 1228 +1368 2 1287 +1371 2 1284 +1481 2 1438 +1509 2 1456 +1537 2 1645 +154 2 146 +1701 2 1730 +1719 2 1745 +1777 2 1683 +1856 2 1850 +19 2 18 +1914 2 1795 +1948 3 2026 +2020 2 1941 +213 2 217 +2193 2 2057 +2285 2 2162 +2325 2 2454 +2393 2 2526 +2412 2 2536 +2463 3 2325 +2485 2 2365 +2560 2 2740 +2619 2 2700 +263 2 277 +268 2 286 +2715 2 2599 +2786 2 2649 +2803 3 2633 +2843 2 3004 +2855 2 2947 +2897 2 3058 +2933 2 3028 +296 2 312 +2968 2 2870 +3021 2 2918 +3060 2 2908 +3079 2 3295 +3159 2 3210 +3418 2 3477 +346 2 333 +3462 3 3397 +3467 2 3400 +3555 2 3366 +3588 2 3832 +3622 2 3800 +3725 2 3704 +3728 2 3684 +3770 2 3660 +3781 2 3636 +383 2 362 +3866 2 4085 +3974 2 3937 +412 2 390 +501 2 489 +661 2 697 +820 2 769 +898 2 957 +950 2 906 +NULL 83 NULL +PREHOOK: query: select count(*) as slot_count, vector_mapjoin_slot_number(20, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(20, b) order by slot_count desc, slot_number +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select count(*) as slot_count, vector_mapjoin_slot_number(20, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(20, b) order by slot_count desc, slot_number +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +1 1001 +1 1001633 +1 1002 +1 1003035 +1 1004 +1 1004421 +1 1004653 +1 10058 +1 1006282 +1 100655 +1 1007094 +1 1008265 +1 1008996 +1 1009993 +1 1010544 +1 1012347 +1 1012897 +1 1014055 +1 1015835 +1 1016790 +1 1017674 +1 1018 +1 1018777 +1 1018927 +1 1020 +1 102128 +1 1021782 +1 1022 +1 1022747 +1 1022773 +1 1023195 +1 1024454 +1 1024770 +1 1025479 +1 1025733 +1 1025881 +1 1025994 +1 1026723 +1 1026793 +1 1027327 +1 1027755 +1 1027769 +1 1028718 +1 1029317 +1 1029474 +1 1031 +1 1031080 +1 1031640 +1 1032116 +1 1032261 +1 1032598 +1 1033 +1 1033012 +1 10331 +1 1034 +1 1034057 +1 1034970 +1 1035 +1 103603 +1 1036694 +1 1036979 +1 1037801 +1 1038915 +1 1039170 +1 1039775 +1 1039886 +1 1040755 +1 1041596 +1 1042464 +1 1043431 +1 1043706 +1 1044600 +1 1046 +1 1056 +1 1058 +1 106 +1 1062 +1 106231 +1 1065 +1 106748 +1 107474 +1 1078 +1 107832 +1 1081 +1 1082 +1 108461 +1 1088 +1 109077 +1 109099 +1 1095 +1 110159 +1 1102 +1 110424 +1 1105 +1 110719 +1 1108 +1 1110 +1 1119 +1 1120 +1 1123 +1 112527 +1 1128 +1 112828 +1 113064 +1 1141 +1 114471 +1 1145 +1 115139 +1 1156 +1 116356 +1 117148 +1 1174 +1 117408 +1 1178 +1 1179 +1 1183 +1 1187 +1 119 +1 119061 +1 11936 +1 1194 +1 1200 +1 1216 +1 121749 +1 1220 +1 1223 +1 1232 +1 123780 +1 123922 +1 12401 +1 1241 +1 124734 +1 1248 +1 124876 +1 12532 +1 1254 +1 125922 +1 125973 +1 1261 +1 1267 +1 126917 +1 12692 +1 126978 +1 127 +1 1289 +1 12895 +1 129076 +1 130364 +1 130598 +1 1308 +1 131 +1 1311 +1 131206 +1 132145 +1 1323 +1 1334 +1 134184 +1 13437 +1 1344 +1 134701 +1 1352 +1 135970 +1 1360 +1 1361 +1 136110 +1 1368 +1 1370 +1 1372 +1 1373 +1 1376 +1 1380 +1 138064 +1 138165 +1 1382 +1 1383 +1 138959 +1 139 +1 1393 +1 139838 +1 1400 +1 140103 +1 140150 +1 140302 +1 1404 +1 1409 +1 1411 +1 141156 +1 1415 +1 141534 +1 1419 +1 142 +1 142176 +1 142244 +1 1426 +1 142670 +1 142942 +1 143139 +1 143201 +1 1440 +1 1444 +1 1445 +1 144965 +1 144984 +1 145378 +1 1454 +1 1457 +1 145855 +1 1463 +1 1467 +1 147871 +1 1485 +1 1486 +1 148744 +1 1490 +1 1500 +1 1501 +1 1506 +1 1510 +1 1514 +1 15151 +1 151638 +1 1518 +1 152567 +1 1526 +1 152604 +1 1531 +1 153212 +1 1535 +1 1537 +1 1539 +1 1548 +1 1560 +1 1563 +1 1568 +1 1573 +1 1574 +1 157862 +1 1580 +1 15809 +1 1582 +1 158333 +1 15835 +1 1597 +1 159918 +1 161172 +1 161400 +1 162 +1 162968 +1 162992 +1 163 +1 1637 +1 163995 +1 1641 +1 1642 +1 164762 +1 1651 +1 1652 +1 165597 +1 1657 +1 1658 +1 165974 +1 167028 +1 1674 +1 16742 +1 167552 +1 1676 +1 1677 +1 167880 +1 16812 +1 1686 +1 1687 +1 1688 +1 168804 +1 16888 +1 168927 +1 1691 +1 1693 +1 169318 +1 1694 +1 169403 +1 1695 +1 1697 +1 169796 +1 170422 +1 170948 +1 171271 +1 1713 +1 1719 +1 1720 +1 172239 +1 172772 +1 172877 +1 173739 +1 173825 +1 1743 +1 17512 +1 1752 +1 175453 +1 175790 +1 1762 +1 1766 +1 176853 +1 1769 +1 177 +1 177084 +1 1771 +1 177161 +1 1775 +1 178062 +1 1781 +1 1785 +1 178954 +1 1803 +1 1807 +1 180817 +1 18092 +1 1811 +1 1818 +1 182 +1 1820 +1 182497 +1 1827 +1 183604 +1 1840 +1 1842 +1 1844 +1 1852 +1 1853 +1 18575 +1 186119 +1 1864 +1 1867 +1 1873 +1 187716 +1 1879 +1 188263 +1 1886 +1 1887 +1 1898 +1 1900 +1 190303 +1 1904 +1 191 +1 191355 +1 1914 +1 191760 +1 192150 +1 192366 +1 192729 +1 19294 +1 193 +1 1934 +1 1936 +1 1937 +1 193700 +1 1944 +1 194404 +1 1947 +1 1948 +1 194953 +1 1952 +1 1955 +1 1958 +1 196241 +1 1963 +1 1967 +1 1968 +1 197170 +1 1973 +1 197380 +1 1976 +1 198 +1 1980 +1 198225 +1 1984 +1 198566 +1 199075 +1 1993 +1 1995 +1 20026 +1 200429 +1 2006 +1 2008 +1 2018 +1 2019 +1 202113 +1 2023 +1 2033 +1 204669 +1 2049 +1 2053 +1 205480 +1 2058 +1 206445 +1 2066 +1 206671 +1 206676 +1 2067 +1 2068 +1 2072 +1 2074 +1 2077 +1 2078 +1 207996 +1 2082 +1 2089 +1 2095 +1 2097 +1 2098 +1 2100 +1 2109 +1 2114 +1 211507 +1 2116 +1 2122 +1 2130 +1 2137 +1 2140 +1 214211 +1 214556 +1 214573 +1 2153 +1 215522 +1 215759 +1 215828 +1 216255 +1 216392 +1 2164 +1 216569 +1 2168 +1 2170 +1 217131 +1 2173 +1 2178 +1 2184 +1 2185 +1 219051 +1 2200 +1 220039 +1 220227 +1 220507 +1 2217 +1 2218 +1 2223 +1 222621 +1 2231 +1 2235 +1 2238 +1 2246 +1 2249 +1 225 +1 2255 +1 225561 +1 226945 +1 227 +1 227091 +1 228686 +1 229307 +1 2294 +1 229612 +1 23 +1 2301 +1 2313 +1 2327 +1 233348 +1 233703 +1 233764 +1 2338 +1 2341 +1 2344 +1 234407 +1 2348 +1 234801 +1 235 +1 235049 +1 2356 +1 2358 +1 2367 +1 2370 +1 2373 +1 237608 +1 2377 +1 238106 +1 2386 +1 2395 +1 2396 +1 2397 +1 2398 +1 2401 +1 240296 +1 2406 +1 2408 +1 241 +1 2421 +1 2427 +1 2432 +1 243227 +1 243390 +1 243444 +1 2448 +1 244986 +1 2451 +1 245751 +1 2460 +1 2469 +1 2476 +1 2487 +1 249574 +1 249630 +1 2499 +1 250 +1 250324 +1 251328 +1 2517 +1 2521 +1 252333 +1 252598 +1 252662 +1 2532 +1 253597 +1 253784 +1 2542 +1 2545 +1 255629 +1 2559 +1 256 +1 256297 +1 2567 +1 2576 +1 258324 +1 258511 +1 2586 +1 2587 +1 2595 +1 2596 +1 2598 +1 260 +1 260142 +1 2609 +1 261340 +1 2617 +1 2620 +1 2621 +1 2624 +1 262471 +1 2625 +1 263828 +1 2639 +1 2652 +1 2653 +1 2656 +1 266 +1 266148 +1 266226 +1 266317 +1 266536 +1 2668 +1 267203 +1 2675 +1 2681 +1 268141 +1 269049 +1 269190 +1 2695 +1 270238 +1 2705 +1 2713 +1 272013 +1 2721 +1 272588 +1 2726 +1 272813 +1 273 +1 2734 +1 2737 +1 274063 +1 2743 +1 274663 +1 2749 +1 275004 +1 2752 +1 275239 +1 275507 +1 275733 +1 2761 +1 2763 +1 276469 +1 2772 +1 2773 +1 277502 +1 277619 +1 277929 +1 278836 +1 2790 +1 2792 +1 27953 +1 279984 +1 2801 +1 2802 +1 280628 +1 2813 +1 2817 +1 2818 +1 2821 +1 2823 +1 282478 +1 2828 +1 2830 +1 2834 +1 283690 +1 283725 +1 2838 +1 284265 +1 28599 +1 286247 +1 28630 +1 2869 +1 2876 +1 287854 +1 287920 +1 28798 +1 2886 +1 2887 +1 2890 +1 2899 +1 2903 +1 2906 +1 2907 +1 290786 +1 291692 +1 29178 +1 2934 +1 2938 +1 294 +1 2941 +1 2943 +1 2948 +1 2950 +1 2954 +1 295842 +1 295897 +1 296871 +1 2971 +1 2979 +1 297940 +1 2982 +1 298438 +1 2990 +1 299388 +1 2996 +1 3000 +1 3001 +1 300388 +1 3005 +1 300878 +1 3011 +1 3015 +1 301716 +1 302028 +1 3035 +1 3036 +1 3039 +1 304314 +1 3044 +1 305 +1 305431 +1 305774 +1 3060 +1 3063 +1 30633 +1 3066 +1 3068 +1 3074 +1 308448 +1 308929 +1 309648 +1 310 +1 310959 +1 311279 +1 3116 +1 312078 +1 312267 +1 3123 +1 31232 +1 312394 +1 312819 +1 3132 +1 314212 +1 3151 +1 315172 +1 315178 +1 3154 +1 315734 +1 3159 +1 3161 +1 3164 +1 3165 +1 316601 +1 316979 +1 317 +1 3170 +1 3171 +1 3173 +1 3175 +1 318 +1 3181 +1 3184 +1 318621 +1 3187 +1 3198 +1 3199 +1 32 +1 3206 +1 321 +1 321481 +1 322 +1 3220 +1 3223 +1 3232 +1 3234 +1 3241 +1 3249 +1 3256 +1 325801 +1 325851 +1 326658 +1 327 +1 3270 +1 327008 +1 3272 +1 3279 +1 3283 +1 3284 +1 328681 +1 3289 +1 329 +1 329033 +1 329894 +1 329934 +1 330283 +1 331007 +1 3316 +1 3317 +1 332 +1 3325 +1 333101 +1 3337 +1 3338 +1 333916 +1 334 +1 334148 +1 3344 +1 3347 +1 3367 +1 3370 +1 3371 +1 3374 +1 3380 +1 3391 +1 33947 +1 3395 +1 339834 +1 3399 +1 340129 +1 340157 +1 340291 +1 340454 +1 340611 +1 340801 +1 3410 +1 341194 +1 3412 +1 341653 +1 342 +1 342226 +1 3428 +1 342939 +1 343057 +1 343421 +1 343915 +1 3443 +1 344303 +1 344448 +1 3446 +1 3448 +1 3457 +1 3463 +1 3467 +1 3474 +1 347445 +1 348529 +1 348594 +1 3486 +1 349057 +1 349418 +1 3498 +1 349897 +1 349952 +1 350285 +1 350710 +1 3515 +1 3518 +1 35213 +1 352835 +1 3535 +1 3539 +1 354 +1 354438 +1 354622 +1 35468 +1 3565 +1 3566 +1 35660 +1 358117 +1 358254 +1 358325 +1 35855 +1 3586 +1 3588 +1 3593 +1 3601 +1 360618 +1 3607 +1 3612 +1 361725 +1 362671 +1 3644 +1 364697 +1 3650 +1 3653 +1 366 +1 3663 +1 3666 +1 3668 +1 367 +1 367123 +1 3676 +1 368151 +1 368798 +1 369218 +1 369483 +1 3695 +1 3705 +1 3711 +1 3712 +1 371783 +1 3724 +1 372471 +1 3725 +1 3726 +1 372632 +1 3728 +1 3729 +1 373395 +1 3736 +1 3738 +1 374113 +1 3744 +1 3745 +1 3748 +1 374952 +1 375 +1 3753 +1 375483 +1 375584 +1 376 +1 3767 +1 3768 +1 377005 +1 377438 +1 3786 +1 379 +1 3792 +1 3799 +1 3808 +1 381 +1 3812 +1 3813 +1 381600 +1 3819 +1 382697 +1 3827 +1 383275 +1 383570 +1 383779 +1 384129 +1 384771 +1 3850 +1 385077 +1 3855 +1 38624 +1 3864 +1 386569 +1 387363 +1 3878 +1 388730 +1 3889 +1 3892 +1 389447 +1 3898 +1 390481 +1 390997 +1 391771 +1 3920 +1 3926 +1 392759 +1 3930 +1 3932 +1 3947 +1 3952 +1 395538 +1 396861 +1 3969 +1 3970 +1 397062 +1 3973 +1 3980 +1 3981 +1 3984 +1 3985 +1 3987 +1 3988 +1 399209 +1 3999 +1 4003 +1 4009 +1 4010 +1 401079 +1 4012 +1 4013 +1 4023 +1 402319 +1 403 +1 403033 +1 403108 +1 4035 +1 403520 +1 403830 +1 4043 +1 4046 +1 4048 +1 404958 +1 40605 +1 406610 +1 4070 +1 407614 +1 40764 +1 4079 +1 4091 +1 4093 +1 412 +1 412938 +1 413671 +1 414796 +1 414850 +1 415 +1 41621 +1 416257 +1 418033 +1 419 +1 420274 +1 42326 +1 423451 +1 42401 +1 425272 +1 426207 +1 427459 +1 428339 +1 43 +1 431370 +1 431870 +1 432 +1 432812 +1 432849 +1 43315 +1 433246 +1 435945 +1 436916 +1 43980 +1 440 +1 440281 +1 440509 +1 440680 +1 441502 +1 442236 +1 442472 +1 443100 +1 444524 +1 445287 +1 445755 +1 446328 +1 447504 +1 447554 +1 447707 +1 447909 +1 448949 +1 449560 +1 449875 +1 450072 +1 45062 +1 45182 +1 452305 +1 452880 +1 454473 +1 454554 +1 45499 +1 455277 +1 456 +1 457 +1 457156 +1 457404 +1 457726 +1 458034 +1 459239 +1 459569 +1 459715 +1 460912 +1 461629 +1 461920 +1 463140 +1 4632 +1 464263 +1 464629 +1 465 +1 465781 +1 466352 +1 466395 +1 466405 +1 468303 +1 469319 +1 469520 +1 469578 +1 470214 +1 471054 +1 472 +1 472970 +1 473 +1 477135 +1 478099 +1 478492 +1 479057 +1 480180 +1 481612 +1 481824 +1 481895 +1 482362 +1 483670 +1 484 +1 487426 +1 488 +1 488804 +1 490073 +1 490239 +1 491976 +1 493832 +1 494104 +1 495633 +1 495717 +1 498095 +1 498414 +1 498590 +1 499057 +1 499395 +1 5 +1 50 +1 500 +1 502 +1 502601 +1 503 +1 503095 +1 503211 +1 504 +1 50592 +1 506122 +1 506814 +1 50704 +1 507365 +1 508 +1 508500 +1 508713 +1 5090 +1 510454 +1 511 +1 5120 +1 51201 +1 513119 +1 514100 +1 514484 +1 517586 +1 518078 +1 5188 +1 519204 +1 519775 +1 521797 +1 522051 +1 52511 +1 526279 +1 526433 +1 528041 +1 528989 +1 529736 +1 530333 +1 530577 +1 536531 +1 536726 +1 536980 +1 537031 +1 537242 +1 537708 +1 540499 +1 540658 +1 541247 +1 541255 +1 543042 +1 543159 +1 543548 +1 544084 +1 544397 +1 544531 +1 544632 +1 546052 +1 54670 +1 54766 +1 549261 +1 549458 +1 549948 +1 550576 +1 551934 +1 552 +1 552524 +1 552700 +1 553145 +1 5537 +1 554862 +1 557391 +1 557677 +1 557886 +1 558 +1 559 +1 559139 +1 559959 +1 560367 +1 560433 +1 560584 +1 560812 +1 561766 +1 562 +1 562049 +1 562799 +1 564180 +1 564349 +1 566165 +1 567 +1 568534 +1 568696 +1 568772 +1 569014 +1 569025 +1 569926 +1 570492 +1 571270 +1 571366 +1 572227 +1 575101 +1 575781 +1 575941 +1 576251 +1 576445 +1 576798 +1 577371 +1 577882 +1 577921 +1 578812 +1 578883 +1 579609 +1 580301 +1 581 +1 581496 +1 582 +1 583905 +1 584 +1 586871 +1 586963 +1 587560 +1 589217 +1 589445 +1 589989 +1 590736 +1 591894 +1 592467 +1 593968 +1 594077 +1 594393 +1 594629 +1 595500 +1 597027 +1 597690 +1 600152 +1 600485 +1 60151 +1 601655 +1 601902 +1 60194 +1 602687 +1 602988 +1 604193 +1 604502 +1 604611 +1 605565 +1 605602 +1 608114 +1 608332 +1 60858 +1 609351 +1 609771 +1 611 +1 611353 +1 611454 +1 611487 +1 612270 +1 614376 +1 615 +1 6154 +1 615974 +1 616 +1 616080 +1 618 +1 619 +1 61980 +1 620176 +1 620308 +1 620928 +1 621754 +1 622 +1 622197 +1 622425 +1 623215 +1 624365 +1 62468 +1 626893 +1 627095 +1 627430 +1 628 +1 629071 +1 630219 +1 63094 +1 631794 +1 632 +1 633047 +1 635182 +1 635261 +1 635960 +1 636573 +1 638122 +1 638188 +1 639323 +1 64 +1 640 +1 640834 +1 642054 +1 642108 +1 642620 +1 643643 +1 643740 +1 643938 +1 644617 +1 644899 +1 645011 +1 645792 +1 645795 +1 646 +1 64623 +1 648971 +1 650 +1 650208 +1 650630 +1 650809 +1 652368 +1 652550 +1 653724 +1 654262 +1 65514 +1 656748 +1 657421 +1 658286 +1 660353 +1 660478 +1 663992 +1 664 +1 664345 +1 665 +1 665056 +1 668 +1 668808 +1 669 +1 669242 +1 67 +1 670 +1 671987 +1 672285 +1 672810 +1 673064 +1 673256 +1 674557 +1 674691 +1 675706 +1 675785 +1 676656 +1 679 +1 679287 +1 68080 +1 680934 +1 68108 +1 681222 +1 68136 +1 68390 +1 685381 +1 685979 +1 686059 +1 686791 +1 686925 +1 687270 +1 688278 +1 688924 +1 68951 +1 689819 +1 69 +1 690893 +1 691303 +1 691372 +1 692 +1 694734 +1 694766 +1 695689 +1 696817 +1 697451 +1 697549 +1 698179 +1 698405 +1 698582 +1 699 +1 699278 +1 699467 +1 70 +1 700699 +1 702 +1 702649 +1 70348 +1 703732 +1 704450 +1 704642 +1 706755 +1 707735 +1 70820 +1 708648 +1 709063 +1 709132 +1 710305 +1 711273 +1 712530 +1 713 +1 713093 +1 713306 +1 713458 +1 714910 +1 715 +1 715070 +1 715273 +1 715345 +1 715692 +1 715717 +1 716 +1 716291 +1 717188 +1 718071 +1 718132 +1 720511 +1 721 +1 721176 +1 721296 +1 721699 +1 721913 +1 722058 +1 722471 +1 723264 +1 72524 +1 72582 +1 728415 +1 730584 +1 732637 +1 732756 +1 733914 +1 735128 +1 735762 +1 735824 +1 736941 +1 738847 +1 738927 +1 739117 +1 74 +1 740076 +1 742356 +1 743300 +1 744123 +1 745999 +1 746 +1 746755 +1 746959 +1 747602 +1 750114 +1 750495 +1 750597 +1 751316 +1 752387 +1 752579 +1 752667 +1 753364 +1 753564 +1 753994 +1 754613 +1 756123 +1 756509 +1 757243 +1 759 +1 759648 +1 759744 +1 76077 +1 760918 +1 760984 +1 763 +1 763631 +1 763800 +1 764 +1 76441 +1 764791 +1 765143 +1 765777 +1 767444 +1 768509 +1 77 +1 770 +1 770232 +1 770588 +1 770796 +1 77130 +1 771678 +1 772583 +1 773657 +1 775193 +1 776346 +1 776636 +1 776806 +1 777789 +1 777815 +1 779178 +1 779598 +1 780005 +1 781652 +1 782556 +1 782956 +1 784952 +1 78510 +1 787220 +1 787918 +1 788458 +1 788713 +1 788921 +1 791 +1 791833 +1 792 +1 793313 +1 79408 +1 794120 +1 795 +1 79595 +1 796 +1 797 +1 79781 +1 798158 +1 798933 +1 799010 +1 79909 +1 80 +1 800607 +1 801229 +1 802 +1 803344 +1 806345 +1 807 +1 807108 +1 807336 +1 808337 +1 808450 +1 808531 +1 808811 +1 809889 +1 810 +1 811147 +1 811504 +1 812834 +1 813902 +1 814113 +1 814215 +1 816 +1 816504 +1 817369 +1 819432 +1 822430 +1 824 +1 824450 +1 825429 +1 825747 +1 826 +1 826200 +1 826350 +1 826435 +1 826992 +1 827022 +1 827935 +1 827947 +1 828721 +1 828828 +1 829 +1 829863 +1 83061 +1 830659 +1 83202 +1 832170 +1 832371 +1 833136 +1 833286 +1 833671 +1 833756 +1 834 +1 836776 +1 836934 +1 837050 +1 837408 +1 837950 +1 83823 +1 838254 +1 838830 +1 839358 +1 840207 +1 840278 +1 840415 +1 840469 +1 841 +1 842249 +1 843143 +1 843277 +1 844332 +1 844609 +1 84466 +1 845589 +1 846144 +1 846819 +1 847806 +1 848906 +1 848985 +1 849312 +1 85 +1 850240 +1 85035 +1 850609 +1 850776 +1 850992 +1 851378 +1 852 +1 85205 +1 85356 +1 854133 +1 854339 +1 855 +1 855815 +1 856345 +1 857 +1 858 +1 858157 +1 858168 +1 85920 +1 859357 +1 859437 +1 859442 +1 859514 +1 86 +1 860799 +1 861656 +1 862 +1 862010 +1 862202 +1 864712 +1 869437 +1 871445 +1 871600 +1 873600 +1 873975 +1 876039 +1 876266 +1 87721 +1 878141 +1 878192 +1 87835 +1 879000 +1 880226 +1 880517 +1 880668 +1 881 +1 881564 +1 881933 +1 882188 +1 883124 +1 883937 +1 88603 +1 886263 +1 887 +1 887668 +1 887990 +1 888884 +1 89027 +1 890713 +1 890779 +1 891564 +1 892070 +1 89214 +1 892961 +1 893866 +1 893944 +1 894005 +1 895 +1 895367 +1 896840 +1 897357 +1 898 +1 899258 +1 899263 +1 900656 +1 902416 +1 902560 +1 903104 +1 904004 +1 904389 +1 90512 +1 905136 +1 905663 +1 906728 +1 906928 +1 907455 +1 907886 +1 908239 +1 908963 +1 909 +1 909307 +1 909902 +1 91 +1 910332 +1 911 +1 913794 +1 913857 +1 914300 +1 916372 +1 918 +1 918318 +1 919441 +1 919861 +1 920130 +1 920472 +1 921862 +1 922043 +1 924969 +1 925 +1 925734 +1 928269 +1 929 +1 929113 +1 929721 +1 929787 +1 929808 +1 932 +1 932160 +1 933 +1 933675 +1 934495 +1 934747 +1 934899 +1 935 +1 935007 +1 935127 +1 935192 +1 935637 +1 935727 +1 935789 +1 935827 +1 936 +1 936346 +1 936787 +1 937 +1 937255 +1 938234 +1 938753 +1 939 +1 939221 +1 94 +1 940 +1 940324 +1 940932 +1 943 +1 943128 +1 943631 +1 945246 +1 945379 +1 945781 +1 946254 +1 947 +1 947880 +1 948162 +1 948505 +1 948617 +1 948861 +1 949245 +1 949658 +1 949757 +1 950261 +1 950794 +1 951961 +1 952311 +1 953772 +1 954523 +1 954842 +1 955534 +1 956785 +1 95762 +1 95770 +1 957737 +1 959774 +1 963517 +1 963580 +1 963861 +1 964535 +1 964776 +1 965 +1 965708 +1 967675 +1 967963 +1 968364 +1 969822 +1 970449 +1 97090 +1 973063 +1 973936 +1 974706 +1 974972 +1 975291 +1 976572 +1 976863 +1 978236 +1 978993 +1 981044 +1 981095 +1 981735 +1 982389 +1 983418 +1 984091 +1 984196 +1 987755 +1 987850 +1 987900 +1 988 +1 98805 +1 990 +1 990746 +1 991189 +1 991386 +1 991694 +1 992467 +1 993 +1 994491 +1 994595 +1 995087 +1 995849 +1 997895 +1 998269 +1 998779 +1 999792 +2 1228 +2 1284 +2 1287 +2 1438 +2 1456 +2 146 +2 1645 +2 1683 +2 1730 +2 1745 +2 1795 +2 18 +2 1850 +2 1941 +2 1961 +2 2057 +2 2162 +2 217 +2 2365 +2 2454 +2 2526 +2 2536 +2 2599 +2 2649 +2 2700 +2 2740 +2 277 +2 286 +2 2870 +2 2908 +2 2918 +2 2947 +2 3004 +2 3028 +2 3058 +2 312 +2 3210 +2 3295 +2 333 +2 3366 +2 3400 +2 340810 +2 3477 +2 362 +2 3636 +2 3660 +2 3684 +2 3704 +2 3800 +2 3832 +2 390 +2 3937 +2 4085 +2 489 +2 697 +2 769 +2 906 +2 915053 +2 957 +3 1144 +3 2026 +3 2325 +3 2633 +3 3397 +83 NULL +PREHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(20, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(20, b), b order by slot_count desc, slot_number +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(20, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(20, b), b order by slot_count desc, slot_number +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 1 407614 +-6919476845891313664 1 915053 +-6920172215209426944 1 229307 +-6921654334727036928 1 594393 +-6933565857643814912 1 261340 +-6934304742087655424 1 771678 +-6935038507792801792 1 536531 +-6935548339131138048 1 169796 +-6938706403992854528 1 776806 +-6941777546186579968 1 842249 +-6947955278050181120 1 675785 +-6951350560260784128 1 373395 +-6957946688477274112 1 18092 +-6960947572095770624 1 64623 +-6962271229404348416 1 827947 +-6962292590214234112 1 752579 +-6968771079156654080 1 348594 +-6968892545529896960 1 602988 +-6970396058557005824 1 28630 +-6974654664348033024 1 837050 +-6975459232300236800 1 340810 +-6986178228432322560 1 848985 +-6988811476286873600 1 745999 +-6988970700649168896 1 935727 +-6992217501957169152 1 431370 +-6997233584896229376 1 949757 +-7000925438663041024 1 562799 +-7003696402314215424 1 266536 +-7011425384222244864 1 374113 +-7017212700635545600 1 992467 +-7020852530219171840 1 933675 +-7030489936116252672 1 347445 +-7035132060308643840 1 557677 +-7036607470351654912 1 172877 +-7037375807670501376 1 943631 +-7037638331316469760 1 770588 +-7038455462786334720 1 561766 +-7040248820505149440 1 702649 +-7041362811802148864 1 6154 +-7042183597114081280 1 849312 +-7046180371529351168 1 240296 +-7049618574399692800 1 331007 +-7052619594823221248 1 171271 +-7055619148037554176 1 214573 +-7055760785575665664 1 543548 +-7057750467944931328 1 390481 +-7058986555327307776 1 604193 +-7063777488249085952 1 635960 +-7078068944081002496 1 1040755 +-7079898537463537664 1 549948 +-7081500255163727872 1 385077 +-7083646746411720704 1 52511 +-7085247548404178944 1 1010544 +-7093825013581979648 1 192366 +-7094189393339678720 1 879000 +-7094827141662539776 1 887668 +-7104310188119834624 1 284265 +-7106210529681350656 1 862010 +-7109790267244814336 1 553145 +-7115054815375073280 1 216392 +-7120456708338688000 1 290786 +-7127548949860818944 1 5537 +-7138415011665043456 1 688924 +-7139677575412686848 1 788921 +-7140008543769042944 1 591894 +-7144791190333546496 1 880668 +-7145585429014888448 1 435945 +-7147490721376591872 1 371783 +-7152177800841502720 1 275004 +-7155539549555105792 1 426207 +-7158472098920390656 1 457156 +-7159700138947862528 1 238106 +-7161165959057334272 1 403108 +-7162299524557471744 1 115139 +-7172594404186693632 1 316979 +-7185369278665605120 1 31232 +-7192529627893858304 1 808450 +-7194281951646187520 1 45062 +-7195217207163166720 1 68080 +-7198372044947275776 1 819432 +-7199983995864711168 1 342939 +-7201085131997011968 1 180817 +-7209060152494817280 1 733914 +-7213775605408178176 1 199075 +-7220731681653604352 1 855815 +-7221474017515347968 1 215759 +-7228589258642194432 1 423451 +-7240213957902663680 1 173739 +-7242345057866285056 1 498590 +-7245872320493322240 1 847806 +-7246123871306244096 1 79408 +-7255010240787030016 1 341653 +-7255686273677328384 1 1033012 +-7262049693594943488 1 846144 +-7262384251828518912 1 642054 +-7262798781688651776 1 354622 +-7263060340185194496 1 256297 +-7265998318110711808 1 969822 +-7266719102957125632 1 551934 +-7270034223527993344 1 950261 +-7273590251991162880 1 158333 +-7273694358642851840 1 1044600 +-7276111129363046400 1 998269 +-7287583262310350848 1 921862 +-7292078334519894016 1 325851 +-7296096276653391872 1 597690 +-7303847963918393344 1 305774 +-7319315187617587200 1 897357 +-7326863346317598720 1 472970 +-7328087811698909184 1 579609 +-7329767178250018816 1 349897 +-7329807949048193024 1 169403 +-7330203470474985472 1 442236 +-7330413050756235264 1 170948 +-7333278178640953344 1 478099 +-7333362172439035904 1 843277 +-7340231535789727744 1 968364 +-7344146703223496704 1 519775 +-7344947507044466688 1 15151 +-7345562788132315136 1 984091 +-7356685674003021824 1 576445 +-7357888618985873408 1 967963 +-7362189611124563968 1 918318 +-7366430883634929664 1 191760 +-7378096180613840896 1 763631 +-7380731416973295616 1 5120 +-7395343938785738752 1 172239 +-7395553021620731904 1 899263 +-7399631791131074560 1 712530 +-7404052043914526720 1 275733 +-7404057145074712576 1 882188 +-7409317158045442048 1 936787 +-7409653086454030336 1 106748 +-7412431471807283200 1 216569 +-7413317118463164416 1 499057 +-7419068456205385728 1 569014 +-7420448501073051648 1 206445 +-7425160895830573056 1 278836 +-7429331808102899712 1 934747 +-7433265617153343488 1 88603 +-7442593976514420736 1 735128 +-7444070205513138176 1 552700 +-7451660755269853184 1 759744 +-7453525026342617088 1 671987 +-7455898404374921216 1 624365 +-7456869587112255488 1 522051 +-7461750143936897024 1 716291 +-7464270453557993472 1 198225 +-7469660864676585472 1 138165 +-7470307155642245120 1 829863 +-7476082621253402624 1 349057 +-7483435388852559872 1 348529 +-7488345684795342848 1 578883 +-7488415863027367936 1 68136 +-7494411162675691520 1 616080 +-7496839341561954304 1 15809 +-7497303453253402624 1 312819 +-7500200359698907136 1 130364 +-7501803640821456896 1 800607 +-7506254246954500096 1 938234 +-7507424948896415744 1 935192 +-7507578199583694848 1 178954 +-7510418793070075904 1 354438 +-7511202710200885248 1 549261 +-7511952204985049088 1 934899 +-7512289590991544320 1 697549 +-7512297136103800832 1 114471 +-7515996202498473984 1 881933 +-7524170566881329152 1 976572 +-7526793959592140800 1 134184 +-7528526815026692096 1 110159 +-7532751268425261056 1 440281 +-7535857766791577600 1 258324 +-7535958203887706112 1 1025881 +-7536330682873937920 1 481612 +-7540104552219860992 1 60194 +-7541860097718902784 1 938753 +-7542857121910046720 1 809889 +-7547245548870025216 1 349418 +-7547432761381339136 1 272588 +-7551394356730339328 1 609351 +-7557017910095650816 1 640834 +-7558524160894427136 1 773657 +-7571293705217687552 1 1023195 +-7571957778022178816 1 269049 +-7572262898020278272 1 377005 +-7572962089372991488 1 1032261 +-7576194692683563008 1 658286 +-7593363318079610880 1 295897 +-7594824008626372608 1 642108 +-7598782894648565760 1 638122 +-7600138468036386816 1 577921 +-7603467428164009984 1 914300 +-7603569103205916672 1 42326 +-7610137349734883328 1 1025733 +-7611584069753552896 1 117408 +-7612455481940246528 1 644899 +-7612466483992051712 1 109099 +-7616522969329262592 1 894005 +-7617860842651017216 1 198566 +-7623047151287754752 1 402319 +-7623359796281999360 1 672285 +-7623405558242500608 1 427459 +-7624057992767782912 1 782956 +-7629401308029976576 1 138064 +-7637494527844343808 1 495717 +-7637755520917741568 1 152567 +-7642381493746483200 1 752667 +-7647020450676146176 1 605602 +-7661192563533062144 1 967675 +-7661250850555633664 1 908963 +-7663293054873812992 1 204669 +-7665186441284968448 1 832170 +-7668388017287020544 1 935007 +-7669169138124275712 1 107832 +-7673901622181953536 1 384771 +-7679894005808693248 1 720511 +-7686220526274502656 1 296871 +-7687052294777208832 1 959774 +-7692192232238678016 1 751316 +-7695491171376291840 1 1025994 +-7700203302632210432 1 243227 +-7703540456272994304 1 576251 +-7707242953271500800 1 836934 +-7707867749256445952 1 13437 +-7708932208121225216 1 1043431 +-7709958788604936192 1 1007094 +-7712425776235274240 1 808337 +-7720966287634112512 1 698179 +-7739424919198187520 1 442472 +-7744462446680375296 1 886263 +-7751265769984491520 1 176853 +-7751427073017544704 1 956785 +-7753051494275432448 1 937255 +-7759238919361888256 1 575781 +-7759425383684849664 1 788458 +-7772064021830574080 1 825429 +-7773957003968675840 1 330283 +-7777884099756122112 1 943128 +-7778829032042790912 1 325801 +-7779270198785875968 1 890779 +-7782344916178796544 1 40605 +-7784419454650843136 1 119061 +-7792903881635938304 1 286247 +-7793447076762345472 1 629071 +-7797149520019062784 1 540499 +-7797151404935618560 1 770232 +-7800879252150779904 1 340810 +-7802538500225777664 1 630219 +-7804116532814151680 1 1009993 +-7805985795815342080 1 838254 +-7811060170911375360 1 117148 +-7818454479651135488 1 776636 +-7819437864839495680 1 779178 +-7822452149325094912 1 975291 +-7824788571789279232 1 206671 +-7827420207675105280 1 924969 +-7831320202242228224 1 590736 +-7831595638727565312 1 369483 +-7833618000492109824 1 147871 +-7835907977757245440 1 825747 +-7838598833900584960 1 612270 +-7840338174858199040 1 428339 +-7845896959112658944 1 167028 +-7848043121524228096 1 412938 +-7849504559236210688 1 909307 +-7858505678035951616 1 564349 +-7866079955473989632 1 211507 +-7867219225874571264 1 997895 +-7868306678534193152 1 493832 +-7873753603299540992 1 685979 +-7875953567586451456 1 194404 +-7877598807023386624 1 1961 +-7878145001776152576 1 234801 +-7879864376629567488 1 165974 +-7881262505761710080 1 507365 +-7881351200983613440 1 951961 +-7883252982752665600 1 87721 +-7884460946615984128 1 352835 +-7888051992910274560 1 396861 +-7892780594910871552 1 481824 +-7893577088764174336 1 287920 +-7894382303337832448 1 327008 +-7895991410072928256 1 945781 +-7902517224300036096 1 859442 +-7903158849011843072 1 440509 +-7904188195431661568 1 399209 +-7907355742053883904 1 903104 +-7910019233726242816 1 995087 +-7911421221625077760 1 340291 +-7915999634274369536 1 750114 +-7916510129632296960 1 510454 +-7928062266382778368 1 165597 +-7928440849566146560 1 432812 +-7939634346485858304 1 5188 +-7949309059286163456 1 935827 +-7949445503604604928 1 577371 +-7953426740065312768 1 715273 +-7964801953178091520 1 767444 +-7966960765508280320 1 60151 +-7978782649203228672 1 981044 +-7989766326847807488 1 963861 +-7998947380180819968 1 808531 +-8007017894942638080 1 568534 +-8013397854633648128 1 833136 +-8016589197379289088 1 470214 +-8017791189288869888 1 20026 +-8018511948141748224 1 765143 +-8021859935185928192 1 715345 +-8022573309127000064 1 297940 +-8023708819947323392 1 125922 +-8028275725610909696 1 869437 +-8028910243475038208 1 124876 +-8030058711611629568 1 881564 +-8034414142083170304 1 416257 +-8046189486447017984 1 386569 +-8046238369820344320 1 787918 +-8047774491688255488 1 883937 +-8051395538179063808 1 672810 +-8051587217208967168 1 235049 +-8051871680800120832 1 233703 +-8054581198284668928 1 858168 +-8067243114610532352 1 269190 +-8070535484085895168 1 283690 +-8076479329071955968 1 621754 +-8082793390939193344 1 266148 +-8084716955963252736 1 503211 +-8086577583338061824 1 935637 +-8088337436168830976 1 697451 +-8099313480512716800 1 768509 +-8103788088118018048 1 575941 +-8104684579106914304 1 85356 +-8108693586698706944 1 902560 +-8115963579415650304 1 779598 +-8117838333114212352 1 308448 +-8122639684164501504 1 391771 +-8127494999848919040 1 110719 +-8131997716860526592 1 217131 +-8136227554401107968 1 991189 +-8140349174954893312 1 928269 +-8142667274351345664 1 457726 +-8147405381260345344 1 945246 +-8158011642485825536 1 826350 +-8161047750470279168 1 611353 +-8172827216441573376 1 375483 +-8182421179156905984 1 597027 +-8191825921746305024 1 275239 +-8194062064124362752 1 263828 +-8203008052020879360 1 1043706 +-8203075743525806080 1 833756 +-8205148279289085952 1 506122 +-8214462866994339840 1 694734 +-8219876839318716416 1 369218 +-8232763638546694144 1 469520 +-8240034910581153792 1 703732 +-8240684139569233920 1 225561 +-8243487285852766208 1 650208 +-8244116388227104768 1 811504 +-8244657976255889408 1 605565 +-8260340354454503424 1 876266 +-8269917980278980608 1 245751 +-8270479187688816640 1 228686 +-8275337702906757120 1 441502 +-8280276629934981120 1 940324 +-8293833565967810560 1 78510 +-8297230235506343936 1 1029317 +-8300526097982226432 1 315172 +-8300764106868350976 1 312267 +-8302817097848307712 1 350710 +-8317591428117274624 1 368798 +-8318886086186213376 1 425272 +-8322751250650218496 1 397062 +-8330233444291084288 1 1032598 +-8335810316927213568 1 830659 +-8340523561480437760 1 708648 +-8345065519816695808 1 270238 +-8347088645602050048 1 312078 +-8357136656913686528 1 170422 +-8358130693961195520 1 131206 +-8359839265974165504 1 341194 +-8368269352975982592 1 1017674 +-8368487814665895936 1 544084 +-8369487968903897088 1 220039 +-8379109122834997248 1 215828 +-8379964450833367040 1 291692 +-8384695077413412864 1 906928 +-8387347109404286976 1 340454 +-8387536830476820480 1 455277 +-8395998375405912064 1 732756 +-8400045653258444800 1 329894 +-8411282676082565120 1 129076 +-8418913260807217152 1 452305 +-8425998949410889728 1 280628 +-8426531414463545344 1 560367 +-8430283518005846016 1 673256 +-8430370933326536704 1 589989 +-8431492599012163584 1 177161 +-8438554249514491904 1 559139 +-8445801063348281344 1 301716 +-8453491903284994048 1 361725 +-8454143651040444416 1 568696 +-8465978403747037184 1 828828 +-8469607298426437632 1 850240 +-8471480409335513088 1 752387 +-8485389240529354752 1 414850 +-8488247955875618816 1 602687 +-8490382417169408000 1 812834 +-8494118409594650624 1 206676 +-8503342882470019072 1 983418 +-8503573595507761152 1 153212 +-8507279516485566464 1 709063 +-8509547439040757760 1 544632 +-8518060755719585792 1 860799 +-8518258741831680000 1 112527 +-8521578237232529408 1 575101 +-8522878384019169280 1 1008265 +-8523434203900674048 1 899258 +-8525212657458348032 1 721913 +-8535957064499879936 1 244986 +-8536369662934401024 1 788713 +-8543982423727128576 1 449560 +-8544299740525461504 1 711273 +-8545239748068941824 1 828721 +-8546758906409312256 1 140103 +-8552393882631389184 1 459715 +-8555709701170552832 1 243390 +-8559008501282832384 1 528989 +-8559252110266564608 1 949658 +-8562524688907485184 1 315734 +-8566856504746352640 1 35660 +-8566940231897874432 1 970449 +-8570933074545745920 1 194953 +-8572823448513445888 1 16742 +-8572949572756774912 1 803344 +-8581765103969312768 1 452880 +-8581979259158929408 1 214556 +-8584520406368493568 1 50704 +-8585134536083660800 1 638188 +-8585966098173870080 1 420274 +-8593419958317056000 1 948617 +-8603817012434198528 1 191355 +-8604758220106014720 1 282478 +-8607195685207408640 1 433246 +-8615168537390571520 1 1034057 +-8619303037130301440 1 639323 +-8623238306523824128 1 1004653 +-8623965248051789824 1 89214 +-8632237187473088512 1 620308 +-8649711322250362880 1 571366 +-8651641150831362048 1 443100 +-8654433008222797824 1 854133 +-8654797319350927360 1 600485 +-8658387566611996672 1 770796 +-8659643752269242368 1 611487 +-8659692318743314432 1 919861 +-8660149447361404928 1 495633 +-8664374244449050624 1 963580 +-8664806103426252800 1 862202 +-8665218198816497664 1 578812 +-8665764757143658496 1 258511 +-8675661101615489024 1 466395 +-8675892979328212992 1 340129 +-8683802826440105984 1 480180 +-8688153842294595584 1 846819 +-8689606130068611072 1 1032116 +-8694818694700048384 1 333916 +-8696162322976997376 1 676656 +-8703026916864802816 1 892961 +-8704234107608203264 1 275507 +-8705403811649355776 1 377438 +-8710298418608619520 1 756123 +-8714995808835444736 1 498095 +-8719510423723155456 1 106231 +-8730803262481580032 1 904004 +-8731068123910987776 1 635182 +-8746702976270385152 1 859514 +-8754966081778565120 1 759648 +-8754992450211692544 1 35468 +-8756989568739835904 1 125973 +-8760655406971863040 1 498414 +-8763062627136864256 1 167880 +-8768744394742235136 1 70348 +-8782213262837530624 1 35213 +-8783777723063099392 1 249630 +-8789178184387641344 1 888884 +-8797972842900307968 1 85205 +-8807361476639629312 1 326658 +-8813211231120031744 1 277619 +-8831091081349758976 1 978993 +-8832750849949892608 1 172772 +-8833019327569510400 1 594629 +-8835408234247168000 1 192150 +-8836899523028312064 1 305431 +-8843859708698583040 1 643938 +-8844949406948671488 1 902416 +-8845239510002753536 1 807108 +-8852770376039219200 1 627430 +-8853553406533894144 1 908239 +-8856151919723003904 1 994491 +-8856821118526734336 1 12532 +-8857335871148171264 1 76441 +-8858063395050110976 1 690893 +-8859107121649893376 1 691372 +-8866442231663067136 1 468303 +-8870186814744420352 1 891564 +-8870673219965001728 1 987755 +-8875546987176206336 1 79595 +-8877053610728161280 1 162968 +-8877431933441327104 1 688278 +-8879742387365429248 1 89027 +-8881446757271846912 1 72524 +-8887058200926093312 1 381600 +-8892963883085578240 1 920472 +-8896045754034978816 1 85035 +-8914039133569400832 1 464263 +-8916987977485312000 1 40764 +-8922409715403112448 1 79781 +-8923529803981905920 1 813902 +-8927968289860370432 1 364697 +-8930307926221807616 1 233764 +-8938849835283677184 1 62468 +-8940944155843461120 1 298438 +-8941201923743703040 1 186119 +-8946656952763777024 1 691303 +-8948335470186373120 1 136110 +-8959796625322680320 1 253784 +-8961059046745669632 1 169318 +-8962547695651323904 1 664345 +-8965578088652095488 1 161400 +-8989473881707921408 1 229612 +-8990843030306717696 1 987850 +-8992599250893979648 1 826435 +-8996954350906294272 1 299388 +-9002912355472736256 1 283725 +-9004892183139811328 1 750495 +-9008631121684832256 1 859357 +-9012093603044245504 1 95762 +-9013952631912325120 1 904389 +-9014145341570203648 1 541255 +-9022154842129547264 1 350285 +-9032650742739836928 1 508500 +-9049720998034137088 1 794120 +-9051477157204770816 1 1031640 +-9058029636530003968 1 168804 +-9066993118333706240 1 878141 +-9071565764086521856 1 735824 +-9075302542655684608 1 252333 +-9075486079396069376 1 469578 +-9078662294976061440 1 200429 +-9079801920509001728 1 252598 +-9080568167841226752 1 374952 +-9080956291212132352 1 446328 +-9084940280061485056 1 1022747 +-9088239683374350336 1 764791 +-9091113592821972992 1 178062 +-9095689235523264512 1 1016790 +-9101953184875757568 1 948861 +-9102482277760983040 1 537708 +-9105358806324035584 1 880226 +-9105701280936501248 1 654262 +-9109392978217484288 1 85920 +-9117959922369060864 1 135970 +-9126793997498957824 1 657421 +-9136398397785948160 1 83823 +-9142610685888192512 1 544531 +-9145593811310010368 1 698405 +-9148197394287779840 1 279984 +-9149719074367946752 1 530577 +-9157613004431998976 1 268141 +-9175038118837149696 1 913857 +-9175279464813223936 1 686059 +-9178166810751909888 1 981095 +-9187662685618348032 1 929787 +-9189155542884474880 1 611454 +-9203804401302323200 1 905136 +-9203942396257984512 1 141156 +-9206329156028112896 1 372471 +-9210275791460499456 1 636573 +-9213132862973829120 1 103603 +-9215144824304721920 1 859437 +-9218875542187065344 1 173825 +-9219066990552760320 1 309648 +1021 1 965 +1030 1 1102 +1032 1 1088 +1039 1 1095 +1046 1 1119 +1048 1 1105 +1053 1 1108 +1055 1 1110 +1058 1 1128 +1065 1 1123 +1066 1 1120 +1074 1 1145 +1075 3 1144 +108 1 106 +1086 1 1141 +1093 1 1033 +1094 1 1034 +1095 1 1035 +1099 1 1031 +1115 1 1046 +112 1 119 +1127 1 1065 +1128 1 1062 +1132 1 1058 +1134 1 1056 +1141 1 1082 +1142 1 1081 +1145 1 1078 +1153 1 1216 +1157 1 1220 +1158 1 1223 +1165 2 1228 +1168 1 1232 +1177 1 1241 +1187 1 1248 +1189 1 1254 +1198 1 1261 +120 1 127 +1201 1 1267 +1217 1 1156 +1234 1 1174 +1243 1 1183 +1247 1 1179 +1252 1 1187 +1261 1 1194 +1270 1 1200 +1280 1 1370 +1282 1 1368 +1286 1 1372 +1287 1 1373 +1290 1 1360 +1291 1 1361 +1299 1 1352 +130 1 139 +1307 1 1344 +1312 1 1400 +1316 1 1404 +1321 1 1393 +1337 1 1376 +1341 1 1380 +1342 1 1383 +1343 1 1382 +1345 1 1311 +1346 1 1308 +135 1 142 +1366 1 1289 +1368 2 1287 +1371 2 1284 +138 1 131 +1386 1 1334 +1398 1 1323 +1409 1 1490 +1422 1 1501 +1423 1 1500 +1436 1 1486 +1439 1 1485 +1447 1 1526 +1450 1 1531 +1454 1 1535 +1458 1 1506 +1462 1 1510 +1466 1 1514 +1470 1 1518 +1477 1 1426 +1481 2 1438 +1489 1 1415 +1493 1 1411 +1495 1 1409 +1501 1 1419 +1506 1 1463 +1508 1 1457 +1509 2 1456 +1518 1 1467 +1520 1 1444 +1521 1 1445 +1524 1 1440 +1530 1 1454 +1537 2 1645 +154 2 146 +1541 1 1641 +1542 1 1642 +1545 1 1637 +1556 1 1657 +1559 1 1658 +1561 1 1652 +1566 1 1651 +1604 1 1580 +1606 1 1582 +1608 1 1568 +1613 1 1573 +1614 1 1574 +1620 1 1597 +1638 1 1548 +1641 1 1539 +1643 1 1537 +1648 1 1563 +1651 1 1560 +1667 1 1766 +1671 1 1762 +1674 1 1775 +1676 1 1769 +1678 1 1771 +168 1 163 +1681 1 1781 +169 1 162 +1693 1 1785 +1701 2 1730 +1704 1 1743 +1719 2 1745 +1726 1 1752 +1728 1 1697 +1745 1 1713 +1751 1 1719 +1752 1 1720 +1769 1 1674 +1774 1 1677 +1775 1 1676 +1777 2 1683 +1780 1 1686 +1781 1 1687 +1785 1 1691 +1786 1 1688 +1788 1 1694 +1789 1 1695 +1791 1 1693 +1796 1 1914 +1806 1 1904 +181 1 191 +1811 1 1900 +1813 1 1898 +1826 1 1886 +1827 1 1887 +1835 1 1879 +1837 1 1873 +1845 1 1864 +1846 1 1867 +1856 2 1850 +1862 1 1852 +1863 1 1853 +1864 1 1842 +1866 1 1840 +187 1 177 +1870 1 1844 +188 1 182 +1880 1 1827 +1890 1 1818 +1892 1 1820 +1899 1 1811 +19 2 18 +1906 1 1803 +1910 1 1807 +1914 2 1795 +1926 1 2033 +1937 1 2023 +1940 1 2018 +1941 1 2019 +1948 3 2026 +1955 1 2006 +1965 1 2008 +1972 1 1984 +1981 1 1993 +1983 1 1995 +1987 1 1968 +1990 1 1973 +1995 1 1976 +1999 1 1980 +2001 1 1955 +2002 1 1952 +2004 1 1958 +2009 1 1963 +2011 1 1961 +2013 1 1967 +2016 1 1937 +2017 1 1936 +2020 2 1941 +2025 1 1944 +2026 1 1947 +2029 1 1948 +203 1 198 +204 1 193 +2046 1 1934 +2056 1 2200 +2067 1 2178 +2072 1 2185 +2073 1 2184 +2085 1 2231 +2089 1 2235 +2092 1 2238 +2105 1 2218 +2106 1 2217 +2108 1 2223 +213 2 217 +2131 1 2246 +2138 1 2255 +2140 1 2249 +2144 1 2294 +2155 1 2301 +2177 1 2072 +2179 1 2074 +2180 1 2077 +2183 1 2078 +2186 1 2067 +2187 1 2066 +2189 1 2068 +2193 2 2057 +2194 1 2058 +22 1 23 +2201 1 2049 +2205 1 2053 +2214 1 2109 +2217 1 2098 +2218 1 2097 +2223 1 2100 +2227 1 2089 +2229 1 2095 +2232 1 2082 +2241 1 2140 +2244 1 2137 +2255 1 2130 +2262 1 2122 +2264 1 2116 +2270 1 2114 +2274 1 2173 +2277 1 2170 +2279 1 2168 +228 1 235 +2283 1 2164 +2285 2 2162 +2295 1 2153 +2306 1 2432 +2320 1 2451 +2323 1 2448 +2325 2 2454 +2335 1 2460 +2341 1 2469 +2348 1 2476 +2358 1 2487 +236 1 227 +2373 1 2499 +238 1 225 +2386 1 2517 +2393 2 2526 +2398 1 2521 +2400 1 2532 +2410 1 2542 +2412 2 2536 +2420 1 2545 +2426 1 2559 +2434 1 2313 +244 1 250 +2461 1 2327 +2463 3 2325 +2465 1 2344 +2469 1 2348 +2475 1 2338 +2476 1 2341 +2485 2 2365 +2487 1 2367 +2492 1 2356 +2494 1 2358 +2502 1 2377 +2506 1 2373 +2509 1 2370 +2512 1 2398 +2514 1 2396 +2515 1 2397 +2517 1 2395 +2524 1 2386 +2533 1 2408 +2539 1 2406 +2540 1 2401 +255 1 241 +2551 1 2427 +2553 1 2421 +2560 2 2740 +2563 1 2743 +2565 1 2737 +2569 1 2749 +2579 1 2726 +2580 1 2721 +2587 1 2734 +259 1 273 +2599 1 2705 +2607 1 2713 +2608 1 2695 +2619 2 2700 +2625 1 2801 +2626 1 2802 +263 2 277 +2637 1 2813 +2647 1 2790 +2649 1 2792 +2662 1 2772 +2663 1 2773 +2675 1 2752 +268 2 286 +2680 1 2763 +2682 1 2761 +2688 1 2621 +2689 1 2620 +2692 1 2617 +2700 1 2609 +2712 1 2596 +2714 1 2598 +2715 2 2599 +2719 1 2595 +2724 1 2587 +2725 1 2586 +2735 1 2576 +2745 1 2567 +275 1 256 +2752 1 2681 +2762 1 2675 +2772 1 2668 +2776 1 2656 +2786 2 2649 +279 1 260 +2790 1 2653 +2791 1 2652 +2803 3 2633 +2805 1 2639 +281 1 266 +2810 1 2624 +2811 1 2625 +2816 1 2982 +2821 1 2979 +2824 1 2990 +2835 1 2996 +2842 1 3005 +2843 2 3004 +2846 1 3001 +2847 1 3000 +2848 1 2948 +2850 1 2950 +2855 2 2947 +2862 1 2954 +2878 1 2971 +2886 1 3044 +289 1 305 +2897 2 3058 +2900 1 3063 +2903 1 3060 +2905 1 3066 +2911 1 3068 +2915 1 3011 +2919 1 3015 +2933 2 3028 +2938 1 3035 +294 1 310 +2941 1 3036 +2942 1 3039 +296 2 312 +2962 1 2876 +2968 2 2870 +2971 1 2869 +2977 1 2828 +2979 1 2830 +2984 1 2821 +2986 1 2823 +2988 1 2817 +2991 1 2818 +3002 1 2838 +3006 1 2834 +301 1 317 +302 1 318 +3021 2 2918 +3024 1 2938 +3029 1 2943 +3031 1 2941 +3036 1 2934 +3043 1 2890 +3054 1 2887 +3055 1 2886 +3058 1 2906 +3059 1 2907 +3060 2 2908 +3067 1 2899 +3071 1 2903 +3073 1 3289 +3079 2 3295 +3083 1 3283 +3084 1 3284 +3089 1 3272 +3094 1 3279 +3103 1 3270 +311 1 294 +3111 1 3325 +3118 1 3316 +3119 1 3317 +3144 1 3220 +3147 1 3223 +3159 2 3210 +3163 1 3206 +3174 1 3256 +3183 1 3249 +3190 1 3241 +3197 1 3234 +3199 1 3232 +320 1 342 +3203 1 3154 +3206 1 3159 +3208 1 3161 +3212 1 3165 +3213 1 3164 +3231 1 3151 +3232 1 3187 +3235 1 3184 +3244 1 3199 +3245 1 3198 +3248 1 3170 +3249 1 3171 +3253 1 3175 +3255 1 3173 +3263 1 3181 +3286 1 3074 +3300 1 3123 +3307 1 3132 +3322 1 3116 +3333 1 3535 +3352 1 3539 +336 1 327 +3365 1 3565 +3366 1 3566 +3397 1 3467 +34 1 32 +3401 1 3463 +3407 1 3457 +3409 1 3486 +341 1 322 +3418 2 3477 +342 1 321 +3421 1 3474 +3430 1 3498 +3443 1 3518 +3446 1 3515 +345 1 334 +3456 1 3395 +346 2 333 +3460 1 3399 +3462 3 3397 +3467 2 3400 +347 1 332 +3472 1 3410 +3478 1 3412 +3493 1 3428 +350 1 329 +3507 1 3443 +3510 1 3446 +3512 1 3448 +3533 1 3338 +3534 1 3337 +3541 1 3347 +3542 1 3344 +355 1 375 +3554 1 3367 +3555 2 3366 +3563 1 3374 +3566 1 3371 +3567 1 3370 +3568 1 3380 +3579 1 3391 +3588 2 3832 +3599 1 3827 +3606 1 3819 +3608 1 3813 +3609 1 3812 +361 1 381 +3613 1 3808 +3622 2 3800 +3625 1 3799 +3630 1 3792 +3637 1 3786 +364 1 376 +3648 1 3768 +3663 1 3767 +3664 1 3753 +367 1 379 +3672 1 3745 +3673 1 3744 +3677 1 3748 +3680 1 3738 +3682 1 3736 +3690 1 3728 +3691 1 3729 +3701 1 3726 +3702 1 3725 +3703 1 3724 +3707 1 3712 +3722 1 3711 +3724 1 3705 +3725 2 3704 +3728 2 3684 +3739 1 3695 +3747 1 3668 +3749 1 3666 +375 1 354 +3755 1 3676 +3763 1 3653 +3764 1 3650 +3769 1 3663 +3770 2 3660 +378 1 367 +3781 2 3636 +3789 1 3644 +379 1 366 +3810 1 3601 +3812 1 3607 +3823 1 3612 +3824 1 3586 +383 2 362 +3830 1 3588 +3835 1 3593 +3841 1 4079 +3848 1 4070 +3858 1 4093 +3860 1 4091 +3866 2 4085 +3874 1 4046 +3879 1 4043 +388 1 415 +3887 1 4035 +3901 1 4048 +3904 1 4010 +3907 1 4009 +391 1 412 +3910 1 4012 +3911 1 4013 +3913 1 4003 +392 1 403 +3932 1 4023 +3940 1 3980 +3941 1 3981 +3945 1 3969 +3946 1 3970 +3949 1 3973 +3958 1 3999 +3960 1 3985 +3961 1 3984 +3962 1 3987 +3965 1 3988 +3974 2 3937 +3980 1 3947 +3990 1 3952 +4018 1 3926 +4020 1 3920 +4024 1 3932 +4030 1 3930 +4037 1 3878 +4051 1 3889 +4054 1 3892 +4056 1 3898 +4075 1 3850 +4078 1 3855 +4088 1 3864 +41 1 43 +412 2 390 +417 1 440 +425 1 432 +443 1 419 +454 1 473 +455 1 472 +462 1 465 +470 1 456 +471 1 457 +481 1 508 +482 1 511 +485 1 504 +489 1 500 +49 1 50 +490 1 503 +491 1 502 +5 1 5 +500 1 488 +501 2 489 +504 1 484 +522 1 558 +523 1 559 +524 1 552 +530 1 567 +535 1 562 +579 1 611 +583 1 615 +584 1 616 +586 1 618 +587 1 619 +590 1 622 +597 1 628 +601 1 632 +612 1 582 +615 1 581 +618 1 584 +65 1 69 +650 1 679 +658 1 702 +66 1 70 +661 2 697 +663 1 699 +664 1 692 +677 1 650 +68 1 64 +681 1 646 +687 1 640 +688 1 670 +690 1 668 +691 1 669 +6923604860394528768 1 730584 +6924820982050758656 1 559959 +6926925215281774592 1 756509 +6927260280037097472 1 592467 +6928080429732536320 1 537242 +6933001829416034304 1 63094 +6933451028794925056 1 490073 +6933731240564056064 1 464629 +6934570741217755136 1 816504 +694 1 664 +6947488599548215296 1 808811 +695 1 665 +6960137166475911168 1 72582 +6962726713896484864 1 615974 +6963217546192322560 1 880517 +6964585306125008896 1 546052 +6967631925774639104 1 465781 +6969599299897163776 1 90512 +6974475559697768448 1 826200 +6982145326341423104 1 1014055 +6987889924212203520 1 807336 +6991316084916879360 1 998779 +6996686091335884800 1 814215 +7006803044329021440 1 1027327 +7013693841855774720 1 342226 +7014537632150224896 1 142670 +7017956982081404928 1 109077 +7022349041913978880 1 757243 +7027529814236192768 1 765777 +7031339012080549888 1 753364 +7039820685967343616 1 157862 +7045967493826387968 1 799010 +7049773031131283456 1 732637 +7052226236896256000 1 742356 +7054271419461812224 1 300878 +7054938591408996352 1 747602 +7060236714847412224 1 255629 +7061498706968428544 1 447554 +7061809776248545280 1 190303 +7062382339142156288 1 536726 +7062605127422894080 1 277502 +7065344324692443136 1 907886 +7068517339681259520 1 540658 +7069729473166090240 1 589445 +707 1 746 +7077311975029555200 1 315178 +7078641038157643776 1 589217 +7080269176324218880 1 715070 +7084659344078970880 1 675706 +7086206629592252416 1 713306 +7091300332052062208 1 932160 +7099005292698550272 1 833671 +71 1 67 +7107604675626008576 1 304314 +7125231541858205696 1 760984 +7128222874437238784 1 537031 +7130159794259353600 1 390997 +7130306447560826880 1 214211 +7149417430082027520 1 124734 +7153922334283776000 1 844332 +7157247449513484288 1 906728 +7164349895861829632 1 61980 +7165364563962191872 1 987900 +7166263463731421184 1 54670 +7175638927948562432 1 406610 +7186401810812059648 1 806345 +7195454019231834112 1 687270 +7198687580227043328 1 1036694 +7199539820886958080 1 445755 +7204802700490858496 1 463140 +7210160489915236352 1 844609 +7212016545671348224 1 54766 +7212090742612467712 1 974972 +7217123582035116032 1 772583 +7220131672176058368 1 963517 +7220581538170413056 1 784952 +7223569671814987776 1 222621 +7226360892091416576 1 643643 +7229607057201127424 1 645792 +723 1 763 +7231399302953377792 1 159918 +7232273749940838400 1 715692 +7235109456886816768 1 580301 +7237310132329488384 1 689819 +7238339720750948352 1 754613 +724 1 764 +7242751359672631296 1 5090 +7249443195032985600 1 939221 +7250237407877382144 1 197380 +7254710367022645248 1 461920 +7255302164215013376 1 973936 +7259955893466931200 1 878192 +7260908278294560768 1 856345 +7265141874315517952 1 627095 +7266437490436341760 1 656748 +7271786885641666560 1 909902 +7271887863395459072 1 483670 +7274777328897802240 1 113064 +7291432593139507200 1 871445 +7295502697317097472 1 182497 +7295926343524163584 1 368151 +7296164580491075584 1 340611 +7299197687217856512 1 358325 +73 1 77 +7304839835188609024 1 502601 +7308289763456000000 1 1008996 +7309156463509061632 1 674557 +7310869618402910208 1 514100 +7319711402123149312 1 300388 +7333512171174223872 1 850609 +7339426767877390336 1 1018927 +7343171468838567936 1 1024454 +7344029858387820544 1 840469 +7345991518378442752 1 833286 +7347732772348870656 1 954842 +7348598907182800896 1 372632 +735 1 759 +7354813692542304256 1 349952 +7359004378440146944 1 41621 +736 1 715 +7368920486374989824 1 620928 +7370078518278397952 1 893944 +7370803940448305152 1 333101 +7375521127126089728 1 706755 +7376467688511455232 1 893866 +7378993334503694336 1 132145 +738 1 713 +7381659098423926784 1 339834 +7384150968511315968 1 487426 +7386087924003676160 1 83202 +7391208370547269632 1 367123 +7393308503950548992 1 704450 +7394967727502467072 1 976863 +7401968422230032384 1 858157 +7410096605330227200 1 418033 +7410872053689794560 1 717188 +7411793502161182720 1 1034970 +7412924364686458880 1 1027755 +7414865343000322048 1 302028 +7418271723644403712 1 780005 +743 1 716 +7432428551399669760 1 1001633 +7432998950057975808 1 134701 +7436133434239229952 1 957737 +7440265908266827776 1 850776 +7450416810848313344 1 45499 +7452756603516190720 1 837950 +7454442625055145984 1 604611 +7454632396542074880 1 51201 +7461153404961128448 1 635261 +7471208109437304832 1 197170 +7473537548003352576 1 698582 +7486884806277611520 1 669242 +7487338208419823616 1 144965 +7487538600082554880 1 403520 +7490717730239250432 1 328681 +7491898395977523200 1 776346 +7492436934952574976 1 601655 +7497276415392407552 1 494104 +7497306924248834048 1 1027769 +7500716020874674176 1 827935 +7514552840617558016 1 162992 +7517159036469575680 1 514484 +7524958388842078208 1 915053 +7528074274555305984 1 262471 +7528211148397944832 1 743300 +7534042483076857856 1 530333 +7534145866886782976 1 660478 +7534549597202194432 1 586963 +7545689659010949120 1 28599 +7548958830580563968 1 714910 +7549858023389003776 1 151638 +7555301305375858688 1 163995 +7566273236152721408 1 77130 +7569249672628789248 1 560812 +7570474972934488064 1 798158 +7573530789362262016 1 1031080 +7575087487730196480 1 722471 +7581052107944361984 1 543042 +7581614118458335232 1 913794 +7584007864107778048 1 837408 +7592440105065308160 1 824450 +7593521922173419520 1 126978 +7596563216912211968 1 645011 +7599019810193211392 1 12895 +7608447395949109248 1 753994 +7614435638888210432 1 739117 +7620183559667081216 1 746755 +7621013099259527168 1 947880 +7625728883085025280 1 518078 +7626715182847090688 1 274063 +763 1 721 +7637152193832886272 1 1004421 +7647481735646363648 1 1041596 +7648729477297987584 1 753564 +7652123583449161728 1 152604 +7659279803863146496 1 383570 +7662037650719850496 1 526279 +7675009476762918912 1 4632 +7678790769408172032 1 704642 +7682327310082531328 1 436916 +7686992843032010752 1 445287 +7689489436826804224 1 1025479 +7690986322714066944 1 444524 +7691062622443044864 1 916372 +7696737688942567424 1 817369 +7697541332524376064 1 33947 +7700734109530767360 1 108461 +7701723309715685376 1 949245 +7705445437881278464 1 954523 +7710447533880614912 1 950794 +7718825401976684544 1 544397 +7720187583697502208 1 920130 +7731443941834678272 1 450072 +7735566678126616576 1 552524 +774 1 816 +7741854854673367040 1 141534 +7746402369011277824 1 576798 +7747874976739016704 1 17512 +7748799008146366464 1 95770 +7752740515534422016 1 557886 +7753359568986636288 1 16812 +7753882935005880320 1 840415 +7761834341179375616 1 822430 +7762823913046556672 1 526433 +7765456790394871808 1 499395 +7768984605670604800 1 686791 +7775034125776363520 1 560433 +7778936842502275072 1 226945 +7779486624537370624 1 102128 +7779735136559579136 1 506814 +7782245855193874432 1 42401 +7784169796350730240 1 626893 +7784489776013295616 1 143139 +779 1 829 +7790728456522784768 1 554862 +7792036342592348160 1 728415 +7794244032613703680 1 620176 +78 1 74 +780 1 826 +7800332581637259264 1 1015835 +7801697837312884736 1 569926 +7818464507324121088 1 123780 +782 1 824 +7823874904139849728 1 718132 +784 1 807 +7843804446688264192 1 699467 +7844258063629852672 1 83061 +7845953007588401152 1 482362 +7857878068300898304 1 112828 +7868367829080506368 1 952311 +7870277756614623232 1 142176 +7871189141676998656 1 140302 +7871554728617025536 1 873600 +7874764415950176256 1 1006282 +7885697257930588160 1 383275 +7888238729321496576 1 978236 +789 1 802 +7892026679115554816 1 116356 +7892281003266408448 1 583905 +7898670840507031552 1 45182 +7909645665163804672 1 832371 +7917494645725765632 1 922043 +7919597361814577152 1 948505 +7921639119138070528 1 29178 +7922443154272395264 1 674691 +7926898770090491904 1 652550 +7933040277013962752 1 710305 +7936149988210212864 1 295842 +7944741547145502720 1 1024770 +7947544013461512192 1 227091 +7948803266578161664 1 344448 +7955126053367119872 1 965708 +7961515985722605568 1 1003035 +7961909238130270208 1 43315 +797 1 810 +7983789401706094592 1 1039886 +7989119273552158720 1 457404 +7989160253372817408 1 459569 +7997694023324975104 1 935789 +7998357471114969088 1 814113 +7998687089080467456 1 738927 +80 1 85 +8000440057238052864 1 718071 +8002769767000145920 1 466405 +8004633750273925120 1 964776 +8011181697250631680 1 395538 +8011602724663336960 1 700699 +8014986215157530624 1 272813 +8017403886247927808 1 861656 +803 1 791 +8045070943673671680 1 318621 +8048726769133592576 1 848906 +8059284960252731392 1 572227 +8069531888205086720 1 581496 +8071961599867387904 1 68390 +8073733016154431488 1 715717 +8079573715140485120 1 1018777 +808 1 796 +8087737899452432384 1 447707 +809 1 797 +8091421389575282688 1 215522 +8099215208813903872 1 973063 +8100036735858401280 1 1022773 +8109381965028548608 1 142942 +8111757081791733760 1 945379 +8113585123802529792 1 738847 +8116738401948377088 1 404958 +812 1 792 +8120593157178228736 1 310959 +8129551357032259584 1 1037801 +8135164922674872320 1 447909 +8142241016679735296 1 193700 +8143462899383345152 1 431870 +8144552446127972352 1 382697 +8145745969573666816 1 964535 +8145750910080745472 1 740076 +8146288732715196416 1 50592 +8146492373537660928 1 308929 +8148211378319933440 1 991694 +815 1 795 +8150115791664340992 1 623215 +8156018594610790400 1 644617 +8156782979767238656 1 1178 +8160569434550403072 1 648971 +8160662610166194176 1 845589 +8163948965373386752 1 343915 +8168742078705262592 1 145378 +8169878743136043008 1 929721 +8171188598958407680 1 801229 +8183233196086214656 1 343057 +8184799300477943808 1 387363 +8190539859890601984 1 143201 +8190967051000659968 1 953772 +8192304692696383488 1 12692 +8195103847607967744 1 287854 +8199513544090730496 1 836776 +820 2 769 +8201303040648052736 1 1028718 +8201491077550874624 1 827022 +8208354137450766336 1 614376 +8210813831744118784 1 375584 +8213810702473183232 1 121749 +8219326436390821888 1 139838 +8220104397160169472 1 19294 +8221561626658881536 1 608332 +8222714144797368320 1 811147 +8223732800007864320 1 76077 +823 1 770 +8230371298967609344 1 974706 +8235179243092090880 1 216255 +8244041599171862528 1 1042464 +8254763178969915392 1 432849 +8268875586442256384 1 28798 +8269730157217062912 1 175790 +8272001752345690112 1 329033 +8279056098670198784 1 791833 +8282648443538710528 1 781652 +8283099811330506752 1 685381 +8286706213485297664 1 929113 +8287522765741301760 1 681222 +8290014929764040704 1 272013 +8290944180915871744 1 519204 +8294315622451740672 1 123922 +8295110846998233088 1 652368 +83 1 86 +8302473563519950848 1 864712 +8316336224427483136 1 543159 +8323460620425330688 1 601902 +8325227661920133120 1 458034 +8332670681629106176 1 665056 +8333523087360901120 1 750597 +8337549596011102208 1 1039170 +8345435427356090368 1 1038915 +835 1 881 +8351163199364390912 1 569025 +8362046808797306880 1 609771 +8365058996333953024 1 721699 +8367680396909404160 1 249574 +8368012468775608320 1 329934 +837 1 887 +8371939471056470016 1 471054 +8372408423196270592 1 608114 +8372588378498777088 1 981735 +8374321007870836736 1 777815 +8376440110255243264 1 202113 +8383159090746204160 1 653724 +8388363436324085760 1 900656 +8391407951622815744 1 490239 +8391785334471589888 1 79909 +8396433451610652672 1 948162 +8398862954249560064 1 1039775 +8407869317250220032 1 995849 +8410599906334097408 1 68108 +8411494452500930560 1 679287 +8415171956168417280 1 839358 +8416121695917498368 1 266317 +8417381121663746048 1 466352 +8419958579638157312 1 587560 +8424515140664360960 1 907455 +8435912708683087872 1 459239 +845 1 895 +8451612303224520704 1 699278 +8454154705460666368 1 503095 +8455496814886002688 1 414796 +8457906374051020800 1 251328 +8461498293348065280 1 234407 +8463868417649524736 1 645795 +8467976965865799680 1 826992 +8470141334513098752 1 631794 +8472429318602268672 1 735762 +8473699639908261888 1 871600 +8487573502287478784 1 593968 +8489584373231919104 1 994595 +8489735221193138176 1 586871 +85 1 80 +8501910015960735744 1 508713 +8508401924853850112 1 276469 +8509508263705477120 1 205480 +8514851182589771776 1 488804 +8514979402185596928 1 1026793 +8515682078777081856 1 668808 +8518454006987948032 1 1012347 +8519937082746634240 1 384129 +8523972434954510336 1 549458 +8524940073536954368 1 362671 +8525336514806317056 1 477135 +8525894870444638208 1 680934 +8532016240026279936 1 188263 +8536948829863198720 1 536980 +8540237852367446016 1 219051 +8543177193114779648 1 168927 +8547243497773457408 1 604502 +8551446856960942080 1 454554 +8553195689344991232 1 220227 +8554899472487596032 1 448949 +8555933456197828608 1 541247 +8555948987770511360 1 622197 +8557218322962644992 1 207996 +8558000156325707776 1 696817 +8560526613401714688 1 840278 +8569030475428511744 1 316601 +8570983266408103936 1 892070 +8571268359622172672 1 642620 +8573305425181941760 1 110424 +8577096957495025664 1 491976 +8579974641030365184 1 10331 +8583916402383601664 1 30633 +8613562211893919744 1 777789 +8625937019655200768 1 529736 +8631515095562887168 1 787220 +8637720762289659904 1 686925 +8639254009546055680 1 334148 +8641221723991433216 1 183604 +8643198489997254656 1 15835 +8644602243484803072 1 68951 +8649296591032172544 1 744123 +8652485812846567424 1 910332 +8656571350884048896 1 252662 +8660248367767076864 1 850992 +8665969966920990720 1 571270 +8666178591503564800 1 314212 +8677632093825916928 1 260142 +8677794924343164928 1 65514 +868 1 852 +8682955459667951616 1 478492 +8687042963221159936 1 311279 +8688483860094599168 1 148744 +8693036785094565888 1 12401 +8697823501349609472 1 721296 +8698055291501543424 1 763800 +8708232769657815040 1 274663 +8708845895460577280 1 883124 +871 1 855 +8714829359200747520 1 905663 +8716401555586727936 1 140150 +8720504651219001344 1 447504 +8723248113030782976 1 798933 +873 1 857 +8731960288562044928 1 360618 +8734584858442498048 1 469319 +8736061027343859712 1 401079 +874 1 858 +8752150411997356032 1 87835 +8759089349412847616 1 643740 +8759184090543857664 1 177084 +8760285623204290560 1 35855 +8761174805938331648 1 358117 +8769199243315814400 1 633047 +8773222500321361920 1 60858 +8775009214012456960 1 896840 +8779073705407963136 1 1029474 +8779711700787298304 1 481895 +878 1 862 +8780196485890555904 1 723264 +8782900615468302336 1 736941 +8783241818558193664 1 955534 +8785153741735616512 1 38624 +8792059919353348096 1 388730 +8793387410919038976 1 413671 +8795069490394882048 1 161172 +8806507556248731648 1 934495 +8808467247666241536 1 250324 +8811693967537774592 1 192729 +8815398225009967104 1 403033 +8817665768680906752 1 984196 +8822384228057604096 1 237608 +8825059717746376704 1 695689 +8829545979081744384 1 27953 +883 1 834 +8836228556823977984 1 389447 +8837420822750314496 1 343421 +8849475396952514560 1 312394 +8850055384477401088 1 277929 +8853989376829833216 1 562049 +8854495099223375872 1 560584 +8854677881758162944 1 564180 +8854715632851345408 1 887990 +8856674723376668672 1 164762 +8868529429494071296 1 383779 +8871707618793996288 1 267203 +8875745082589929472 1 454473 +888 1 841 +8895174927321243648 1 167552 +8896237972875370496 1 694766 +8897901899039473664 1 340157 +8899122608190930944 1 935127 +8900180888218329088 1 449875 +8900351886974279680 1 568772 +8900545829211299840 1 220507 +8905330479248064512 1 461629 +8910706980937261056 1 577882 +8920344895701393408 1 98805 +8920533610804609024 1 43980 +8927691194719174656 1 557391 +8928133990107881472 1 929808 +8935252708196999168 1 851378 +8936639033158410240 1 940932 +8939431770838810624 1 460912 +8945004737083555840 1 650809 +8945302550165004288 1 991386 +8962097525980225536 1 517586 +8972161729142095872 1 873975 +8979012655944220672 1 982389 +898 2 957 +8983857919580209152 1 854339 +8983912573761167360 1 266226 +8984935029383389184 1 97090 +8987827141270880256 1 358254 +8991071342495531008 1 782556 +8991442360387584000 1 126917 +8994608999945125888 1 403830 +8995562121346260992 1 600152 +8996824426131390464 1 479057 +9000633029632499712 1 990746 +9001907486943993856 1 925734 +9005866015985713152 1 187716 +9016280522993975296 1 130598 +9020143715350814720 1 566165 +9023663198045544448 1 746959 +9030480306789818368 1 594077 +9038087402564657152 1 138959 +9040958359122640896 1 440680 +9043089884440068096 1 760918 +9048002942653710336 1 528041 +9048297564833079296 1 840207 +9050032047355125760 1 344303 +9053187076403060736 1 713093 +9054887854393950208 1 775193 +9062227900376203264 1 18575 +9064847977742032896 1 673064 +9067985867711291392 1 11936 +9073672806863790080 1 1021782 +9075404705968840704 1 550576 +9078604269481148416 1 876039 +908 1 947 +9083076230151864320 1 10058 +9083704659251798016 1 142244 +9084402694981533696 1 838830 +9085381906890203136 1 843143 +9085434340468473856 1 243444 +9086905513121890304 1 392759 +9089435102788009984 1 709132 +9091082386452684800 1 722058 +9091085792947666944 1 793313 +9094945190752903168 1 175453 +9096395849845194752 1 233348 +91 1 94 +9104574294205636608 1 145855 +9107991000536498176 1 70820 +9112400579327483904 1 107474 +9114850402293882880 1 16888 +9116137265342169088 1 721176 +9117063974299148288 1 890713 +9119046173224370176 1 936346 +9123116008004288512 1 895367 +913 1 943 +9131533983989358592 1 1012897 +9132009829414584320 1 196241 +9136234417125007360 1 713458 +9136548192574529536 1 919441 +9139805788041134080 1 144984 +914 1 940 +9148071980848742400 1 253597 +9149216169284091904 1 340801 +9165199002069458944 1 595500 +9169248521377374208 1 1026723 +917 1 939 +9174894805640142848 1 707735 +918 1 936 +9180098147855769600 1 100655 +9182828596851990528 1 570492 +9185458640237641728 1 513119 +9185952983951343616 1 1036979 +9188173682239275008 1 999792 +919 1 937 +9190466190353661952 1 650630 +9191943992860327936 1 321481 +9194388393453060096 1 663992 +9199741683232399360 1 660353 +9207107990561972224 1 622425 +9207927479837319168 1 84466 +9209153648361848832 1 521797 +921 1 935 +9211455920344088576 1 946254 +922 1 932 +923 1 933 +927 1 929 +928 1 925 +939 1 918 +94 1 91 +945 1 909 +947 1 911 +950 2 906 +958 1 898 +961 1 1018 +965 1 1022 +967 1 1020 +976 1 1002 +979 1 1001 +982 1 1004 +987 1 993 +997 1 988 +999 1 990 +NULL 83 NULL diff --git ql/src/test/results/clientpositive/llap/vector_number_compare_projection.q.out ql/src/test/results/clientpositive/llap/vector_number_compare_projection.q.out index a172fd2..d405faf 100644 --- ql/src/test/results/clientpositive/llap/vector_number_compare_projection.q.out +++ ql/src/test/results/clientpositive/llap/vector_number_compare_projection.q.out @@ -146,8 +146,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -187,8 +188,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -275,8 +277,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -316,8 +319,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/llap/vector_orderby_5.q.out ql/src/test/results/clientpositive/llap/vector_orderby_5.q.out index a99cb2b..f1678d5 100644 --- ql/src/test/results/clientpositive/llap/vector_orderby_5.q.out +++ ql/src/test/results/clientpositive/llap/vector_orderby_5.q.out @@ -143,14 +143,13 @@ STAGE PLANS: Group By Operator aggregations: max(b) Group By Vectorization: - aggregators: VectorUDAFMaxLong(col 3) -> bigint - className: VectorGroupByOperator + className: VectorGroupByHashOneLongKeyOperator groupByMode: HASH vectorOutput: true keyExpressions: col 7 - native: false + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: bo (type: boolean) mode: hash outputColumnNames: _col0, _col1 @@ -172,7 +171,7 @@ STAGE PLANS: enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true groupByVectorOutput: true inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat - allNative: false + allNative: true usesVectorUDFAdaptor: false vectorized: true Reducer 2 @@ -194,8 +193,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: boolean) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/llap/vector_outer_join1.q.out ql/src/test/results/clientpositive/llap/vector_outer_join1.q.out index 0c27d4f..50f1368 100644 --- ql/src/test/results/clientpositive/llap/vector_outer_join1.q.out +++ ql/src/test/results/clientpositive/llap/vector_outer_join1.q.out @@ -739,8 +739,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE @@ -877,6 +880,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1] mode: mergepartial diff --git ql/src/test/results/clientpositive/llap/vector_outer_join2.q.out ql/src/test/results/clientpositive/llap/vector_outer_join2.q.out index 82fa27d..2898a6e 100644 --- ql/src/test/results/clientpositive/llap/vector_outer_join2.q.out +++ ql/src/test/results/clientpositive/llap/vector_outer_join2.q.out @@ -321,8 +321,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE @@ -459,6 +462,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1] mode: mergepartial diff --git ql/src/test/results/clientpositive/llap/vector_outer_reference_windowed.q.out ql/src/test/results/clientpositive/llap/vector_outer_reference_windowed.q.out index 6a90def..19b7084 100644 --- ql/src/test/results/clientpositive/llap/vector_outer_reference_windowed.q.out +++ ql/src/test/results/clientpositive/llap/vector_outer_reference_windowed.q.out @@ -173,8 +173,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function sum on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: COMPLETE @@ -227,6 +230,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function sum on column vector type DECIMAL, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0] mode: mergepartial @@ -392,8 +397,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function sum on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: c1 (type: decimal(15,2)), c2 (type: decimal(15,2)) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -450,6 +458,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function sum on column vector type DECIMAL, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0] keys: KEY._col0 (type: decimal(15,2)), KEY._col1 (type: decimal(15,2)) @@ -757,6 +767,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function sum on column vector type DECIMAL, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0] keys: KEY._col0 (type: decimal(15,2)), KEY._col1 (type: decimal(15,2)) @@ -1068,6 +1080,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function sum on column vector type DECIMAL, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0] keys: KEY._col0 (type: decimal(15,2)), KEY._col1 (type: decimal(15,2)) diff --git ql/src/test/results/clientpositive/llap/vector_partition_diff_num_cols.q.out ql/src/test/results/clientpositive/llap/vector_partition_diff_num_cols.q.out index 4683b4b..bdd4500 100644 --- ql/src/test/results/clientpositive/llap/vector_partition_diff_num_cols.q.out +++ ql/src/test/results/clientpositive/llap/vector_partition_diff_num_cols.q.out @@ -118,8 +118,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -159,8 +160,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -291,8 +293,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -332,8 +335,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -464,8 +468,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -505,8 +510,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -624,8 +630,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -665,8 +672,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -784,8 +792,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -825,8 +834,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/llap/vector_partitioned_date_time.q.out ql/src/test/results/clientpositive/llap/vector_partitioned_date_time.q.out index c5f7128..99dd1e3 100644 --- ql/src/test/results/clientpositive/llap/vector_partitioned_date_time.q.out +++ ql/src/test/results/clientpositive/llap/vector_partitioned_date_time.q.out @@ -452,14 +452,13 @@ STAGE PLANS: Group By Operator aggregations: count() Group By Vectorization: - aggregators: VectorUDAFCountStar(*) -> bigint - className: VectorGroupByOperator + className: VectorGroupByHashOneLongKeyCountStarOperator groupByMode: HASH vectorOutput: true keyExpressions: col 2 - native: false + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: fl_date (type: date) mode: hash outputColumnNames: _col0, _col1 @@ -481,7 +480,7 @@ STAGE PLANS: enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true groupByVectorOutput: true inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat - allNative: false + allNative: true usesVectorUDFAdaptor: false vectorized: true Reducer 2 @@ -503,8 +502,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: date) mode: mergepartial outputColumnNames: _col0, _col1 @@ -1388,14 +1387,13 @@ STAGE PLANS: Group By Operator aggregations: count() Group By Vectorization: - aggregators: VectorUDAFCountStar(*) -> bigint - className: VectorGroupByOperator + className: VectorGroupByHashOneLongKeyCountStarOperator groupByMode: HASH vectorOutput: true keyExpressions: col 5 - native: false + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: fl_date (type: date) mode: hash outputColumnNames: _col0, _col1 @@ -1417,7 +1415,7 @@ STAGE PLANS: enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true groupByVectorOutput: true inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat - allNative: false + allNative: true usesVectorUDFAdaptor: false vectorized: true Reducer 2 @@ -1439,8 +1437,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: date) mode: mergepartial outputColumnNames: _col0, _col1 @@ -2354,8 +2352,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 5 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: fl_time (type: timestamp) mode: hash outputColumnNames: _col0, _col1 @@ -2399,8 +2398,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: timestamp) mode: mergepartial outputColumnNames: _col0, _col1 @@ -2892,14 +2892,13 @@ STAGE PLANS: Group By Operator aggregations: count() Group By Vectorization: - aggregators: VectorUDAFCountStar(*) -> bigint - className: VectorGroupByOperator + className: VectorGroupByHashOneLongKeyCountStarOperator groupByMode: HASH vectorOutput: true keyExpressions: col 2 - native: false + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: fl_date (type: date) mode: hash outputColumnNames: _col0, _col1 @@ -2921,7 +2920,7 @@ STAGE PLANS: enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true groupByVectorOutput: true inputFileFormats: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat - allNative: false + allNative: true usesVectorUDFAdaptor: false vectorized: true Reducer 2 @@ -2943,8 +2942,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: date) mode: mergepartial outputColumnNames: _col0, _col1 @@ -3828,14 +3827,13 @@ STAGE PLANS: Group By Operator aggregations: count() Group By Vectorization: - aggregators: VectorUDAFCountStar(*) -> bigint - className: VectorGroupByOperator + className: VectorGroupByHashOneLongKeyCountStarOperator groupByMode: HASH vectorOutput: true keyExpressions: col 5 - native: false + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: fl_date (type: date) mode: hash outputColumnNames: _col0, _col1 @@ -3857,7 +3855,7 @@ STAGE PLANS: enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true groupByVectorOutput: true inputFileFormats: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat - allNative: false + allNative: true usesVectorUDFAdaptor: false vectorized: true Reducer 2 @@ -3879,8 +3877,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: date) mode: mergepartial outputColumnNames: _col0, _col1 @@ -4794,8 +4792,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 5 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: fl_time (type: timestamp) mode: hash outputColumnNames: _col0, _col1 @@ -4839,8 +4838,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: timestamp) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/llap/vector_reduce_groupby_decimal.q.out ql/src/test/results/clientpositive/llap/vector_reduce_groupby_decimal.q.out index 579bb61..8eed2cd 100644 --- ql/src/test/results/clientpositive/llap/vector_reduce_groupby_decimal.q.out +++ ql/src/test/results/clientpositive/llap/vector_reduce_groupby_decimal.q.out @@ -69,8 +69,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2, col 3 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: cint (type: int), cdouble (type: double), cdecimal1 (type: decimal(20,10)), cdecimal2 (type: decimal(23,14)) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4 @@ -115,8 +116,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2, col 3 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type DECIMAL, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: int), KEY._col1 (type: double), KEY._col2 (type: decimal(20,10)), KEY._col3 (type: decimal(23,14)) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4 diff --git ql/src/test/results/clientpositive/llap/vector_string_concat.q.out ql/src/test/results/clientpositive/llap/vector_string_concat.q.out index d5331ec..6b0fbc0 100644 --- ql/src/test/results/clientpositive/llap/vector_string_concat.q.out +++ ql/src/test/results/clientpositive/llap/vector_string_concat.q.out @@ -360,8 +360,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 19 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: _col0 (type: string) mode: hash outputColumnNames: _col0 @@ -403,8 +404,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [] keys: KEY._col0 (type: string) mode: mergepartial outputColumnNames: _col0 diff --git ql/src/test/results/clientpositive/llap/vector_tablesample_rows.q.out ql/src/test/results/clientpositive/llap/vector_tablesample_rows.q.out index a51297c..ff0e2c9 100644 --- ql/src/test/results/clientpositive/llap/vector_tablesample_rows.q.out +++ ql/src/test/results/clientpositive/llap/vector_tablesample_rows.q.out @@ -278,6 +278,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0] mode: mergepartial diff --git ql/src/test/results/clientpositive/llap/vector_udf1.q.out ql/src/test/results/clientpositive/llap/vector_udf1.q.out index b8d19c5..4242b94 100644 --- ql/src/test/results/clientpositive/llap/vector_udf1.q.out +++ ql/src/test/results/clientpositive/llap/vector_udf1.q.out @@ -2766,8 +2766,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type BYTES, Cannot specialize aggregation function min on column vector type BYTES] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 288 Basic stats: COMPLETE Column stats: NONE @@ -2820,6 +2823,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type BYTES, Cannot specialize aggregation function min on column vector type BYTES, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1] mode: mergepartial @@ -2909,8 +2914,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function max on column vector type BYTES, Cannot specialize aggregation function max on column vector type BYTES] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 288 Basic stats: COMPLETE Column stats: NONE @@ -2963,6 +2971,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function max on column vector type BYTES, Cannot specialize aggregation function max on column vector type BYTES, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1] mode: mergepartial diff --git ql/src/test/results/clientpositive/llap/vector_when_case_null.q.out ql/src/test/results/clientpositive/llap/vector_when_case_null.q.out index f137c63..dcb86d3 100644 --- ql/src/test/results/clientpositive/llap/vector_when_case_null.q.out +++ ql/src/test/results/clientpositive/llap/vector_when_case_null.q.out @@ -62,8 +62,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: _col0 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -107,8 +108,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0] keys: KEY._col0 (type: string) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/llap/vector_windowing.q.out ql/src/test/results/clientpositive/llap/vector_windowing.q.out index e3d7897..66010d7 100644 --- ql/src/test/results/clientpositive/llap/vector_windowing.q.out +++ ql/src/test/results/clientpositive/llap/vector_windowing.q.out @@ -232,8 +232,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2, col 1, col 5 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {MIN_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: p_mfgr (type: string), p_name (type: string), p_size (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 @@ -438,8 +442,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2, col 1, col 5 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {MIN_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: p_mfgr (type: string), p_name (type: string), p_size (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 @@ -3761,8 +3769,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1, col 2, col 5, col 7 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1] + runtimeHashAggrOutputInfos: {MIN_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 2, MAX_FUNC:1, PRIMITIVE, DOUBLE, aggrOffset: 3} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 keys: p_name (type: string), p_mfgr (type: string), p_size (type: int), p_retailprice (type: double) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 @@ -3820,6 +3832,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2, col 3 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0, 1] keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: int), KEY._col3 (type: double) @@ -4460,8 +4474,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2, col 3 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {SUM_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: p_mfgr (type: string), p_brand (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -4519,6 +4537,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0] keys: KEY._col0 (type: string), KEY._col1 (type: string) @@ -5916,8 +5936,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2, col 1, col 5 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {MIN_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: p_mfgr (type: string), p_name (type: string), p_size (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 @@ -7538,6 +7562,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2, col 3 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [] keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: int), KEY._col3 (type: bigint) diff --git ql/src/test/results/clientpositive/llap/vector_windowing_gby.q.out ql/src/test/results/clientpositive/llap/vector_windowing_gby.q.out index 0514c2e..a282e93 100644 --- ql/src/test/results/clientpositive/llap/vector_windowing_gby.q.out +++ ql/src/test/results/clientpositive/llap/vector_windowing_gby.q.out @@ -183,6 +183,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0, 1] keys: KEY._col0 (type: boolean) diff --git ql/src/test/results/clientpositive/llap/vector_windowing_gby2.q.out ql/src/test/results/clientpositive/llap/vector_windowing_gby2.q.out index 72e664f..16ebf4c 100644 --- ql/src/test/results/clientpositive/llap/vector_windowing_gby2.q.out +++ ql/src/test/results/clientpositive/llap/vector_windowing_gby2.q.out @@ -51,8 +51,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {SUM_FUNC:0, PRIMITIVE, LONG, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: key (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -109,6 +113,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0] keys: KEY._col0 (type: string) @@ -294,8 +300,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 5 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type BYTES] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: _col0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -353,6 +362,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type BYTES, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0, 1] keys: KEY._col0 (type: int) @@ -532,8 +543,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3] + runtimeHashAggrOutputInfos: {SUM_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 3, SUM_FUNC:1, PRIMITIVE, DOUBLE, aggrOffset: 4, MAX_FUNC:2, PRIMITIVE, LONG, aggrOffset: 2, SUM_FUNC:3, PRIMITIVE, DOUBLE, aggrOffset: 5} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 keys: _col0 (type: string), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 @@ -591,6 +606,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0, 1, 2, 3] keys: KEY._col0 (type: string), KEY._col1 (type: string) @@ -1029,6 +1046,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0, 1] keys: KEY._col0 (type: boolean) diff --git ql/src/test/results/clientpositive/llap/vectorization_0.q.out ql/src/test/results/clientpositive/llap/vectorization_0.q.out index db76eaa..6611e9e 100644 --- ql/src/test/results/clientpositive/llap/vectorization_0.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_0.q.out @@ -55,8 +55,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE @@ -109,6 +112,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1, 2, 3] mode: mergepartial @@ -236,8 +241,12 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {SUM_FUNC:0, PRIMITIVE, LONG, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -290,6 +299,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0] mode: mergepartial @@ -564,8 +575,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: COMPLETE @@ -618,6 +632,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1, 2, 3] mode: mergepartial @@ -745,8 +761,12 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {SUM_FUNC:0, PRIMITIVE, LONG, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -799,6 +819,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0] mode: mergepartial @@ -1073,8 +1095,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE @@ -1127,6 +1152,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1, 2, 3] mode: mergepartial @@ -1254,8 +1281,12 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {SUM_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -1308,6 +1339,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0] mode: mergepartial @@ -1627,8 +1660,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_pop on column vector type LONG, Cannot specialize aggregation function var_samp on column vector type LONG] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4, 5] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 7 mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 Statistics: Num rows: 1 Data size: 260 Basic stats: COMPLETE Column stats: COMPLETE @@ -1682,6 +1718,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function var_samp on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1, 2, 3, 4, 5] mode: mergepartial diff --git ql/src/test/results/clientpositive/llap/vectorization_1.q.out ql/src/test/results/clientpositive/llap/vectorization_1.q.out index 4699c2e..e34d9f4 100644 --- ql/src/test/results/clientpositive/llap/vectorization_1.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_1.q.out @@ -87,8 +87,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function var_pop on column vector type LONG, Cannot specialize aggregation function var_samp on column vector type DOUBLE] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4, 5] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 Statistics: Num rows: 1 Data size: 184 Basic stats: COMPLETE Column stats: COMPLETE @@ -142,6 +145,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function var_pop on column vector type STRUCT, Cannot specialize aggregation function var_samp on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1, 2, 3, 4, 5] mode: mergepartial diff --git ql/src/test/results/clientpositive/llap/vectorization_12.q.out ql/src/test/results/clientpositive/llap/vectorization_12.q.out index 863a26f..e6ae16f 100644 --- ql/src/test/results/clientpositive/llap/vectorization_12.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_12.q.out @@ -111,8 +111,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 5, col 3, col 6, col 10 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type LONG, Cannot specialize aggregation function stddev_pop on column vector type DOUBLE] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 keys: cdouble (type: double), cbigint (type: bigint), cstring1 (type: string), cboolean1 (type: boolean) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 @@ -169,6 +172,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2, col 3 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type STRUCT, Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0, 1, 2, 3, 4] keys: KEY._col0 (type: double), KEY._col1 (type: bigint), KEY._col2 (type: string), KEY._col3 (type: boolean) diff --git ql/src/test/results/clientpositive/llap/vectorization_13.q.out ql/src/test/results/clientpositive/llap/vectorization_13.q.out index d3e4309..e277908 100644 --- ql/src/test/results/clientpositive/llap/vectorization_13.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_13.q.out @@ -113,8 +113,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 10, col 0, col 8, col 4, col 6 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_pop on column vector type DOUBLE, Cannot specialize aggregation function stddev_pop on column vector type LONG] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4, 5] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 keys: cboolean1 (type: boolean), ctinyint (type: tinyint), ctimestamp1 (type: timestamp), cfloat (type: float), cstring1 (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10 @@ -172,6 +175,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2, col 3, col 4 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0, 1, 2, 3, 4, 5] keys: KEY._col0 (type: boolean), KEY._col1 (type: tinyint), KEY._col2 (type: timestamp), KEY._col3 (type: float), KEY._col4 (type: string) @@ -468,8 +473,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 10, col 0, col 8, col 4, col 6 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_pop on column vector type DOUBLE, Cannot specialize aggregation function stddev_pop on column vector type LONG] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5] keys: cboolean1 (type: boolean), ctinyint (type: tinyint), ctimestamp1 (type: timestamp), cfloat (type: float), cstring1 (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10 @@ -513,8 +519,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2, col 3, col 4 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0, 1, 2, 3, 4, 5] keys: KEY._col0 (type: boolean), KEY._col1 (type: tinyint), KEY._col2 (type: timestamp), KEY._col3 (type: float), KEY._col4 (type: string) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10 diff --git ql/src/test/results/clientpositive/llap/vectorization_14.q.out ql/src/test/results/clientpositive/llap/vectorization_14.q.out index 418e4ea..16540e2 100644 --- ql/src/test/results/clientpositive/llap/vectorization_14.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_14.q.out @@ -114,8 +114,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 6, col 4, col 5, col 8, col 10 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type DOUBLE, Cannot specialize aggregation function stddev_pop on column vector type DOUBLE, Cannot specialize aggregation function var_pop on column vector type DOUBLE, Cannot specialize aggregation function var_samp on column vector type DOUBLE] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4, 5] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 keys: _col2 (type: string), _col1 (type: float), _col4 (type: double), _col0 (type: timestamp), _col3 (type: boolean) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10 @@ -173,6 +176,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2, col 3, col 4 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function var_pop on column vector type STRUCT, Cannot specialize aggregation function var_samp on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0, 1, 2, 3, 4, 5] keys: KEY._col0 (type: string), KEY._col1 (type: float), KEY._col2 (type: double), KEY._col3 (type: timestamp), KEY._col4 (type: boolean) diff --git ql/src/test/results/clientpositive/llap/vectorization_15.q.out ql/src/test/results/clientpositive/llap/vectorization_15.q.out index 79c7084..eb46751 100644 --- ql/src/test/results/clientpositive/llap/vectorization_15.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_15.q.out @@ -109,8 +109,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 4, col 10, col 5, col 6, col 0, col 2, col 8 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type DOUBLE, Cannot specialize aggregation function stddev_samp on column vector type LONG, Cannot specialize aggregation function var_pop on column vector type LONG, Cannot specialize aggregation function var_samp on column vector type LONG, Cannot specialize aggregation function stddev_pop on column vector type LONG] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4, 5] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: cfloat (type: float), cboolean1 (type: boolean), cdouble (type: double), cstring1 (type: string), ctinyint (type: tinyint), cint (type: int), ctimestamp1 (type: timestamp) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12 diff --git ql/src/test/results/clientpositive/llap/vectorization_16.q.out ql/src/test/results/clientpositive/llap/vectorization_16.q.out index d961af2..ac7dda2 100644 --- ql/src/test/results/clientpositive/llap/vectorization_16.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_16.q.out @@ -86,8 +86,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 5, col 6, col 8 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type DOUBLE] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 keys: cdouble (type: double), cstring1 (type: string), ctimestamp1 (type: timestamp) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 @@ -144,6 +147,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0, 1, 2] keys: KEY._col0 (type: double), KEY._col1 (type: string), KEY._col2 (type: timestamp) diff --git ql/src/test/results/clientpositive/llap/vectorization_2.q.out ql/src/test/results/clientpositive/llap/vectorization_2.q.out index affd1b6..cb061fb 100644 --- ql/src/test/results/clientpositive/llap/vectorization_2.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_2.q.out @@ -91,8 +91,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function var_pop on column vector type LONG] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4, 5] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 9 mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 Statistics: Num rows: 1 Data size: 256 Basic stats: COMPLETE Column stats: COMPLETE @@ -146,6 +149,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function var_pop on column vector type STRUCT, Cannot specialize aggregation function avg on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1, 2, 3, 4, 5] mode: mergepartial diff --git ql/src/test/results/clientpositive/llap/vectorization_3.q.out ql/src/test/results/clientpositive/llap/vectorization_3.q.out index 4154746..312b810 100644 --- ql/src/test/results/clientpositive/llap/vectorization_3.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_3.q.out @@ -96,8 +96,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type LONG, Cannot specialize aggregation function stddev_pop on column vector type LONG, Cannot specialize aggregation function stddev_samp on column vector type DOUBLE, Cannot specialize aggregation function stddev_pop on column vector type LONG] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4, 5] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 5 mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 Statistics: Num rows: 1 Data size: 404 Basic stats: COMPLETE Column stats: COMPLETE @@ -151,6 +154,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function stddev_samp on column vector type STRUCT, Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1, 2, 3, 4, 5] mode: mergepartial diff --git ql/src/test/results/clientpositive/llap/vectorization_4.q.out ql/src/test/results/clientpositive/llap/vectorization_4.q.out index 0b2adad..8d11b2f 100644 --- ql/src/test/results/clientpositive/llap/vectorization_4.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_4.q.out @@ -91,8 +91,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_pop on column vector type DOUBLE, Cannot specialize aggregation function var_pop on column vector type DOUBLE] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4 Statistics: Num rows: 1 Data size: 252 Basic stats: COMPLETE Column stats: COMPLETE @@ -145,6 +148,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function var_pop on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1, 2, 3, 4] mode: mergepartial diff --git ql/src/test/results/clientpositive/llap/vectorization_5.q.out ql/src/test/results/clientpositive/llap/vectorization_5.q.out index 2300780..38ab8a1 100644 --- ql/src/test/results/clientpositive/llap/vectorization_5.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_5.q.out @@ -85,8 +85,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 7 mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4 Statistics: Num rows: 1 Data size: 28 Basic stats: COMPLETE Column stats: COMPLETE @@ -140,6 +143,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1, 2, 3, 4] mode: mergepartial diff --git ql/src/test/results/clientpositive/llap/vectorization_9.q.out ql/src/test/results/clientpositive/llap/vectorization_9.q.out index d961af2..ac7dda2 100644 --- ql/src/test/results/clientpositive/llap/vectorization_9.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_9.q.out @@ -86,8 +86,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 5, col 6, col 8 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type DOUBLE] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 keys: cdouble (type: double), cstring1 (type: string), ctimestamp1 (type: timestamp) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 @@ -144,6 +147,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0, 1, 2] keys: KEY._col0 (type: double), KEY._col1 (type: string), KEY._col2 (type: timestamp) diff --git ql/src/test/results/clientpositive/llap/vectorization_limit.q.out ql/src/test/results/clientpositive/llap/vectorization_limit.q.out index fc30e22..afd82a5 100644 --- ql/src/test/results/clientpositive/llap/vectorization_limit.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_limit.q.out @@ -266,8 +266,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {AVG_FUNC:0, AVERAGE_DOUBLE, countAggrOffset: 2, sumAggrOffset: 3} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 keys: _col0 (type: tinyint) mode: hash outputColumnNames: _col0, _col1 @@ -327,6 +331,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0] keys: KEY._col0 (type: tinyint) @@ -429,8 +435,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: ctinyint (type: tinyint) mode: hash outputColumnNames: _col0 @@ -485,6 +496,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [] keys: KEY._col0 (type: tinyint) @@ -587,8 +600,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 5 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: ctinyint (type: tinyint), cdouble (type: double) mode: hash outputColumnNames: _col0, _col1 @@ -643,6 +661,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [] keys: KEY._col0 (type: tinyint), KEY._col1 (type: double) @@ -658,6 +678,7 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true vectorProcessingMode: STREAMING projectedOutputColumns: [0] keys: _col0 (type: tinyint) @@ -790,8 +811,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 5 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {SUM_FUNC:0, PRIMITIVE, LONG, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: cdouble (type: double) mode: hash outputColumnNames: _col0, _col1 @@ -848,6 +873,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [0] keys: KEY._col0 (type: double) diff --git ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out index 38598b4..48c34f1 100644 --- ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out @@ -119,8 +119,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_pop on column vector type LONG, Cannot specialize aggregation function stddev_samp on column vector type LONG, Cannot specialize aggregation function var_samp on column vector type LONG, Cannot specialize aggregation function stddev_samp on column vector type LONG] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8] mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 Statistics: Num rows: 1 Data size: 492 Basic stats: COMPLETE Column stats: COMPLETE @@ -160,8 +161,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function stddev_samp on column vector type STRUCT, Cannot specialize aggregation function var_samp on column vector type STRUCT, Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function stddev_samp on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8] mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 Statistics: Num rows: 1 Data size: 68 Basic stats: COMPLETE Column stats: COMPLETE @@ -383,8 +385,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function var_pop on column vector type LONG, Cannot specialize aggregation function stddev_pop on column vector type LONG, Cannot specialize aggregation function stddev_samp on column vector type LONG, Cannot specialize aggregation function var_samp on column vector type LONG] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8] mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 Statistics: Num rows: 1 Data size: 420 Basic stats: COMPLETE Column stats: COMPLETE @@ -424,8 +427,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function var_pop on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function stddev_samp on column vector type STRUCT, Cannot specialize aggregation function var_samp on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8] mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE @@ -639,8 +643,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function var_pop on column vector type LONG, Cannot specialize aggregation function stddev_pop on column vector type LONG, Cannot specialize aggregation function stddev_samp on column vector type DOUBLE] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7] mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 Statistics: Num rows: 1 Data size: 340 Basic stats: COMPLETE Column stats: COMPLETE @@ -680,8 +685,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function var_pop on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function stddev_samp on column vector type STRUCT, Cannot specialize aggregation function avg on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7] mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 Statistics: Num rows: 1 Data size: 56 Basic stats: COMPLETE Column stats: COMPLETE @@ -874,8 +880,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type LONG, Cannot specialize aggregation function var_pop on column vector type LONG, Cannot specialize aggregation function var_pop on column vector type LONG] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5] mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 Statistics: Num rows: 1 Data size: 328 Basic stats: COMPLETE Column stats: COMPLETE @@ -915,8 +922,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function stddev_samp on column vector type STRUCT, Cannot specialize aggregation function var_pop on column vector type STRUCT, Cannot specialize aggregation function var_pop on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0, 1, 2, 3, 4, 5] mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 Statistics: Num rows: 1 Data size: 44 Basic stats: COMPLETE Column stats: COMPLETE @@ -2215,8 +2223,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type LONG, Cannot specialize aggregation function var_pop on column vector type LONG] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3] keys: csmallint (type: smallint) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4 @@ -2260,8 +2269,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type STRUCT, Cannot specialize aggregation function var_pop on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0, 1, 2, 3] keys: KEY._col0 (type: smallint) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4 @@ -2495,8 +2505,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 5 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function var_samp on column vector type DOUBLE, Cannot specialize aggregation function var_pop on column vector type DOUBLE, Cannot specialize aggregation function stddev_pop on column vector type DOUBLE] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5] keys: cdouble (type: double) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6 @@ -2540,8 +2551,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function var_samp on column vector type STRUCT, Cannot specialize aggregation function var_pop on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0, 1, 2, 3, 4, 5] keys: KEY._col0 (type: double) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6 @@ -2819,8 +2831,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 8, col 6 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_pop on column vector type LONG, Cannot specialize aggregation function var_samp on column vector type LONG, Cannot specialize aggregation function var_pop on column vector type DOUBLE, Cannot specialize aggregation function var_samp on column vector type DOUBLE, Cannot specialize aggregation function var_pop on column vector type LONG, Cannot specialize aggregation function stddev_pop on column vector type LONG] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] keys: ctimestamp1 (type: timestamp), cstring1 (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14 @@ -2864,8 +2877,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function var_samp on column vector type STRUCT, Cannot specialize aggregation function var_pop on column vector type STRUCT, Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function var_samp on column vector type STRUCT, Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function var_pop on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] keys: KEY._col0 (type: timestamp), KEY._col1 (type: string) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14 @@ -3224,8 +3238,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 10 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function var_samp on column vector type LONG, Cannot specialize aggregation function var_pop on column vector type LONG, Cannot specialize aggregation function stddev_samp on column vector type LONG, Cannot specialize aggregation function stddev_pop on column vector type LONG] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] keys: cboolean1 (type: boolean) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10 @@ -3269,8 +3284,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [Cannot specialize aggregation function var_samp on column vector type STRUCT, Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function var_pop on column vector type STRUCT, Cannot specialize aggregation function stddev_samp on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function avg on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] keys: KEY._col0 (type: boolean) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10 @@ -3466,8 +3482,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -3507,8 +3524,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -3584,8 +3602,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -3625,8 +3644,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -3774,8 +3794,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -3815,8 +3836,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE @@ -3892,8 +3914,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -3933,8 +3956,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -4010,8 +4034,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -4051,8 +4076,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -4128,8 +4154,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -4169,8 +4196,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -4246,8 +4274,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function count on column vector type BYTES] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -4287,8 +4316,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -4364,8 +4394,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -4405,8 +4436,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/llap/vectorized_case.q.out ql/src/test/results/clientpositive/llap/vectorized_case.q.out index 80add93..2ee3e3f 100644 --- ql/src/test/results/clientpositive/llap/vectorized_case.q.out +++ ql/src/test/results/clientpositive/llap/vectorized_case.q.out @@ -293,8 +293,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1] mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE @@ -334,8 +335,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0, 1] mode: mergepartial outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE @@ -424,8 +426,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1] mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE @@ -465,8 +468,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0, 1] mode: mergepartial outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE diff --git ql/src/test/results/clientpositive/llap/vectorized_date_funcs.q.out ql/src/test/results/clientpositive/llap/vectorized_date_funcs.q.out index 39e8096..aa7c2de 100644 --- ql/src/test/results/clientpositive/llap/vectorized_date_funcs.q.out +++ ql/src/test/results/clientpositive/llap/vectorized_date_funcs.q.out @@ -1264,8 +1264,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3] mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 128 Basic stats: COMPLETE Column stats: NONE @@ -1305,8 +1306,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0, 1, 2, 3] mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 128 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/llap/vectorized_distinct_gby.q.out ql/src/test/results/clientpositive/llap/vectorized_distinct_gby.q.out index fe9f0d2..0457786 100644 --- ql/src/test/results/clientpositive/llap/vectorized_distinct_gby.q.out +++ ql/src/test/results/clientpositive/llap/vectorized_distinct_gby.q.out @@ -61,6 +61,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING projectedOutputColumns: [] keys: a (type: int) @@ -75,8 +77,12 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1] + runtimeHashAggrOutputInfos: {SUM_FUNC:0, PRIMITIVE, LONG, aggrOffset: 3, COUNT_FUNC:1, PRIMITIVE, LONG, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE @@ -129,6 +135,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1] mode: mergepartial @@ -206,8 +214,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: cint (type: int) mode: hash outputColumnNames: _col0 @@ -261,6 +274,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [] keys: KEY._col0 (type: int) @@ -275,8 +290,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function std on column vector type LONG] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 5 mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 172 Basic stats: COMPLETE Column stats: COMPLETE @@ -314,6 +332,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function std on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1, 2, 3] mode: mergepartial diff --git ql/src/test/results/clientpositive/llap/vectorized_dynamic_semijoin_reduction.q.out ql/src/test/results/clientpositive/llap/vectorized_dynamic_semijoin_reduction.q.out index 0af7204..3cbb915 100644 --- ql/src/test/results/clientpositive/llap/vectorized_dynamic_semijoin_reduction.q.out +++ ql/src/test/results/clientpositive/llap/vectorized_dynamic_semijoin_reduction.q.out @@ -139,8 +139,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function bloom_filter on column vector type LONG] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2] mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: NONE @@ -179,7 +180,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -205,8 +205,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -238,8 +239,9 @@ STAGE PLANS: groupByMode: FINAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function bloom_filter on column vector type BYTES, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING - projectedOutputColumns: [0, 1, 2] mode: final outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: NONE @@ -384,8 +386,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type BYTES, Cannot specialize aggregation function max on column vector type BYTES, Cannot specialize aggregation function bloom_filter on column vector type BYTES] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2] mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 552 Basic stats: COMPLETE Column stats: NONE @@ -424,7 +427,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -450,8 +452,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -483,8 +486,9 @@ STAGE PLANS: groupByMode: FINAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type BYTES, Cannot specialize aggregation function max on column vector type BYTES, Cannot specialize aggregation function bloom_filter on column vector type BYTES, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING - projectedOutputColumns: [0, 1, 2] mode: final outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 552 Basic stats: COMPLETE Column stats: NONE @@ -629,8 +633,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type BYTES, Cannot specialize aggregation function max on column vector type BYTES, Cannot specialize aggregation function bloom_filter on column vector type BYTES] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2] mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 552 Basic stats: COMPLETE Column stats: NONE @@ -669,7 +674,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -695,8 +699,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -728,8 +733,9 @@ STAGE PLANS: groupByMode: FINAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type BYTES, Cannot specialize aggregation function max on column vector type BYTES, Cannot specialize aggregation function bloom_filter on column vector type BYTES, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING - projectedOutputColumns: [0, 1, 2] mode: final outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 552 Basic stats: COMPLETE Column stats: NONE @@ -875,8 +881,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function bloom_filter on column vector type LONG] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2] mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: NONE @@ -947,8 +954,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function bloom_filter on column vector type LONG] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2] mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: NONE @@ -989,7 +997,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1015,8 +1022,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1048,8 +1056,9 @@ STAGE PLANS: groupByMode: FINAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function bloom_filter on column vector type BYTES, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING - projectedOutputColumns: [0, 1, 2] mode: final outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: NONE @@ -1079,8 +1088,9 @@ STAGE PLANS: groupByMode: FINAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function bloom_filter on column vector type BYTES, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING - projectedOutputColumns: [0, 1, 2] mode: final outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: NONE @@ -1226,8 +1236,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type BYTES, Cannot specialize aggregation function max on column vector type BYTES, Cannot specialize aggregation function bloom_filter on column vector type BYTES] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2] mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 552 Basic stats: COMPLETE Column stats: NONE @@ -1255,8 +1266,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function bloom_filter on column vector type LONG] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2] mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: NONE @@ -1295,7 +1307,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1321,8 +1332,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1354,8 +1366,9 @@ STAGE PLANS: groupByMode: FINAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type BYTES, Cannot specialize aggregation function max on column vector type BYTES, Cannot specialize aggregation function bloom_filter on column vector type BYTES, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING - projectedOutputColumns: [0, 1, 2] mode: final outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 552 Basic stats: COMPLETE Column stats: NONE @@ -1385,8 +1398,9 @@ STAGE PLANS: groupByMode: FINAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function bloom_filter on column vector type BYTES, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING - projectedOutputColumns: [0, 1, 2] mode: final outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: NONE @@ -1531,8 +1545,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function bloom_filter on column vector type LONG] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2] mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: NONE @@ -1571,7 +1586,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1597,8 +1611,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1630,8 +1645,9 @@ STAGE PLANS: groupByMode: FINAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function bloom_filter on column vector type BYTES, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: STREAMING - projectedOutputColumns: [0, 1, 2] mode: final outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/llap/vectorized_mapjoin.q.out ql/src/test/results/clientpositive/llap/vectorized_mapjoin.q.out index 9590c00..2126962 100644 --- ql/src/test/results/clientpositive/llap/vectorized_mapjoin.q.out +++ ql/src/test/results/clientpositive/llap/vectorized_mapjoin.q.out @@ -77,8 +77,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3] mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: COMPLETE @@ -160,8 +161,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0, 1, 2, 3] mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE diff --git ql/src/test/results/clientpositive/llap/vectorized_mapjoin2.q.out ql/src/test/results/clientpositive/llap/vectorized_mapjoin2.q.out index 74ff8df..bea2950 100644 --- ql/src/test/results/clientpositive/llap/vectorized_mapjoin2.q.out +++ ql/src/test/results/clientpositive/llap/vectorized_mapjoin2.q.out @@ -95,8 +95,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -178,8 +179,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, One Long Key Max Columns Not Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/llap/vectorized_parquet_types.q.out ql/src/test/results/clientpositive/llap/vectorized_parquet_types.q.out index cdf6b3d..fa14aa1 100644 --- ql/src/test/results/clientpositive/llap/vectorized_parquet_types.q.out +++ ql/src/test/results/clientpositive/llap/vectorized_parquet_types.q.out @@ -295,8 +295,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function count on column vector type BYTES, Cannot specialize aggregation function stddev_pop on column vector type DOUBLE, Cannot specialize aggregation function max on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5] keys: ctinyint (type: tinyint) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6 @@ -340,8 +341,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function max on column vector type DECIMAL, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL - projectedOutputColumns: [0, 1, 2, 3, 4, 5] keys: KEY._col0 (type: tinyint) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6 diff --git ql/src/test/results/clientpositive/llap/vectorized_ptf.q.out ql/src/test/results/clientpositive/llap/vectorized_ptf.q.out index cf5bdea..27ce75b 100644 --- ql/src/test/results/clientpositive/llap/vectorized_ptf.q.out +++ ql/src/test/results/clientpositive/llap/vectorized_ptf.q.out @@ -3369,6 +3369,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true + nativeConditionsNotMet: One Long Key IS false, NOT Empty Aggregations IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: MERGE_PARTIAL projectedOutputColumns: [] keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: int) @@ -3510,8 +3512,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2, col 3 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {SUM_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: p_mfgr (type: string), p_brand (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 diff --git ql/src/test/results/clientpositive/llap/vectorized_shufflejoin.q.out ql/src/test/results/clientpositive/llap/vectorized_shufflejoin.q.out index 5469018..afa476b 100644 --- ql/src/test/results/clientpositive/llap/vectorized_shufflejoin.q.out +++ ql/src/test/results/clientpositive/llap/vectorized_shufflejoin.q.out @@ -130,7 +130,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: COMPLETE @@ -156,8 +155,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0, 1, 2, 3] mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE diff --git ql/src/test/results/clientpositive/llap/vectorized_timestamp.q.out ql/src/test/results/clientpositive/llap/vectorized_timestamp.q.out index 24f8d36..bed077d 100644 --- ql/src/test/results/clientpositive/llap/vectorized_timestamp.q.out +++ ql/src/test/results/clientpositive/llap/vectorized_timestamp.q.out @@ -145,8 +145,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type TIMESTAMP, Cannot specialize aggregation function max on column vector type TIMESTAMP] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 80 Basic stats: COMPLETE Column stats: NONE @@ -199,6 +202,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type TIMESTAMP, Cannot specialize aggregation function max on column vector type TIMESTAMP, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1] mode: mergepartial @@ -368,8 +373,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type TIMESTAMP] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE @@ -422,6 +430,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0] mode: mergepartial @@ -508,8 +518,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function variance on column vector type TIMESTAMP, Cannot specialize aggregation function var_pop on column vector type TIMESTAMP, Cannot specialize aggregation function var_samp on column vector type TIMESTAMP, Cannot specialize aggregation function std on column vector type TIMESTAMP, Cannot specialize aggregation function stddev on column vector type TIMESTAMP, Cannot specialize aggregation function stddev_pop on column vector type TIMESTAMP, Cannot specialize aggregation function stddev_samp on column vector type TIMESTAMP] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6 Statistics: Num rows: 1 Data size: 560 Basic stats: COMPLETE Column stats: NONE @@ -562,6 +575,8 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function variance on column vector type STRUCT, Cannot specialize aggregation function var_pop on column vector type STRUCT, Cannot specialize aggregation function var_samp on column vector type STRUCT, Cannot specialize aggregation function std on column vector type STRUCT, Cannot specialize aggregation function stddev on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function stddev_samp on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6] mode: mergepartial diff --git ql/src/test/results/clientpositive/llap/vectorized_timestamp_funcs.q.out ql/src/test/results/clientpositive/llap/vectorized_timestamp_funcs.q.out index f6dcb7c..0d5f939 100644 --- ql/src/test/results/clientpositive/llap/vectorized_timestamp_funcs.q.out +++ ql/src/test/results/clientpositive/llap/vectorized_timestamp_funcs.q.out @@ -812,8 +812,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type TIMESTAMP, Cannot specialize aggregation function max on column vector type TIMESTAMP, Cannot specialize aggregation function count on column vector type TIMESTAMP] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3] mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 96 Basic stats: COMPLETE Column stats: NONE @@ -853,8 +854,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type TIMESTAMP, Cannot specialize aggregation function max on column vector type TIMESTAMP, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0, 1, 2, 3] mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 96 Basic stats: COMPLETE Column stats: NONE @@ -942,8 +944,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function sum on column vector type TIMESTAMP] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -983,8 +986,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0] mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -1089,8 +1093,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type TIMESTAMP, Cannot specialize aggregation function variance on column vector type TIMESTAMP, Cannot specialize aggregation function var_pop on column vector type TIMESTAMP, Cannot specialize aggregation function var_samp on column vector type TIMESTAMP, Cannot specialize aggregation function std on column vector type TIMESTAMP, Cannot specialize aggregation function stddev on column vector type TIMESTAMP, Cannot specialize aggregation function stddev_pop on column vector type TIMESTAMP, Cannot specialize aggregation function stddev_samp on column vector type TIMESTAMP] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7] mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 Statistics: Num rows: 1 Data size: 672 Basic stats: COMPLETE Column stats: NONE @@ -1130,8 +1135,9 @@ STAGE PLANS: groupByMode: MERGEPARTIAL vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: NOT Empty Key IS false, One Long Key IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type STRUCT, Cannot specialize aggregation function variance on column vector type STRUCT, Cannot specialize aggregation function var_pop on column vector type STRUCT, Cannot specialize aggregation function var_samp on column vector type STRUCT, Cannot specialize aggregation function std on column vector type STRUCT, Cannot specialize aggregation function stddev on column vector type STRUCT, Cannot specialize aggregation function stddev_pop on column vector type STRUCT, Cannot specialize aggregation function stddev_samp on column vector type STRUCT, MERGEPARTIAL/FINAL mode not supported] empty IS false vectorProcessingMode: GLOBAL - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7] mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 Statistics: Num rows: 1 Data size: 672 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/row__id.q.out ql/src/test/results/clientpositive/row__id.q.out index 059ace9..4f7eb16 100644 --- ql/src/test/results/clientpositive/row__id.q.out +++ ql/src/test/results/clientpositive/row__id.q.out @@ -56,23 +56,23 @@ STAGE PLANS: Map Operator Tree: TableScan alias: hello_acid - Statistics: Num rows: 1 Data size: 3054 Basic stats: PARTIAL Column stats: NONE + Statistics: Num rows: 1 Data size: 3145 Basic stats: PARTIAL Column stats: NONE Select Operator expressions: ROW__ID.transactionid (type: bigint) outputColumnNames: _col0 - Statistics: Num rows: 1 Data size: 3054 Basic stats: PARTIAL Column stats: NONE + Statistics: Num rows: 1 Data size: 3145 Basic stats: PARTIAL Column stats: NONE Reduce Output Operator key expressions: _col0 (type: bigint) sort order: + - Statistics: Num rows: 1 Data size: 3054 Basic stats: PARTIAL Column stats: NONE + Statistics: Num rows: 1 Data size: 3145 Basic stats: PARTIAL Column stats: NONE Reduce Operator Tree: Select Operator expressions: KEY.reducesinkkey0 (type: bigint) outputColumnNames: _col0 - Statistics: Num rows: 1 Data size: 3054 Basic stats: PARTIAL Column stats: NONE + Statistics: Num rows: 1 Data size: 3145 Basic stats: PARTIAL Column stats: NONE File Output Operator compressed: false - Statistics: Num rows: 1 Data size: 3054 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 1 Data size: 3145 Basic stats: COMPLETE Column stats: NONE table: input format: org.apache.hadoop.mapred.SequenceFileInputFormat output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat @@ -98,9 +98,9 @@ POSTHOOK: Input: default@hello_acid@load_date=2016-03-01 POSTHOOK: Input: default@hello_acid@load_date=2016-03-02 POSTHOOK: Input: default@hello_acid@load_date=2016-03-03 #### A masked pattern was here #### -3 -4 -5 +404 +405 +406 PREHOOK: query: explain select tid from (select row__id.transactionid as tid from hello_acid) sub where tid = 3 PREHOOK: type: QUERY @@ -117,17 +117,17 @@ STAGE PLANS: Map Operator Tree: TableScan alias: hello_acid - Statistics: Num rows: 1 Data size: 3054 Basic stats: PARTIAL Column stats: NONE + Statistics: Num rows: 1 Data size: 3145 Basic stats: PARTIAL Column stats: NONE Filter Operator predicate: (ROW__ID.transactionid = 3) (type: boolean) - Statistics: Num rows: 1 Data size: 3054 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 1 Data size: 3145 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: ROW__ID.transactionid (type: bigint) outputColumnNames: _col0 - Statistics: Num rows: 1 Data size: 3054 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 1 Data size: 3145 Basic stats: COMPLETE Column stats: NONE File Output Operator compressed: false - Statistics: Num rows: 1 Data size: 3054 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 1 Data size: 3145 Basic stats: COMPLETE Column stats: NONE table: input format: org.apache.hadoop.mapred.SequenceFileInputFormat output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat @@ -153,4 +153,3 @@ POSTHOOK: Input: default@hello_acid@load_date=2016-03-01 POSTHOOK: Input: default@hello_acid@load_date=2016-03-02 POSTHOOK: Input: default@hello_acid@load_date=2016-03-03 #### A masked pattern was here #### -3 diff --git ql/src/test/results/clientpositive/show_functions.q.out ql/src/test/results/clientpositive/show_functions.q.out index 31653a6..32bf74d 100644 --- ql/src/test/results/clientpositive/show_functions.q.out +++ ql/src/test/results/clientpositive/show_functions.q.out @@ -264,6 +264,7 @@ uuid var_pop var_samp variance +vector_mapjoin_slot_number version weekofyear when diff --git ql/src/test/results/clientpositive/vector_aggregate_9.q.out ql/src/test/results/clientpositive/vector_aggregate_9.q.out index 0f4855c..baad4c2 100644 --- ql/src/test/results/clientpositive/vector_aggregate_9.q.out +++ ql/src/test/results/clientpositive/vector_aggregate_9.q.out @@ -141,8 +141,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type DECIMAL, Cannot specialize aggregation function max on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL, Cannot specialize aggregation function avg on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 624 Basic stats: COMPLETE Column stats: NONE @@ -248,8 +251,12 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3] + runtimeHashAggrOutputInfos: {MIN_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 3, MAX_FUNC:1, PRIMITIVE, DOUBLE, aggrOffset: 4, SUM_FUNC:2, PRIMITIVE, DOUBLE, aggrOffset: 5, AVG_FUNC:3, AVERAGE_DOUBLE, countAggrOffset: 2, sumAggrOffset: 5} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 104 Basic stats: COMPLETE Column stats: NONE @@ -355,8 +362,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type TIMESTAMP, Cannot specialize aggregation function max on column vector type TIMESTAMP, Cannot specialize aggregation function sum on column vector type TIMESTAMP, Cannot specialize aggregation function avg on column vector type TIMESTAMP] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 200 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vector_binary_join_groupby.q.out ql/src/test/results/clientpositive/vector_binary_join_groupby.q.out index e234c0a..309a398 100644 --- ql/src/test/results/clientpositive/vector_binary_join_groupby.q.out +++ ql/src/test/results/clientpositive/vector_binary_join_groupby.q.out @@ -193,8 +193,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -230,7 +231,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -350,8 +350,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 10 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: bin (type: binary) mode: hash outputColumnNames: _col0, _col1 @@ -388,7 +389,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: binary) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/vector_cast_constant.q.out ql/src/test/results/clientpositive/vector_cast_constant.q.out index 3cd708b..1be2518 100644 --- ql/src/test/results/clientpositive/vector_cast_constant.q.out +++ ql/src/test/results/clientpositive/vector_cast_constant.q.out @@ -139,14 +139,15 @@ STAGE PLANS: Group By Operator aggregations: avg(50), avg(50.0), avg(50) Group By Vectorization: - aggregators: VectorUDAFAvgLong(ConstantVectorExpression(val 50) -> 11:long) -> struct, VectorUDAFAvgDouble(ConstantVectorExpression(val 50.0) -> 12:double) -> struct, VectorUDAFAvgDecimal(ConstantVectorExpression(val 50) -> 13:decimal(10,0)) -> struct + aggregators: VectorUDAFAvgLong(ConstantVectorExpression(val 50) -> 17:long) -> struct, VectorUDAFAvgDouble(ConstantVectorExpression(val 50.0) -> 18:double) -> struct, VectorUDAFAvgDecimal(ConstantVectorExpression(val 50) -> 19:decimal(10,0)) -> struct className: VectorGroupByOperator groupByMode: HASH vectorOutput: true keyExpressions: col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2] keys: _col0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 @@ -184,7 +185,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3 diff --git ql/src/test/results/clientpositive/vector_char_2.q.out ql/src/test/results/clientpositive/vector_char_2.q.out index 26dfad1..a3a66f5 100644 --- ql/src/test/results/clientpositive/vector_char_2.q.out +++ ql/src/test/results/clientpositive/vector_char_2.q.out @@ -96,8 +96,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1] keys: _col0 (type: char(20)) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -135,7 +136,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: char(20)) mode: mergepartial outputColumnNames: _col0, _col1, _col2 @@ -291,8 +291,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1] keys: _col0 (type: char(20)) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -330,7 +331,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: char(20)) mode: mergepartial outputColumnNames: _col0, _col1, _col2 diff --git ql/src/test/results/clientpositive/vector_coalesce_2.q.out ql/src/test/results/clientpositive/vector_coalesce_2.q.out index 336ae04..1ba1cf3 100644 --- ql/src/test/results/clientpositive/vector_coalesce_2.q.out +++ ql/src/test/results/clientpositive/vector_coalesce_2.q.out @@ -52,7 +52,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: _col0 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -71,7 +70,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: string) mode: mergepartial outputColumnNames: _col0, _col1 @@ -213,8 +211,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: _col0 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -251,7 +250,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: string) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/vector_decimal_aggregate.q.out ql/src/test/results/clientpositive/vector_decimal_aggregate.q.out index 04c90a2..2874f86 100644 --- ql/src/test/results/clientpositive/vector_decimal_aggregate.q.out +++ ql/src/test/results/clientpositive/vector_decimal_aggregate.q.out @@ -69,8 +69,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 3 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function count on column vector type DECIMAL, Cannot specialize aggregation function max on column vector type DECIMAL, Cannot specialize aggregation function min on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL, Cannot specialize aggregation function count on column vector type DECIMAL, Cannot specialize aggregation function max on column vector type DECIMAL, Cannot specialize aggregation function min on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8] keys: cint (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9 @@ -107,7 +108,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9 @@ -208,8 +208,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 3 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function count on column vector type DECIMAL, Cannot specialize aggregation function max on column vector type DECIMAL, Cannot specialize aggregation function min on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL, Cannot specialize aggregation function avg on column vector type DECIMAL, Cannot specialize aggregation function stddev_pop on column vector type DECIMAL, Cannot specialize aggregation function stddev_samp on column vector type DECIMAL, Cannot specialize aggregation function count on column vector type DECIMAL, Cannot specialize aggregation function max on column vector type DECIMAL, Cannot specialize aggregation function min on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL, Cannot specialize aggregation function avg on column vector type DECIMAL, Cannot specialize aggregation function stddev_pop on column vector type DECIMAL, Cannot specialize aggregation function stddev_samp on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] keys: cint (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15 @@ -246,7 +247,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15 diff --git ql/src/test/results/clientpositive/vector_decimal_precision.q.out ql/src/test/results/clientpositive/vector_decimal_precision.q.out index 0dc5a67..2f3c7ae 100644 --- ql/src/test/results/clientpositive/vector_decimal_precision.q.out +++ ql/src/test/results/clientpositive/vector_decimal_precision.q.out @@ -583,8 +583,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type DECIMAL, Cannot specialize aggregation function sum on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1] mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 400 Basic stats: COMPLETE Column stats: NONE @@ -618,7 +619,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 400 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vector_distinct_2.q.out ql/src/test/results/clientpositive/vector_distinct_2.q.out index db688bf..1087901 100644 --- ql/src/test/results/clientpositive/vector_distinct_2.q.out +++ ql/src/test/results/clientpositive/vector_distinct_2.q.out @@ -140,8 +140,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 8 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: t (type: tinyint), s (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -176,7 +177,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: tinyint), KEY._col1 (type: string) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/vector_empty_where.q.out ql/src/test/results/clientpositive/vector_empty_where.q.out index a95fdf6..13b4e3c 100644 --- ql/src/test/results/clientpositive/vector_empty_where.q.out +++ ql/src/test/results/clientpositive/vector_empty_where.q.out @@ -45,8 +45,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: cint (type: int) mode: hash outputColumnNames: _col0 @@ -81,7 +82,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: int) mode: partial2 outputColumnNames: _col0 @@ -93,7 +93,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: partial2 outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -141,7 +140,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -207,8 +205,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: cint (type: int) mode: hash outputColumnNames: _col0 @@ -243,7 +242,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: int) mode: partial2 outputColumnNames: _col0 @@ -255,7 +253,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: partial2 outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -303,7 +300,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -377,8 +373,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: cint (type: int) mode: hash outputColumnNames: _col0 @@ -413,7 +410,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: int) mode: partial2 outputColumnNames: _col0 @@ -425,7 +421,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: partial2 outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -473,7 +468,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -547,8 +541,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: cint (type: int) mode: hash outputColumnNames: _col0 @@ -583,7 +578,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: int) mode: partial2 outputColumnNames: _col0 @@ -595,7 +589,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: partial2 outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -643,7 +636,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vector_groupby4.q.out ql/src/test/results/clientpositive/vector_groupby4.q.out index 34b571e..b21146c 100644 --- ql/src/test/results/clientpositive/vector_groupby4.q.out +++ ql/src/test/results/clientpositive/vector_groupby4.q.out @@ -85,7 +85,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: string) mode: partial1 outputColumnNames: _col0 @@ -134,7 +133,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: string) mode: final outputColumnNames: _col0 diff --git ql/src/test/results/clientpositive/vector_groupby6.q.out ql/src/test/results/clientpositive/vector_groupby6.q.out index bc86c15..f22ce46 100644 --- ql/src/test/results/clientpositive/vector_groupby6.q.out +++ ql/src/test/results/clientpositive/vector_groupby6.q.out @@ -85,7 +85,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: string) mode: partial1 outputColumnNames: _col0 @@ -134,7 +133,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: string) mode: final outputColumnNames: _col0 diff --git ql/src/test/results/clientpositive/vector_groupby_3.q.out ql/src/test/results/clientpositive/vector_groupby_3.q.out index d360e44..4e75004 100644 --- ql/src/test/results/clientpositive/vector_groupby_3.q.out +++ ql/src/test/results/clientpositive/vector_groupby_3.q.out @@ -142,8 +142,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 8 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: t (type: tinyint), s (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -180,7 +181,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: tinyint), KEY._col1 (type: string) mode: mergepartial outputColumnNames: _col0, _col1, _col2 diff --git ql/src/test/results/clientpositive/vector_groupby_mapjoin.q.out ql/src/test/results/clientpositive/vector_groupby_mapjoin.q.out index 17ebb08..1ba4de8 100644 --- ql/src/test/results/clientpositive/vector_groupby_mapjoin.q.out +++ ql/src/test/results/clientpositive/vector_groupby_mapjoin.q.out @@ -55,8 +55,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function count on column vector type BYTES] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1] mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE @@ -90,7 +91,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE @@ -342,8 +342,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: key (type: string) mode: hash outputColumnNames: _col0 @@ -378,7 +379,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: string) mode: mergepartial outputColumnNames: _col0 diff --git ql/src/test/results/clientpositive/vector_groupby_reduce.q.out ql/src/test/results/clientpositive/vector_groupby_reduce.q.out index 5fb42b1..091daeb 100644 --- ql/src/test/results/clientpositive/vector_groupby_reduce.q.out +++ ql/src/test/results/clientpositive/vector_groupby_reduce.q.out @@ -268,8 +268,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 9 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: ss_ticket_number (type: int) mode: hash outputColumnNames: _col0 @@ -305,7 +306,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0 @@ -467,8 +467,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 9 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: ss_ticket_number (type: int) mode: hash outputColumnNames: _col0 @@ -503,7 +504,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0 @@ -515,7 +515,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: _col0 (type: int) mode: complete outputColumnNames: _col0, _col1 @@ -756,8 +755,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function max on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2] keys: ss_item_sk (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 @@ -794,7 +794,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3 @@ -810,7 +809,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: 1 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 @@ -861,7 +859,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 @@ -973,8 +970,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 9, col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function max on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2] keys: ss_ticket_number (type: int), ss_item_sk (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4 @@ -1011,7 +1009,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: int), KEY._col1 (type: int) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4 @@ -1027,7 +1024,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: _col1 (type: int), _col0 (type: int) mode: complete outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 diff --git ql/src/test/results/clientpositive/vector_groupby_simple.q.out ql/src/test/results/clientpositive/vector_groupby_simple.q.out new file mode 100644 index 0000000..5d9f45c --- /dev/null +++ ql/src/test/results/clientpositive/vector_groupby_simple.q.out @@ -0,0 +1,21358 @@ +PREHOOK: query: create table vectortab2k( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' +STORED AS TEXTFILE +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@vectortab2k +POSTHOOK: query: create table vectortab2k( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' +STORED AS TEXTFILE +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@vectortab2k +PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/vectortab2k' OVERWRITE INTO TABLE vectortab2k +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@vectortab2k +POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/vectortab2k' OVERWRITE INTO TABLE vectortab2k +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@vectortab2k +PREHOOK: query: create table vectortab2korc( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +STORED AS ORC +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@vectortab2korc +POSTHOOK: query: create table vectortab2korc( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +STORED AS ORC +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@vectortab2korc +PREHOOK: query: INSERT INTO TABLE vectortab2korc SELECT * FROM vectortab2k +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2k +PREHOOK: Output: default@vectortab2korc +POSTHOOK: query: INSERT INTO TABLE vectortab2korc SELECT * FROM vectortab2k +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2k +POSTHOOK: Output: default@vectortab2korc +POSTHOOK: Lineage: vectortab2korc.b SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:b, type:bigint, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.bo SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:bo, type:boolean, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.d SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:d, type:double, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.dc SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:dc, type:decimal(38,18), comment:null), ] +POSTHOOK: Lineage: vectortab2korc.dt SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:dt, type:date, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.f SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:f, type:float, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.i SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:i, type:int, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.s SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:s, type:string, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.s2 SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:s2, type:string, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.si SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:si, type:smallint, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.t SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:t, type:tinyint, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.ts SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:ts, type:timestamp, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.ts2 SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:ts2, type:timestamp, comment:null), ] +PREHOOK: query: explain vectorization detail +select i, max(b) from vectortab2korc group by i +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select i, max(b) from vectortab2korc group by i +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: false + enabledConditionsNotMet: [hive.vectorized.execution.enabled IS false] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: i (type: int), b (type: bigint) + outputColumnNames: i, b + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: max(b) + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: i (type: int) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Map-reduce partition columns: _col0 (type: int) + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: max(VALUE._col0) + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: KEY._col0 (type: int) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select i, max(b) from vectortab2korc group by i +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select i, max(b) from vectortab2korc group by i +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-1001529082 1458 +-1004204053 7223569671814987776 +-1006768637 3443 +-1009249550 1786 +-1011125931 9185458640237641728 +-1012329052 9182828596851990528 +-1017027298 1863 +-1017629298 -7328087811698909184 +-101960322 -8572823448513445888 +-1021859098 -8302817097848307712 +-1024500955 8987827141270880256 +-1026458834 8515682078777081856 +-1026746699 845 +-1030565036 7921639119138070528 +-1031592590 -8665218198816497664 +-103219371 -7881262505761710080 +-1032306832 3606 +-1036720157 NULL +-1038565721 677 +-1039040287 NULL +-1043413503 3810 +-1045771991 -8789178184387641344 +-1048181367 2138 +-1050029724 -7623047151287754752 +-1052493316 -9013952631912325120 +-1054609414 835 +-1057522129 -7429331808102899712 +-1058166020 8793387410919038976 +-1058356124 8900180888218329088 +-1061222139 7933040277013962752 +-1061859761 7237310132329488384 +-1062159435 -6935548339131138048 +-1063673827 5 +-1065248998 -7330203470474985472 +-1066775085 -6921654334727036928 +-1067083033 7212090742612467712 +-1070951602 7697541332524376064 +-1078214868 3286 +-1078397698 -8948335470186373120 +-1078579367 -7867219225874571264 +-1079086534 8643198489997254656 +-1079231269 9048002942653710336 +-1079633326 -8866442231663067136 +-1081328752 213 +-1081766449 2524 +-1091003492 -8104684579106914304 +-1092872261 7731443941834678272 +-1095938490 6923604860394528768 +-1096013673 7022349041913978880 +-1096771844 9199741683232399360 +-1098379914 1789 +-1100641049 -8518060755719585792 +-1104268719 1678 +-1106469823 255 +-1106685577 7086206629592252416 +-1108723753 -7287583262310350848 +-1109134719 8613562211893919744 +-1111814111 NULL +-1111937842 -8607195685207408640 +-1112062809 690 +-1114208576 -7380731416973295616 +-1116100266 2475 +-1117019030 -8858063395050110976 +-1117358187 -7052619594823221248 +-1124028213 8489735221193138176 +-1125605439 2587 +-1126628450 8920344895701393408 +-1127100849 -8203008052020879360 +-1128317466 3307 +-1129489281 7581614118458335232 +-1131684944 -8431492599012163584 +-113253627 -8172827216441573376 +-1134786190 3467 +-1138530007 7961909238130270208 +-1140071443 1282 +-1141652793 2563 +-1141801925 -8395998375405912064 +-1144920802 3058 +-1144976744 289 +-1146055387 1914 +-1146649990 -7804116532814151680 +-1147471772 -6962292590214234112 +-1153978907 7164349895861829632 +-1155174991 -7420448501073051648 +-1156193121 691 +-1164833898 2512 +-116484575 7801697837312884736 +-1168823523 -7037375807670501376 +-1171326281 3213 +-117723745 -7046180371529351168 +-1179668872 2085 +-1180153422 -7512297136103800832 +-1183469360 736 +-1184620079 7947544013461512192 +-1196101029 -8300764106868350976 +-1196808950 -8585134536083660800 +-1197602595 -9058029636530003968 +-1198036877 3029 +-1198465530 3055 +-1201785350 -7772064021830574080 +-1202975006 1556 +-1205034356 -7079898537463537664 +-120692484 8979012655944220672 +-120704505 2180 +-1210261177 2476 +-1210550573 8557218322962644992 +-1210907929 -7784419454650843136 +-121162464 2846 +-1212433954 3255 +-1212524805 -8322751250650218496 +-1213081886 -7782344916178796544 +-1216166764 -8965578088652095488 +-1216206795 -9213132862973829120 +-1218581850 -7624057992767782912 +-1218592418 8644602243484803072 +-1218871391 3253 +-1222897252 1495 +-122391516 -8358130693961195520 +-1226425562 7718825401976684544 +-1227085134 454 +-1228063838 7779735136559579136 +-1230459100 -6988970700649168896 +-1231821948 7232273749940838400 +-1232183416 2905 +-1234163924 9131533983989358592 +-123529324 2700 +-1236536142 -8546758906409312256 +-1240048334 9050032047355125760 +-1240208945 967 +-1240912824 8407869317250220032 +-1242677422 -7779270198785875968 +-1244527286 8631515095562887168 +-1247229632 NULL +-1247325089 -8445801063348281344 +-1248781172 9188173682239275008 +-1249011023 -8760655406971863040 +-1249134513 2688 +-1254129998 658 +-125419186 -8754966081778565120 +-1257859205 914 +-1259611508 -7910019233726242816 +-1261099087 663 +-1262842192 -7797149520019062784 +-1266138408 7054271419461812224 +-1269216718 8367680396909404160 +-1270523286 378 +-1272838092 7165364563962191872 +-1274158260 8220104397160169472 +-1280919769 -8525212657458348032 +-1283465451 3911 +-1288198020 91 +-1289501869 -7536330682873937920 +-1289665817 7909645665163804672 +-1299159155 3111 +-1302592941 2565 +-1305139473 8936639033158410240 +-1312782341 8551446856960942080 +-1313618168 7678790769408172032 +-1318045616 -8704234107608203264 +-1319686435 2140 +-1319753324 -7661192563533062144 +-1322736153 3722 +-1324624386 367 +-1326025787 524 +-1333770335 7922443154272395264 +-1339495001 -8047774491688255488 +-1340213051 6963217546192322560 +-1341627565 1086 +-1343327 2689 +-1343425152 -7461750143936897024 +-1344287228 -8683802826440105984 +-1345085327 6991316084916879360 +-1345391395 -7138415011665043456 +-134686276 -7245872320493322240 +-1348149160 296 +-1349876582 -7404052043914526720 +-1351437382 -7511952204985049088 +-1352545619 7149417430082027520 +-1353470095 7210160489915236352 +-1356601829 -7201085131997011968 +-1358159222 -8845239510002753536 +-1359838019 9083704659251798016 +-1362178985 1287 +-1364322216 -8555709701170552832 +-136514115 -7998947380180819968 +-1366059787 7720187583697502208 +-1369253050 -6986178228432322560 +-1369302744 1053 +-1371840597 8822384228057604096 +-1379039356 8120593157178228736 +-1380191654 3609 +-1380678829 7545689659010949120 +-1391183008 -8013397854633648128 +-1392487784 3990 +-139448716 3789 +-1402821064 1422 +-1403154847 NULL +-1404921781 1972 +-1406691044 -7824788571789279232 +-1407817977 -9178166810751909888 +-1409508377 -8566940231897874432 +-1411407810 8782900615468302336 +-1412187081 2279 +-1419573027 7195454019231834112 +-1421396891 8454154705460666368 +-1421860505 -7221474017515347968 +-1422780798 1613 +-1423467446 3702 +-1423477356 7308289763456000000 +-1424027104 8290014929764040704 +-1424770359 -7198372044947275776 +-1425942083 7440265908266827776 +-1426893312 3579 +-1429346144 2270 +-1430903652 1541 +-1431196400 3769 +-1432316859 -7712425776235274240 +-1434562279 -8731068123910987776 +-1437126017 7517159036469575680 +-1439293109 -7464270453557993472 +-1439424023 7473537548003352576 +-1442424087 -8623238306523824128 +-1444011944 NULL +-1446132523 1948 +-1447140800 4020 +-1447263708 2277 +-144862954 1115 +-1454941039 2026 +-1458382451 -7003696402314215424 +-1459528251 8135164922674872320 +-1460613213 8875745082589929472 +-1462331586 1914 +-1462604138 -7276111129363046400 +-1463884101 -7409317158045442048 +-1464514590 -8293833565967810560 +-1464762852 NULL +-1469463456 501 +-146961490 8100036735858401280 +-1471147786 2009 +-1477897348 1719 +-1478812842 -7663293054873812992 +-1484033125 -7669169138124275712 +-1484787952 2933 +-1489628668 -7878145001776152576 +-1491722659 8017403886247927808 +-1493282775 2560 +-1497098905 1058 +-1502924486 8752150411997356032 +-1505397109 8853989376829833216 +-1506324615 923 +-1511162508 8928133990107881472 +-1516259168 4056 +-1517536924 9054887854393950208 +-1524081566 8302473563519950848 +-1524554771 8323460620425330688 +-1527024213 9043089884440068096 +-1528033060 -8485389240529354752 +-1531040609 8641221723991433216 +-1533934649 -8651641150831362048 +-1534238977 NULL +-1534307678 9048297564833079296 +-1538558250 3002 +-1538978853 1752 +-1541281934 950 +-1544877665 3322 +-1545388906 8579974641030365184 +-1545572711 1693 +-1552053883 782 +-1554130090 883 +-1554325042 583 +-1556127172 -7139677575412686848 +-1561738723 2255 +-1562552002 -8335810316927213568 +-1563676282 976 +-1565671389 8984935029383389184 +-1565785026 8666178591503564800 +-1568536214 -9148197394287779840 +-1568646283 8411494452500930560 +-1575588203 1651 +-1578387726 8508401924853850112 +-158233823 1346 +-1583445177 3622 +-158420748 -8756989568739835904 +-158848747 7784489776013295616 +-1594957608 NULL +-1599905147 -7753051494275432448 +-1602792666 2373 +-1603071732 3874 +-1603374745 7471208109437304832 +-1605045257 NULL +-1606567895 8410599906334097408 +-16094879 -8430283518005846016 +-1609864597 -8084716955963252736 +-1614194712 7062605127422894080 +-1616030844 NULL +-161884324 3781 +-1620148746 -8870673219965001728 +-1621721177 2843 +-1621814212 3352 +-1622653291 3103 +-1625062942 1796 +-1625800024 -9203942396257984512 +-1626062014 8221561626658881536 +-1627366321 3770 +-1628799508 7775034125776363520 +-1635301453 9040958359122640896 +-163859725 8142241016679735296 +-1642207005 -8117838333114212352 +-1643714866 8463868417649524736 +-1644966759 NULL +-1648991909 -9051477157204770816 +-1651993300 8156782979767238656 +-1652600376 2072 +-1655030261 -7629401308029976576 +-1655396452 2186 +-1656822229 3625 +-1660344634 1890 +-1665164127 8368012468775608320 +-1668736016 -7488345684795342848 +-1668974292 2461 +-1669227632 7045967493826387968 +-1669848306 7344029858387820544 +-1674623501 2933 +-1676261015 2274 +-1679120527 2824 +-1688105985 -7845896959112658944 +-1699044525 7625728883085025280 +-1699049982 2244 +-1700451326 -8269917980278980608 +-1701492480 -9175038118837149696 +-1701502632 8815398225009967104 +-1702587308 7778936842502275072 +-1703620970 -8387536830476820480 +-170643477 2811 +-1706867123 8808467247666241536 +-1709117770 6924820982050758656 +-1709246310 279 +-1716506227 3462 +-1718163874 3682 +-1719427168 7204802700490858496 +-1721368386 -8240684139569233920 +-1721763321 -8016589197379289088 +-1726479726 -7831320202242228224 +-1726585032 8532016240026279936 +-1727003541 3770 +-1728171376 -8654433008222797824 +-1730740504 302 +-1731820254 -7989766326847807488 +-1733560816 NULL +-1735287250 7746402369011277824 +-1738775004 6996686091335884800 +-1741895392 -8688153842294595584 +-1743938290 7741854854673367040 +-1744964279 8649296591032172544 +-1745449855 8519937082746634240 +-1749415887 -8509547439040757760 +-1749841790 2412 +-1754203978 8004633750273925120 +-1754347372 375 +-1755088362 8698055291501543424 +-175727228 7662037650719850496 +-1758125445 3945 +-1759354458 169 +-1762037754 2551 +-1765795567 -7611584069753552896 +-1769037737 -8996954350906294272 +-1769423338 -7303847963918393344 +-1770229099 7238339720750948352 +-1770250407 2855 +-177025818 7411793502161182720 +-1784633305 -7507578199583694848 +-178568841 8325227661920133120 +-1798573685 -8604758220106014720 +-1800413845 7347732772348870656 +-1801684055 2776 +-1802746460 1217 +-180280420 8396433451610652672 +-1804244259 579 +-1805915233 -9075486079396069376 +-1808960215 8160569434550403072 +-181122344 -8379964450833367040 +-1811563127 -7593363318079610880 +-181523892 470 +-1817096156 294 +-1817564067 8287522765741301760 +-1817938378 -8710298418608619520 +-1818380492 7229607057201127424 +-1818456584 -8384695077413412864 +-1819075185 2465 +-1820436871 -8853553406533894144 +-1822850051 7368920486374989824 +-1826997220 7997694023324975104 +-1829691116 7490717730239250432 +-1830870295 2494 +-1831957182 7701723309715685376 +-1832606512 -8831091081349758976 +-1836166334 808 +-1838281337 7166263463731421184 +-1849091666 9064847977742032896 +-1850492820 311 +-1851280202 1524 +-1851680302 530 +-1856034030 9132009829414584320 +-1857500489 1198 +-1858443953 7060236714847412224 +-1862095575 2941 +-186600427 3664 +-1867014618 NULL +-186764959 590 +-1870912732 -7199983995864711168 +-1871209811 7068517339681259520 +-1871446009 3174 +-1873004551 1856 +-1875699183 -7572262898020278272 +-187804718 NULL +-1878572820 3421 +-1878838836 -8082793390939193344 +-1880783574 NULL +-1880877824 346 +-1881263242 7065344324692443136 +-1884780525 1021 +-1889139541 NULL +-1890963712 NULL +-18917438 -9088239683374350336 +-1892816721 -8182421179156905984 +-189393743 -8833019327569510400 +-1897998366 2625 +-1900369503 1791 +-1900894010 19 +-1901806083 1606 +-1903090602 2599 +-1904737684 NULL +-1908696083 -7524170566881329152 +-1909635960 3901 +-19116270 -8584520406368493568 +-1914072976 2295 +-1914210382 1032 +-191434898 383 +-191704948 -8887058200926093312 +-1918651448 -8675661101615489024 +-1918847735 -9101953184875757568 +-191899537 -7792903881635938304 +-1919939921 2320 +-192181579 3739 +-1921909135 1234 +-1924909143 301 +-1928197479 -7104310188119834624 +-1933192293 -7036607470351654912 +-1933374662 763 +-1937640350 -8028275725610909696 +-1938290238 -7140008543769042944 +-1939362279 779 +-1940205653 7348598907182800896 +-194270271 -8369487968903897088 +-1945738830 8295110846998233088 +-1946023520 2560 +-1947868215 2183 +-1948257321 1337 +-1949359208 -7172594404186693632 +-1949698319 -9004892183139811328 +-1952235832 7569249672628789248 +-1953605752 7500716020874674176 +-1954890941 1983 +-1955545912 -9189155542884474880 +-1955647385 3961 +-1960344717 2177 +-1967660827 7620183559667081216 +-1968097621 -6988811476286873600 +-1969235238 -7612466483992051712 +-1969751342 -7081500255163727872 +-1974257754 9001907486943993856 +-1974777102 1774 +-1974972123 8736061027343859712 +-1977762695 -7195217207163166720 +-1979314577 8779073705407963136 +-1983567458 7394967727502467072 +-1984079412 -7270034223527993344 +-1988508336 7027529814236192768 +-1989378509 1620 +-1989778424 -7687052294777208832 +-1992388855 NULL +-199587670 NULL +-1998652546 7779486624537370624 +-2007662579 2977 +-2009569943 7452756603516190720 +-2011708220 -8387347109404286976 +-201554470 491 +-2015780444 694 +-2016985611 7242751359672631296 +-2017279089 584 +-2019287179 2619 +-202035134 4024 +-2022383454 NULL +-2024003241 -7330413050756235264 +-202409329 -9145593811310010368 +-2027812975 3764 +-2028355450 2323 +-2032576637 2938 +-203416622 268 +-2037628236 2193 +-203911033 41 +-2041825946 1371 +-2042647152 -7511202710200885248 +-2042831105 6969599299897163776 +-2043805661 8365058996333953024 +-2052386812 -7849504559236210688 +-2053551539 6987889924212203520 +-2057666812 -8017791189288869888 +-206177972 1559 +-20639382 71 +-2065080832 950 +-2065287410 -7759238919361888256 +-20660936 1537 +-2066134281 3397 +-2069439395 NULL +-2071851852 -7209060152494817280 +-2074079977 -8619303037130301440 +-207546600 3462 +-2076460151 917 +-2076886223 -7805985795815342080 +-2077771325 1604 +-207899360 471 +-2081501748 130 +-2081809883 8435912708683087872 +-2086352100 3199 +-2087815643 -8892963883085578240 +-2096425960 803 +-2098078720 7235109456886816768 +-2111312205 7125231541858205696 +-2112149052 7599019810193211392 +-211669740 3208 +-2117280385 2786 +-2119539915 3725 +-2119724898 7818464507324121088 +-2122509553 3060 +-2124994385 7690986322714066944 +-213198503 8775009214012456960 +-2133145181 868 +-2136052026 -7916510129632296960 +-2137168636 8087737899452432384 +-2138343289 3401 +-214166042 8996824426131390464 +-2144138362 -7868306678534193152 +-2144241640 9073672806863790080 +-2146432765 8899122608190930944 +-2147071655 112 +-215703544 7370078518278397952 +-216495498 4030 +-217785690 1343 +-217930632 -7903158849011843072 +-223311809 1368 +-224865887 -7456869587112255488 +-226635871 NULL +-234278308 898 +-234758376 8111757081791733760 +-235238928 -7319315187617587200 +-235819331 -9078662294976061440 +-236700442 9116137265342169088 +-23865350 7461153404961128448 +-240529113 9085381906890203136 +-244778184 2020 +-249150336 1048 +-251576563 8059284960252731392 +-253084551 3974 +-267130580 -8034414142083170304 +-267554590 7454442625055145984 +-269702086 7696737688942567424 +-270683864 2492 +-273937943 8688483860094599168 +-283378057 7128222874437238784 +-287400633 3235 +-290558484 7061498706968428544 +-291577538 -7109790267244814336 +-292588406 NULL +-295186284 -9075302542655684608 +-295751373 2805 +-296195507 1614 +-297664578 9117063974299148288 +-298221893 9078604269481148416 +-300429552 1030 +-300717684 -7840338174858199040 +-303747347 8168742078705262592 +-306214368 -7679894005808693248 +-308225568 8472429318602268672 +-309571354 7871554728617025536 +-310343273 586 +-310584775 8160662610166194176 +-311437801 -8990843030306717696 +-314935936 8332670681629106176 +-316678117 1955 +-318206520 NULL +-318380015 8222714144797368320 +-327648289 -8719510423723155456 +-329336519 8374321007870836736 +-329695030 8962097525980225536 +-332125121 7333512171174223872 +-336625622 2502 +-337073639 7080269176324218880 +-337586880 3409 +-337829479 NULL +-340462064 -8086577583338061824 +-340951385 -7344947507044466688 +-343173797 1261 +-345542922 -7155539549555105792 +-346607939 999 +-348628614 7376467688511455232 +-352146259 7054938591408996352 +-357680544 919 +-359194591 1094 +-359943425 7310869618402910208 +-360113158 3021 +-36038293 7157247449513484288 +-361944328 213 +-362603422 3673 +-36682325 -7827420207675105280 +-369183838 -7329807949048193024 +-370093295 -7819437864839495680 +-370798230 2358 +-370901197 8558000156325707776 +-371779520 7892281003266408448 +-373034494 -8521578237232529408 +-373038706 3907 +-373541958 2971 +-374337252 -7185369278665605120 +-37773326 -7152177800841502720 +-37876543 -8859107121649893376 +-379174037 8518454006987948032 +-379643543 2485 +-38458614 NULL +-385247581 3083 +-387395264 -9142610685888192512 +-392713245 -8099313480512716800 +-393723522 1676 +-395499919 3430 +-396852483 4018 +-397683105 -8703026916864802816 +-397951021 7843804446688264192 +-399643110 -9215144824304721920 +-400501472 1866 +-402441123 8282648443538710528 +-40284975 1806 +-40407627 2348 +-406264741 8048726769133592576 +-407089271 661 +-409404534 -8330233444291084288 +-409673169 820 +-412333994 618 +-41242237 NULL +-414207254 347 +-41864614 -8418913260807217152 +-419335927 3263 +-42151403 281 +-423074450 -7500200359698907136 +-423190290 -7262798781688651776 +-423378447 1127 +-423945469 3860 +-425103007 2264 +-425196209 -9066993118333706240 +-432218419 7570474972934488064 +-434656160 7432998950057975808 +-434747475 361 +-436386350 19 +-43858652 8294315622451740672 +-4393552 -7419068456205385728 +-442732016 8333523087360901120 +-442839889 -7904188195431661568 +-44426049 7014537632150224896 +-445353909 154 +-44559184 NULL +-448060992 -7329767178250018816 +-449333854 3036 +-453739759 738 +-45439614 -7192529627893858304 +-454598288 -8763062627136864256 +-45460011 -8665764757143658496 +-455114104 -7041362811802148864 +-457341338 -8131997716860526592 +-462541618 3333 +-463071187 NULL +-464804906 2131 +-469749219 -8051395538179063808 +-469870330 7061809776248545280 +-470798506 2915 +-472303419 -7879864376629567488 +-47662800 2897 +-480058682 1286 +-483740394 7039820685967343616 +-490337498 1926 +-491377296 3203 +-491882534 8554899472487596032 +-4943292 8856674723376668672 +-496870819 1648 +-496915240 -7362189611124563968 +-499533481 1667 +-500921094 -8649711322250362880 +-504529358 7401968422230032384 +-505879576 412 +-507015439 -7413317118463164416 +-507250351 -7063777488249085952 +-507955215 -7797151404935618560 +-511198293 -7506254246954500096 +-512198016 7528211148397944832 +-514010922 -8232763638546694144 +-51612681 7249443195032985600 +-519978947 3566 +-520725912 -7444070205513138176 +-521886983 695 +-522450861 8895174927321243648 +-524189419 1785 +-532755480 7534145866886782976 +-533227056 -8103788088118018048 +-533281137 7370803940448305152 +-534894953 1075 +-534991774 8547243497773457408 +-535056977 8897901899039473664 +-53587991 168 +-536315467 -8922409715403112448 +-538812082 7792036342592348160 +-540401598 7748799008146366464 +-540820650 1141 +-54793232 1941 +-549167249 NULL +-553349593 7621013099259527168 +-558456218 6960137166475911168 +-559270035 -7818454479651135488 +-560322190 NULL +-561932449 -9002912355472736256 +-564495517 3980 +-570632618 -7526793959592140800 +-571587579 7265141874315517952 +-573787626 8760285623204290560 +-574475259 8991071342495531008 +-575513309 -8856151919723003904 +-579916775 8184799300477943808 +-583908704 7710447533880614912 +-588160623 -8280276629934981120 +-588547970 NULL +-590374062 -8523434203900674048 +-591879497 8473699639908261888 +-592568201 601 +-595769210 9191943992860327936 +-596963345 -7707867749256445952 +-598552521 2193 +-599396052 8223732800007864320 +-600315936 1345 +-601946913 2515 +-603273425 -6917607783359897600 +-604362582 2306 +-605370177 1704 +-606214770 3366 +-607285491 8780196485890555904 +-607667405 -8543982423727128576 +-616724730 724 +-618505946 8995562121346260992 +-619311578 -7603467428164009984 +-621365995 -8161047750470279168 +-624029057 -7409653086454030336 +-625788713 -7541860097718902784 +-626484313 -8203075743525806080 +-628446314 1948 +-628790799 -7093825013581979648 +-630900418 8391785334471589888 +-632803945 -7094827141662539776 +-641062448 9000633029632499712 +-648766606 1701 +-655118881 2463 +-656478771 -8425998949410889728 +-66010816 -8832750849949892608 +-66112513 388 +-664111469 3691 +-664856187 7524958388842078208 +-665623523 -8240034910581153792 +-667383951 1751 +-670925379 -8317591428117274624 +-671853199 -9203804401302323200 +-674478103 -8581979259158929408 +-675125724 2682 +-677778959 8871707618793996288 +-679230165 3763 +-682333536 809 +-684022323 83 +-688296901 7375521127126089728 +-693207128 NULL +-693249555 -7661250850555633664 +-694520014 9149216169284091904 +-695775663 NULL +-705887590 -9079801920509001728 +-707108808 8388363436324085760 +-707228984 1477 +-71305062 -7158472098920390656 +-714270951 8783241818558193664 +-71433796 1780 +-71449585 -7057750467944931328 +-714594143 2791 +-722294882 -7600138468036386816 +-726879427 -8768744394742235136 +-728015067 8146288732715196416 +-728541537 NULL +-733239404 8583916402383601664 +-733756717 3206 +-734921821 3941 +-737624128 780 +-738157651 1813 +-742707249 997 +-743680989 7391208370547269632 +-745678338 8792059919353348096 +-749042352 -8570933074545745920 +-752222556 -8030058711611629568 +-758231588 3144 +-758973175 9030480306789818368 +-759911896 -8946656952763777024 +-76430653 -7159700138947862528 +-764412063 -6920172215209426944 +-765102534 -7425160895830573056 +-765190882 9207107990561972224 +-76654979 -6997233584896229376 +-768305191 NULL +-772236518 7250237407877382144 +-774406989 8201303040648052736 +-779743333 -7892780594910871552 +-78240945 3159 +-785261879 -7292078334519894016 +-789126455 8716401555586727936 +-7929246 3755 +-797889292 -7194281951646187520 +-799249885 8014986215157530624 +-800799595 3728 +-800975421 -7928440849566146560 +-805288503 7432428551399669760 +-807242371 -7778829032042790912 +-809805200 -8518258741831680000 +-812431220 NULL +-816661030 7753359568986636288 +-817093900 -7145585429014888448 +-817383093 3231 +-828522499 -7507424948896415744 +-828724467 7017956982081404928 +-829717122 7414865343000322048 +-835002549 -7333362172439035904 +-835107230 108 +-835198551 982 +-837503491 2569 +-837506172 7130159794259353600 +-838656526 -7055619148037554176 +-839176151 -8916987977485312000 +-839512271 8994608999945125888 +-841268868 -7572962089372991488 +-841634659 -7240213957902663680 +-846450672 -8544299740525461504 +-847235873 9107991000536498176 +-849551464 7393308503950548992 +-851663638 -7220731681653604352 +-853606287 522 +-853967587 2194 +-856843296 2073 +-858439361 -8940944155843461120 +-859535015 8779711700787298304 +-866304147 1247 +-870624802 8687042963221159936 +-870900240 3812 +-87470856 -7835907977757245440 +-876122064 -7144791190333546496 +-882028850 3079 +-884109192 -7966960765508280320 +-884796655 342 +-88576126 3866 +-886741158 3663 +-887663189 2412 +-887790938 2843 +-890374552 -8581765103969312768 +-890552359 3493 +-891543038 3024 +-892839693 -7686220526274502656 +-893863493 681 +-896261100 -8108693586698706944 +-896274896 947 +-897586947 -8545239748068941824 +-897622427 7686992843032010752 +-90029636 7217123582035116032 +-901079162 3841 +-901778330 2712 +-906545548 2878 +-906986958 2187 +-909024258 1845 +-909127123 7689489436826804224 +-912429611 2816 +-913906252 85 +-914329027 -7483435388852559872 +-915104901 NULL +-916344293 7410872053689794560 +-916495008 8286706213485297664 +-917062754 8927691194719174656 +-922200749 1811 +-922875124 259 +-928013434 489 +-932525608 1128 +-932921363 -7399631791131074560 +-933324607 2986 +-934008333 8939431770838810624 +-935723237 7226360892091416576 +-938112972 -8835408234247168000 +-938342473 3728 +-938756287 346 +-938762477 -7759425383684849664 +-939348081 -6968771079156654080 +-940504641 3418 +-941433219 6982145326341423104 +-946349935 NULL +-946830673 8734584858442498048 +-94709066 7271887863395459072 +-950738312 -7902517224300036096 +-951728053 -8115963579415650304 +-954480325 812 +-956668825 1827 +-958165276 7784169796350730240 +-966979668 -8930307926221807616 +-968377273 -6974654664348033024 +-971203543 8451612303224520704 +-971615370 NULL +-971698865 -7873753603299540992 +-973128166 3054 +-978892011 -7049618574399692800 +-980869630 1981 +-982238309 939 +-983874694 -7598782894648565760 +-985817478 2848 +-987995271 1937 +-990781312 1046 +-99205196 -8535957064499879936 +-993029335 1521 +-9958400 1999 +-996953616 3541 +-997463353 1788 +-99916247 8419958579638157312 +1000106109 8900351886974279680 +1001732850 3747 +1002132158 2919 +1002519329 9194388393453060096 +100270148 9096395849845194752 +1003667927 4037 +1004241194 743 +1008698636 1719 +1012230484 1995 +1012696613 888 +1012843193 -7939634346485858304 +1013517056 NULL +1017953606 7220131672176058368 +1022214896 979 +1022707418 1481 +1027147837 3749 +1028092807 8785153741735616512 +1028204648 -7838598833900584960 +1033609549 -8318886086186213376 +1033836308 -8927968289860370432 +1036391201 7319711402123149312 +104004730 NULL +1042184256 -7571957778022178816 +1042237722 2962 +1044196568 927 +1045719941 661 +1050809633 1990 +1052255272 4051 +1054864168 2227 +1056997296 -7395553021620731904 +1059212450 -8664374244449050624 +1061043704 -8857335871148171264 +1061638369 1777 +1063524922 383 +106847364 8457906374051020800 +1069486136 NULL +1070989126 1906 +1074488452 7765456790394871808 +1075444504 9053187076403060736 +1076088102 3533 +107680423 8455496814886002688 +107941738 8555948987770511360 +1081187102 -7540104552219860992 +1081920048 1501 +1082837515 7359004378440146944 +1083855659 -7476082621253402624 +1090344463 2539 +1091736925 -8962547695651323904 +1094778643 263 +1102069050 3147 +1102561039 -9032650742739836928 +1103797891 7077311975029555200 +1103878879 2540 +1106995930 -6962271229404348416 +1107258026 391 +1107502179 NULL +1107757211 8509508263705477120 +1109664665 -9105701280936501248 +1111985530 9112400579327483904 +1112783661 2553 +1114521964 -8603817012434198528 +1115197541 -7030489936116252672 +1117805438 8945302550165004288 +1119976718 7052226236896256000 +1121512594 9136548192574529536 +1124269631 3680 +1126157283 2155 +1127080164 3159 +1129173487 3071 +1130043800 -9022154842129547264 +1130840708 2463 +1131663263 612 +1134416796 2745 +1136548971 -7883252982752665600 +1136976809 -6960947572095770624 +1137950964 -7470307155642245120 +1141303816 -7673901622181953536 +1141595012 6947488599548215296 +1142098316 2013 +1142481557 3648 +1145627305 9023663198045544448 +1148500740 -8923529803981905920 +115111911 735 +1151752586 -6975459232300236800 +1153089364 1165 +1153811197 -8243487285852766208 +115470151 8677794924343164928 +1159353899 455 +1164895226 7647481735646363648 +1166237779 8910706980937261056 +1173098061 1965 +117620760 2144 +1179528290 -7551394356730339328 +1182390248 7031339012080549888 +1182595271 1177 +1182646662 7295926343524163584 +1184001017 1142 +1187495452 8571268359622172672 +1190302173 7753882935005880320 +1190554937 8806507556248731648 +1191238870 3613 +1194089079 1065 +1194243726 -8022573309127000064 +1196151988 -7793447076762345472 +1198172036 320 +1198701102 7762823913046556672 +1202593021 7418271723644403712 +1202720813 3248 +1203482872 1342 +1204325852 3460 +1204834275 -8659643752269242368 +1205391962 8761174805938331648 +1211873318 2897 +1216016081 500 +1216287232 8525894870444638208 +121663320 -6941777546186579968 +1219616145 -8007017894942638080 +1222217404 650 +1222935237 -7213775605408178176 +1224662770 -8881446757271846912 +1225312439 -7695491171376291840 +1228837108 -8696162322976997376 +1229172951 490 +1238986437 921 +1240875512 -7571293705217687552 +1251556414 8000440057238052864 +1256676429 3067 +1257621270 9104574294205636608 +1258721737 355 +1260101584 9062227900376203264 +1260480653 7593521922173419520 +1265528735 7491898395977523200 +127051381 8269730157217062912 +1271280812 8268875586442256384 +1273798925 8983857919580209152 +1273877405 7761834341179375616 +1275228381 8145750910080745472 +127917714 -8136227554401107968 +1281159709 7255302164215013376 +1281277970 2335 +1283898734 2262 +128430191 -9084940280061485056 +1284956108 2714 +1286367391 -7488415863027367936 +1290381132 NULL +1293876597 1880 +1295073553 -7262049693594943488 +129675822 8113585123802529792 +1300798829 6928080429732536320 +1301426600 7794244032613703680 +1301997393 8854715632851345408 +1303632852 3244 +1304431147 7309156463509061632 +1304812803 1509 +1305668933 2675 +1307148254 2735 +1309976380 7212016545671348224 +131031898 2979 +1310360849 -8989473881707921408 +1312270193 -7703540456272994304 +1314531900 -8300526097982226432 +1316369941 8146492373537660928 +1316931 NULL +1317690178 -8660149447361404928 +1318606691 -8938849835283677184 +1318956413 -8959796625322680320 +1319589591 -7356685674003021824 +1321678350 8372588378498777088 +1328225044 3006 +1330219997 -9080956291212132352 +1332042427 -8914039133569400832 +1332181668 3563 +133276416 3835 +1333148555 3084 +1333214263 NULL +1335803002 3094 +1336194583 425 +1336365018 364 +1336842978 9174894805640142848 +1336951982 965 +1338047392 -7451660755269853184 +1342923026 -6951350560260784128 +1343581455 707 +1346627771 1643 +1347876055 -8465978403747037184 +1352649032 -7161165959057334272 +1352739140 -7800879252150779904 +135341845 2016 +1359437295 918 +1362740312 -9157613004431998976 +1363459426 3183 +1363568842 7871189141676998656 +1366402722 8795069490394882048 +1367179645 -8503342882470019072 +1370723240 9148071980848742400 +1372224352 3824 +1372705672 8652485812846567424 +1372982791 8665969966920990720 +1373871781 -7255010240787030016 +1376818328 336 +1377144283 8208354137450766336 +1377359511 3707 +1384071499 8156018594610790400 +1385883394 3245 +1386071996 3059 +1390704286 1099 +1392980712 -8896045754034978816 +1393262450 7450416810848313344 +1393506704 -7333278178640953344 +1394370866 2179 +1395450272 -8054581198284668928 +139661585 8210813831744118784 +1398486099 1291 +1404346934 1701 +1406029775 1470 +1409872356 -7512289590991544320 +1410516523 7584007864107778048 +1412102605 7296164580491075584 +141492068 3781 +1415647436 -7497303453253402624 +1416850873 8489584373231919104 +1418228573 8190539859890601984 +1420099773 -8021859935185928192 +1421779455 7575087487730196480 +1425362689 2201 +1425456189 -8122639684164501504 +1426152053 7354813692542304256 +142722637 1608 +1430614653 7186401810812059648 +1434588588 3232 +1436480682 3848 +1437057145 -7265998318110711808 +1440427914 2984 +1443426396 3830 +144428297 2835 +144499388 8723248113030782976 +1447438548 7955126053367119872 +1447462863 7384150968511315968 +1450881368 8183233196086214656 +1452244326 -8219876839318716416 +1456367662 -8260340354454503424 +14573904 -7037638331316469760 +1458051497 8417381121663746048 +1464695860 NULL +1464703053 2004 +1467284000 -7895991410072928256 +1469775272 -8615168537390571520 +1471913583 2325 +1472487454 -6992217501957169152 +1473503196 3904 +1475025489 NULL +1478365409 -8675892979328212992 +1482983157 -8194062064124362752 +1483580941 2911 +1485934602 587 +1488440165 1674 +1489169773 2398 +1493152791 7581052107944361984 +1493555718 6974475559697768448 +1495575878 -7542857121910046720 +149701884 523 +1499399891 8836228556823977984 +1500437122 3690 +15020431 8195103847607967744 +1503176016 8850055384477401088 +1504919241 1671 +1505168716 -6957946688477274112 +1505665168 -7453525026342617088 +1506907734 3913 +1509573831 3960 +1513689502 -7811060170911375360 +1516149502 2719 +1516165279 7691062622443044864 +1516236846 7486884806277611520 +1517488324 275 +1517915751 -8357136656913686528 +1519993904 -8270479187688816640 +1520375588 8660248367767076864 +1522208504 2637 +1523657918 -8400045653258444800 +1524010024 -8453491903284994048 +152654715 -7928062266382778368 +152891873 417 +1533817551 2285 +1535954353 2002 +1540680149 8896237972875370496 +1541249928 7659279803863146496 +1543611951 7497276415392407552 +1544482684 -7455898404374921216 +1550112473 2105 +1550375386 8817665768680906752 +1552351592 2903 +1556919269 2968 +156101201 -8368487814665895936 +1563120121 3823 +1565313938 -8782213262837530624 +1566607834 -8379109122834997248 +1566958573 9169248521377374208 +1568180994 -7707242953271500800 +1569269522 2715 +1570238232 7291432593139507200 +1571267481 9114850402293882880 +1572563948 -8359839265974165504 +1575091509 7790728456522784768 +1575300276 -8813211231120031744 +1577999613 597 +1579460630 8501910015960735744 +1582537271 7926898770090491904 +1583280136 8573305425181941760 +1590744669 -7263060340185194496 +1592153312 -7366430883634929664 +1592467112 8560526613401714688 +1594107168 2485 +1595326878 -7494411162675691520 +1597303154 2106 +1602631923 2214 +160290374 -7296096276653391872 +1603612975 8935252708196999168 +1604076720 9119046173224370176 +1605596441 2223 +161210995 1074 +1614297403 7006803044329021440 +1616782308 723 +1618123796 2850 +1620529246 2626 +1621606222 2434 +1625699061 379 +1625751062 3724 +1626868156 7735566678126616576 +1626884085 -7831595638727565312 +1632769786 1508 +1634441052 2847 +1636364987 8461498293348065280 +1637295757 -8623965248051789824 +1638471881 2942 +1640192895 -7085247548404178944 +1640445482 2579 +1645067708 2325 +1645753684 7534042483076857856 +1646811064 1153 +1647411522 -7262384251828518912 +1650573576 1368 +1650676897 -8877431933441327104 +1652349607 NULL +1660088606 823 +1660278264 8230371298967609344 +166320811 9211455920344088576 +1664736741 392 +1665724041 8376440110255243264 +1667594394 -7848043121524228096 +1668094749 6927260280037097472 +1668446119 8002769767000145920 +1669519977 8637720762289659904 +1673218677 49 +167432368 228 +1677197847 8201491077550874624 +1677444379 462 +1677494300 -8992599250893979648 +1678220496 NULL +1678261510 2092 +1679381813 -9105358806324035584 +1686537335 -7246123871306244096 +1687784247 -9095689235523264512 +1695098246 -7949445503604604928 +1701761102 -8426531414463545344 +1701817607 -8127494999848919040 +170870820 837 +1709983738 8972161729142095872 +1712411993 3365 +1718167702 -7106210529681350656 +172075892 7299197687217856512 +1723691683 8536948829863198720 +1731764471 8811693967537774592 +1739911574 8920533610804609024 +1742536084 181 +174310705 -6935038507792801792 +1743671220 8569030475428511744 +1743696703 3300 +1747664003 -9049720998034137088 +1750433588 -7345562788132315136 +1751468853 -7120456708338688000 +1752520642 -7532751268425261056 +1754025802 NULL +1756592797 2855 +1759741857 -7147490721376591872 +1765173148 1436 +1765874562 8169878743136043008 +1766517223 7948803266578161664 +1767019352 1066 +1767359228 -8746702976270385152 +176792505 22 +1768399622 1835 +1769324649 7936149988210212864 +1772349172 -7884460946615984128 +1772545157 3478 +177294487 3021 +1773417290 8011181697250631680 +177391521 7266437490436341760 +1775355987 -8562524688907485184 +1776456512 6933451028794925056 +177837042 1290 +1783034168 -8961059046745669632 +1784291853 -7547245548870025216 +1785455842 -8754992450211692544 +1787826883 -8572949572756774912 +1796013407 9086905513121890304 +1796486238 -7094189393339678720 +1796950944 3703 +1797164732 3949 +1802498539 -8488247955875618816 +1805139501 961 +1805308672 -7700203302632210432 +1807358029 263 +1807877618 987 +1809795770 -7501803640821456896 +1813010930 -7162299524557471744 +1814570016 -7915999634274369536 +1815882183 8073733016154431488 +1817671655 7412924364686458880 +1818213677 -7888051992910274560 +1825828852 3672 +1829544791 -7623359796281999360 +1830870769 8868529429494071296 +1832650234 -7894382303337832448 +1835749815 2772 +1836499981 7548958830580563968 +1844415080 2810 +1845797092 913 +1846184880 -7535857766791577600 +1847210729 8424515140664360960 +184879574 NULL +1848935036 7989160253372817408 +1851654062 7752740515534422016 +1851805558 -7442593976514420736 +1852725744 2393 +1860113703 8708845895460577280 +1861276585 -9091113592821972992 +1870464222 7378993334503694336 +187718349 1134 +187893585 8235179243092090880 +1880017800 7637152193832886272 +1882932986 9123116008004288512 +1883400319 8854677881758162944 +1888675011 687 +1891680787 -8471480409335513088 +1893512909 -8244116388227104768 +1893632113 1506 +1895282160 8487573502287478784 +1895751360 2619 +1902676205 8514979402185596928 +1905812339 7626715182847090688 +1910930064 815 +1911809937 7254710367022645248 +1911834442 3725 +1912175355 -8879742387365429248 +1914993018 8116738401948377088 +1916363472 7555301305375858688 +1918230406 9190466190353661952 +1920662116 1509 +1920863389 -8552393882631389184 +1924741890 -7616522969329262592 +1925283040 3858 +1928365430 1775 +1933545427 2580 +1934970004 1530 +1938788165 1243 +1941527322 2056 +1942004879 -7058986555327307776 +194754262 7700734109530767360 +1949494660 7107604675626008576 +1950882901 9180098147855769600 +1951869763 2341 +195281533 -7557017910095650816 +1956887369 2862 +1958701268 -7228589258642194432 +1961954939 7304839835188609024 +196581473 -7040248820505149440 +1968813171 8163948965373386752 +1969239701 1270 +1969650228 34 +196980893 -7866079955473989632 +197056787 3510 +1972940844 8759089349412847616 +1974939899 7487338208419823616 +1978171687 8069531888205086720 +1978200605 1910 +198017473 135 +198539698 -8023708819947323392 +198624903 2517 +1987336880 7410096605330227200 +1990792684 7231399302953377792 +1991072829 NULL +1992977592 7885697257930588160 +1996235654 8171188598958407680 +1998185704 4054 +2005560498 -7637494527844343808 +2008211296 -8843859708698583040 +2009215103 8682955459667951616 +2009890220 -7273694358642851840 +2013178181 -7078068944081002496 +2013376408 2205 +2013444562 66 +2017314998 -8076479329071955968 +2018249426 204 +2018442973 -8566856504746352640 +2022944702 8109381965028548608 +2029657999 -7744462446680375296 +2031604236 2463 +2032271149 3507 +203688965 7436133434239229952 +2038381675 7386087924003676160 +2040926345 8677632093825916928 +2042816480 NULL +2044130430 7534549597202194432 +2045579147 NULL +2048533360 8543177193114779648 +2051470532 6962726713896484864 +2052773366 8837420822750314496 +2057486961 3622 +2058640744 -9071565764086521856 +206121314 -8705403811649355776 +2064448036 8219326436390821888 +206454818 -8714995808835444736 +2065408093 8854495099223375872 +2066707767 9207927479837319168 +2068018858 -8503573595507761152 +2068538934 7487538600082554880 +2069258195 3599 +206942178 3249 +2070969353 203 +2075919195 NULL +2076370203 7917494645725765632 +2080249726 -7576194692683563008 +2080412555 -9175279464813223936 +2081152819 1386 +2081243058 8991442360387584000 +2083836439 8144552446127972352 +2084666529 -9206329156028112896 +2089198703 6933001829416034304 +2090044777 -9219066990552760320 +2090496825 8693036785094565888 +209430502 2662 +2097519027 615 +210003006 -8275337702906757120 +2100377172 8769199243315814400 +2100839074 -7255686273677328384 +2102440065 9089435102788009984 +210728566 7295502697317097472 +2111462911 9083076230151864320 +2114363167 2900 +2124297747 -8088337436168830976 +2125311222 7919597361814577152 +2125479431 -7528526815026692096 +2126491387 9094945190752903168 +2127682701 7874764415950176256 +2133492883 8279056098670198784 +2133950868 187 +2134433675 8523972434954510336 +2140632003 -6970396058557005824 +214068706 -8067243114610532352 +2142592987 NULL +2144365072 1075 +2144454927 412 +2145269593 3932 +2146312499 6964585306125008896 +215508794 1189 +215759857 -7802538500225777664 +217476429 2001 +217823040 8773222500321361920 +218917585 -7378096180613840896 +219415594 945 +22308780 -7953426740065312768 +229688868 NULL +230954385 7983789401706094592 +232405034 -8438554249514491904 +234452496 -9149719074367946752 +239078089 1132 +252169185 8945004737083555840 +253621570 -8411282676082565120 +25400543 -8659692318743314432 +254921167 9091085792947666944 +25644069 1870 +257821327 2725 +259204652 -8559252110266564608 +259524903 NULL +260463232 -7127548949860818944 +26270580 3163 +266601601 908 +268888160 -7893577088764174336 +270090617 -7773957003968675840 +272086526 8625937019655200768 +273256071 -9014145341570203648 +277582670 2232 +278601840 1537 +278643258 341 +283322761 -7623405558242500608 +283618733 -8297230235506343936 +284646137 -8797972842900307968 +287239980 1462 +290601612 878 +290921475 1837 +291866793 1095 +29680001 120 +297577612 3190 +30036142 1252 +304860245 -7017212700635545600 +307333276 -7708932208121225216 +311478497 -8852770376039219200 +314232856 2762 +315055746 7747874976739016704 +315973457 -8844949406948671488 +316438994 188 +318631333 -8585966098173870080 +323817967 8129551357032259584 +323919214 8345435427356090368 +330302407 350 +33234633 2011 +334208532 7514552840617558016 +335359004 2608 +338805871 898 +340384179 -7877598807023386624 +340929437 2285 +343362793 2786 +344239980 7823874904139849728 +344989592 -7515996202498473984 +345556325 8316336224427483136 +346562088 7998357471114969088 +350802495 8525336514806317056 +352214248 8900545829211299840 +363981930 2046 +368170021 1745 +371383749 1055 +372099650 7944741547145502720 +373031319 6967631925774639104 +374283948 -8469607298426437632 +37461818 NULL +375106978 -7558524160894427136 +376076075 -9136398397785948160 +37730738 2020 +386741352 -7617860842651017216 +388707554 9016280522993975296 +390124976 -7603569103205916672 +391186487 8351163199364390912 +39723411 -8340523561480437760 +397255100 -8836899523028312064 +398960205 8540237852367446016 +3999930 8272001752345690112 +402173272 8244041599171862528 +407098216 -9109392978217484288 +407233168 2514 +410340192 3567 +41063276 3555 +413090363 928 +414645489 -8875546987176206336 +415234946 8514851182589771776 +418182899 1846 +430686478 9165199002069458944 +434679307 -7547432761381339136 +435407142 8045070943673671680 +435426302 8759184090543857664 +436093771 3866 +43672187 9067985867711291392 +43983130 2663 +44009986 1856 +440393309 3446 +44595790 784 +44628821 2017 +447426619 -8536369662934401024 +449788961 774 +453613037 -8142667274351345664 +458190500 3555 +458910170 NULL +459269456 3542 +461680901 3879 +467753905 8145745969573666816 +470575409 3677 +470993066 -6968892545529896960 +471464395 9209153648361848832 +472901914 7652123583449161728 +474795096 NULL +476704350 -7911421221625077760 +476858779 8524940073536954368 +476919973 3887 +477584560 8639254009546055680 +477857533 1165 +479566810 2217 +480849725 2420 +482977302 7274777328897802240 +485105934 NULL +48554395 3554 +488014426 73 +488559595 -8689606130068611072 +491016124 -7978782649203228672 +491758252 6934570741217755136 +492120544 1341 +492639283 2988 +492968645 8099215208813903872 +493977568 2803 +494570380 8192304692696383488 +503752931 8079573715140485120 +505902480 1826 +511836073 3462 +51376784 -8051587217208967168 +514046604 NULL +514833409 236 +516479816 -8454143651040444416 +516843026 2229 +522895626 7675009476762918912 +523289079 3946 +524317972 -7038455462786334720 +524808 2469 +526502851 -7340231535789727744 +52667480 8071961599867387904 +527598540 7705445437881278464 +528218910 NULL +530274409 2283 +531459992 1439 +536235636 481 +536876888 7062382339142156288 +538268118 7339426767877390336 +538766635 -9012093603044245504 +541118710 8415171956168417280 +541923995 NULL +546555204 2029 +548375173 -7242345057866285056 +550186724 7528074274555305984 +550594651 7497306924248834048 +557053197 1493 +56316391 -7404057145074712576 +563507584 7198687580227043328 +564349193 8372408423196270592 +564366133 1545 +566646177 8553195689344991232 +574069547 1466 +581259902 -6933565857643814912 +58313734 874 +583458404 -7642381493746483200 +584084934 3089 +587206979 2803 +587797446 8213810702473183232 +589546540 -7833618000492109824 +590719541 1157 +592011541 7800332581637259264 +595836061 -7709958788604936192 +596045726 -7000925438663041024 +596242714 443 +596280431 7175638927948562432 +596595603 1892 +596802082 3467 +597657990 296 +601376532 -9210275791460499456 +604460005 8190967051000659968 +605141554 8383159090746204160 +605946758 7596563216912211968 +60847311 -7822452149325094912 +609917172 -7647020450676146176 +615619268 -7751427073017544704 +615661052 7220581538170413056 +618321042 -8856821118526734336 +618991041 7782245855193874432 +619884480 NULL +622925063 -7412431471807283200 +62293025 2426 +626251612 1728 +6266567 -8593419958317056000 +626941809 7892026679115554816 +631207613 -8494118409594650624 +631711489 -8507279516485566464 +631954352 1423 +633813435 -8522878384019169280 +636901402 3512 +63706286 8416121695917498368 +641695802 -6947955278050181120 +644934949 8143462899383345152 +648935848 -7637755520917741568 +65172363 3958 +652118640 9005866015985713152 +6526476 8708232769657815040 +654939016 -8345065519816695808 +656187584 7013693841855774720 +656636097 -7535958203887706112 +658008867 7868367829080506368 +658636280 -7042183597114081280 +658850444 8254763178969915392 +659343542 2649 +659397992 -8147405381260345344 +65956045 1987 +661380540 -8018511948141748224 +661659208 -7964801953178091520 +66182203 NULL +663222148 2400 +667283966 8011602724663336960 +669484010 1145 +669871113 8398862954249560064 +670667262 3974 +672266669 2533 +672919099 8714829359200747520 +673904922 3119 +674547678 1862 +683320224 -7610137349734883328 +684561551 8290944180915871744 +686081268 2790 +688547276 -8244657976255889408 +69110370 1187 +692666133 3043 +693331761 2509 +693876030 3630 +696229550 3588 +700341242 -7751265769984491520 +703111607 -8191825921746305024 +704038411 -9008631121684832256 +706823078 -8877053610728161280 +710856472 -6919476845891313664 +712625264 -7739424919198187520 +712816880 9075404705968840704 +713031549 238 +715333063 501 +718692886 8849475396952514560 +720703232 -7881351200983613440 +722737062 3073 +727802564 4078 +731241198 1321 +734267314 1899 +735600165 7614435638888210432 +735732067 1948 +737149747 8283099811330506752 +738356485 NULL +740883263 1450 +742059797 1312 +742866312 -9102482277760983040 +745725681 -7692192232238678016 +746904285 820 +747122546 1566 +748185058 9091082386452684800 +748358417 1366 +75823003 NULL +758926227 8199513544090730496 +759899363 -7055760785575665664 +760466914 3701 +76299337 -8347088645602050048 +76381404 9085434340468473856 +765084282 482 +765656980 1299 +766737781 1489 +768198315 -8205148279289085952 +770574055 -9126793997498957824 +77063155 7130306447560826880 +771827308 3965 +773730574 3608 +776459017 7898670840507031552 +776606164 2506 +780859673 6933731240564056064 +780938234 -7083646746411720704 +785382955 -9218875542187065344 +786565385 3418 +787925706 NULL +789871166 -7344146703223496704 +791096295 -7665186441284968448 +793047956 8150115791664340992 +794783516 -7907355742053883904 +8040290 NULL +805672638 1769 +810157660 2241 +814544198 7049773031131283456 +816439627 -7875953567586451456 +818313200 3060 +819069589 -8046238369820344320 +819875108 1481 +821316302 1371 +824235855 1518 +824743780 -7594824008626372608 +824836988 -7020852530219171840 +825677248 8720504651219001344 +825977391 2680 +826143442 8371939471056470016 +826519029 7260908278294560768 +829055499 2821 +829101712 -8070535484085895168 +830944953 -7395343938785738752 +832465439 NULL +842283345 873 +84231802 2886 +843282593 138 +849859032 7345991518378442752 +850625480 3588 +851975276 504 +854230650 NULL +856986735 NULL +85774760 -7469660864676585472 +859140926 7454632396542074880 +860658464 268 +860708524 244 +865013617 1409 +866084887 7961515985722605568 +867587289 7381659098423926784 +868714547 -7496839341561954304 +868717604 3472 +869288953 8731960288562044928 +872554087 8825059717746376704 +873035819 -8028910243475038208 +874824958 485 +877053605 -8783777723063099392 +879289168 7343171468838567936 +879290165 68 +879500678 7682327310082531328 +881396599 9139805788041134080 +881673558 7566273236152721408 +881695885 NULL +882331889 1307 +882762933 7608447395949109248 +88774647 -7949309059286163456 +888896424 535 +889733679 9185952983951343616 +889772203 2842 +89366322 8362046808797306880 +895763504 -8654797319350927360 +895945459 -8559008501282832384 +899810881 664 +900992177 3212 +901084309 2393 +904604938 8337549596011102208 +906074599 -9080568167841226752 +908943372 NULL +914062370 1039 +914583645 -7777884099756122112 +915505006 871 +916057807 8467976965865799680 +917891418 7099005292698550272 +919363072 65 +922373046 2724 +922553769 8697823501349609472 +923353533 3940 +923980398 2803 +925032386 -8046189486447017984 +92777932 1638 +92834720 2647 +929560791 3637 +929751599 1681 +930008274 2386 +932774185 922 +936133387 -9117959922369060864 +936752497 7271786885641666560 +94220511 -8694818694700048384 +945683736 2089 +945911081 1201 +947846543 4088 +950545385 8570983266408103936 +950997304 1940 +95356298 78 +955171928 -6934304742087655424 +955267058 1398 +958866509 -7326863346317598720 +960187615 -7266719102957125632 +962091264 2752 +962712814 2715 +963854010 7084659344078970880 +964810954 -8664806103426252800 +972835688 7844258063629852672 +975932228 -7510418793070075904 +976870621 3197 +977292235 2108 +977624089 7857878068300898304 +978044705 7888238729321496576 +980732494 -6938706403992854528 +985634256 7870277756614623232 +987734049 6926925215281774592 +987917448 -8490382417169408000 +989475408 2025 +990246086 1158 +991397535 1280 +994798486 -7273590251991162880 +996831203 797 +997193329 1316 +998793176 154 +NULL 9136234417125007360 +PREHOOK: query: explain vectorization detail +select b, min(i), max(i) from vectortab2korc group by b +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b, min(i), max(i) from vectortab2korc group by b +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: false + enabledConditionsNotMet: [hive.vectorized.execution.enabled IS false] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: i (type: int), b (type: bigint) + outputColumnNames: i, b + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: min(i), max(i) + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: b (type: bigint) + mode: hash + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint) + sort order: + + Map-reduce partition columns: _col0 (type: bigint) + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: int), _col2 (type: int) + Reduce Operator Tree: + Group By Operator + aggregations: min(VALUE._col0), max(VALUE._col1) + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: KEY._col0 (type: bigint) + mode: mergepartial + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b, min(i), max(i) from vectortab2korc group by b +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, min(i), max(i) from vectortab2korc group by b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 -603273425 -603273425 +-6919476845891313664 710856472 710856472 +-6920172215209426944 -764412063 -764412063 +-6921654334727036928 -1066775085 -1066775085 +-6933565857643814912 581259902 581259902 +-6934304742087655424 955171928 955171928 +-6935038507792801792 174310705 174310705 +-6935548339131138048 -1062159435 -1062159435 +-6938706403992854528 980732494 980732494 +-6941777546186579968 121663320 121663320 +-6947955278050181120 641695802 641695802 +-6951350560260784128 1342923026 1342923026 +-6957946688477274112 1505168716 1505168716 +-6960947572095770624 1136976809 1136976809 +-6962271229404348416 1106995930 1106995930 +-6962292590214234112 -1147471772 -1147471772 +-6968771079156654080 -939348081 -939348081 +-6968892545529896960 470993066 470993066 +-6970396058557005824 2140632003 2140632003 +-6974654664348033024 -968377273 -968377273 +-6975459232300236800 1151752586 1151752586 +-6986178228432322560 -1369253050 -1369253050 +-6988811476286873600 -1968097621 -1968097621 +-6988970700649168896 -1230459100 -1230459100 +-6992217501957169152 1472487454 1472487454 +-6997233584896229376 -76654979 -76654979 +-7000925438663041024 596045726 596045726 +-7003696402314215424 -1458382451 -1458382451 +-7011425384222244864 NULL NULL +-7017212700635545600 304860245 304860245 +-7020852530219171840 824836988 824836988 +-7030489936116252672 1115197541 1115197541 +-7035132060308643840 NULL NULL +-7036607470351654912 -1933192293 -1933192293 +-7037375807670501376 -1168823523 -1168823523 +-7037638331316469760 14573904 14573904 +-7038455462786334720 524317972 524317972 +-7040248820505149440 196581473 196581473 +-7041362811802148864 -455114104 -455114104 +-7042183597114081280 658636280 658636280 +-7046180371529351168 -117723745 -117723745 +-7049618574399692800 -978892011 -978892011 +-7052619594823221248 -1117358187 -1117358187 +-7055619148037554176 -838656526 -838656526 +-7055760785575665664 759899363 759899363 +-7057750467944931328 -71449585 -71449585 +-7058986555327307776 1942004879 1942004879 +-7063777488249085952 -507250351 -507250351 +-7078068944081002496 2013178181 2013178181 +-7079898537463537664 -1205034356 -1205034356 +-7081500255163727872 -1969751342 -1969751342 +-7083646746411720704 780938234 780938234 +-7085247548404178944 1640192895 1640192895 +-7093825013581979648 -628790799 -628790799 +-7094189393339678720 1796486238 1796486238 +-7094827141662539776 -632803945 -632803945 +-7104310188119834624 -1928197479 -1928197479 +-7106210529681350656 1718167702 1718167702 +-7109790267244814336 -291577538 -291577538 +-7115054815375073280 NULL NULL +-7120456708338688000 1751468853 1751468853 +-7127548949860818944 260463232 260463232 +-7138415011665043456 -1345391395 -1345391395 +-7139677575412686848 -1556127172 -1556127172 +-7140008543769042944 -1938290238 -1938290238 +-7144791190333546496 -876122064 -876122064 +-7145585429014888448 -817093900 -817093900 +-7147490721376591872 1759741857 1759741857 +-7152177800841502720 -37773326 -37773326 +-7155539549555105792 -345542922 -345542922 +-7158472098920390656 -71305062 -71305062 +-7159700138947862528 -76430653 -76430653 +-7161165959057334272 1352649032 1352649032 +-7162299524557471744 1813010930 1813010930 +-7172594404186693632 -1949359208 -1949359208 +-7185369278665605120 -374337252 -374337252 +-7192529627893858304 -45439614 -45439614 +-7194281951646187520 -797889292 -797889292 +-7195217207163166720 -1977762695 -1977762695 +-7198372044947275776 -1424770359 -1424770359 +-7199983995864711168 -1870912732 -1870912732 +-7201085131997011968 -1356601829 -1356601829 +-7209060152494817280 -2071851852 -2071851852 +-7213775605408178176 1222935237 1222935237 +-7220731681653604352 -851663638 -851663638 +-7221474017515347968 -1421860505 -1421860505 +-7228589258642194432 1958701268 1958701268 +-7240213957902663680 -841634659 -841634659 +-7242345057866285056 548375173 548375173 +-7245872320493322240 -134686276 -134686276 +-7246123871306244096 1686537335 1686537335 +-7255010240787030016 1373871781 1373871781 +-7255686273677328384 2100839074 2100839074 +-7262049693594943488 1295073553 1295073553 +-7262384251828518912 1647411522 1647411522 +-7262798781688651776 -423190290 -423190290 +-7263060340185194496 1590744669 1590744669 +-7265998318110711808 1437057145 1437057145 +-7266719102957125632 960187615 960187615 +-7270034223527993344 -1984079412 -1984079412 +-7273590251991162880 994798486 994798486 +-7273694358642851840 2009890220 2009890220 +-7276111129363046400 -1462604138 -1462604138 +-7287583262310350848 -1108723753 -1108723753 +-7292078334519894016 -785261879 -785261879 +-7296096276653391872 160290374 160290374 +-7303847963918393344 -1769423338 -1769423338 +-7319315187617587200 -235238928 -235238928 +-7326863346317598720 958866509 958866509 +-7328087811698909184 -1017629298 -1017629298 +-7329767178250018816 -448060992 -448060992 +-7329807949048193024 -369183838 -369183838 +-7330203470474985472 -1065248998 -1065248998 +-7330413050756235264 -2024003241 -2024003241 +-7333278178640953344 1393506704 1393506704 +-7333362172439035904 -835002549 -835002549 +-7340231535789727744 526502851 526502851 +-7344146703223496704 789871166 789871166 +-7344947507044466688 -340951385 -340951385 +-7345562788132315136 1750433588 1750433588 +-7356685674003021824 1319589591 1319589591 +-7357888618985873408 NULL NULL +-7362189611124563968 -496915240 -496915240 +-7366430883634929664 1592153312 1592153312 +-7378096180613840896 218917585 218917585 +-7380731416973295616 -1114208576 -1114208576 +-7395343938785738752 830944953 830944953 +-7395553021620731904 1056997296 1056997296 +-7399631791131074560 -932921363 -932921363 +-7404052043914526720 -1349876582 -1349876582 +-7404057145074712576 56316391 56316391 +-7409317158045442048 -1463884101 -1463884101 +-7409653086454030336 -624029057 -624029057 +-7412431471807283200 622925063 622925063 +-7413317118463164416 -507015439 -507015439 +-7419068456205385728 -4393552 -4393552 +-7420448501073051648 -1155174991 -1155174991 +-7425160895830573056 -765102534 -765102534 +-7429331808102899712 -1057522129 -1057522129 +-7433265617153343488 NULL NULL +-7442593976514420736 1851805558 1851805558 +-7444070205513138176 -520725912 -520725912 +-7451660755269853184 1338047392 1338047392 +-7453525026342617088 1505665168 1505665168 +-7455898404374921216 1544482684 1544482684 +-7456869587112255488 -224865887 -224865887 +-7461750143936897024 -1343425152 -1343425152 +-7464270453557993472 -1439293109 -1439293109 +-7469660864676585472 85774760 85774760 +-7470307155642245120 1137950964 1137950964 +-7476082621253402624 1083855659 1083855659 +-7483435388852559872 -914329027 -914329027 +-7488345684795342848 -1668736016 -1668736016 +-7488415863027367936 1286367391 1286367391 +-7494411162675691520 1595326878 1595326878 +-7496839341561954304 868714547 868714547 +-7497303453253402624 1415647436 1415647436 +-7500200359698907136 -423074450 -423074450 +-7501803640821456896 1809795770 1809795770 +-7506254246954500096 -511198293 -511198293 +-7507424948896415744 -828522499 -828522499 +-7507578199583694848 -1784633305 -1784633305 +-7510418793070075904 975932228 975932228 +-7511202710200885248 -2042647152 -2042647152 +-7511952204985049088 -1351437382 -1351437382 +-7512289590991544320 1409872356 1409872356 +-7512297136103800832 -1180153422 -1180153422 +-7515996202498473984 344989592 344989592 +-7524170566881329152 -1908696083 -1908696083 +-7526793959592140800 -570632618 -570632618 +-7528526815026692096 2125479431 2125479431 +-7532751268425261056 1752520642 1752520642 +-7535857766791577600 1846184880 1846184880 +-7535958203887706112 656636097 656636097 +-7536330682873937920 -1289501869 -1289501869 +-7540104552219860992 1081187102 1081187102 +-7541860097718902784 -625788713 -625788713 +-7542857121910046720 1495575878 1495575878 +-7547245548870025216 1784291853 1784291853 +-7547432761381339136 434679307 434679307 +-7551394356730339328 1179528290 1179528290 +-7557017910095650816 195281533 195281533 +-7558524160894427136 375106978 375106978 +-7571293705217687552 1240875512 1240875512 +-7571957778022178816 1042184256 1042184256 +-7572262898020278272 -1875699183 -1875699183 +-7572962089372991488 -841268868 -841268868 +-7576194692683563008 2080249726 2080249726 +-7593363318079610880 -1811563127 -1811563127 +-7594824008626372608 824743780 824743780 +-7598782894648565760 -983874694 -983874694 +-7600138468036386816 -722294882 -722294882 +-7603467428164009984 -619311578 -619311578 +-7603569103205916672 390124976 390124976 +-7610137349734883328 683320224 683320224 +-7611584069753552896 -1765795567 -1765795567 +-7612455481940246528 NULL NULL +-7612466483992051712 -1969235238 -1969235238 +-7616522969329262592 1924741890 1924741890 +-7617860842651017216 386741352 386741352 +-7623047151287754752 -1050029724 -1050029724 +-7623359796281999360 1829544791 1829544791 +-7623405558242500608 283322761 283322761 +-7624057992767782912 -1218581850 -1218581850 +-7629401308029976576 -1655030261 -1655030261 +-7637494527844343808 2005560498 2005560498 +-7637755520917741568 648935848 648935848 +-7642381493746483200 583458404 583458404 +-7647020450676146176 609917172 609917172 +-7661192563533062144 -1319753324 -1319753324 +-7661250850555633664 -693249555 -693249555 +-7663293054873812992 -1478812842 -1478812842 +-7665186441284968448 791096295 791096295 +-7668388017287020544 NULL NULL +-7669169138124275712 -1484033125 -1484033125 +-7673901622181953536 1141303816 1141303816 +-7679894005808693248 -306214368 -306214368 +-7686220526274502656 -892839693 -892839693 +-7687052294777208832 -1989778424 -1989778424 +-7692192232238678016 745725681 745725681 +-7695491171376291840 1225312439 1225312439 +-7700203302632210432 1805308672 1805308672 +-7703540456272994304 1312270193 1312270193 +-7707242953271500800 1568180994 1568180994 +-7707867749256445952 -596963345 -596963345 +-7708932208121225216 307333276 307333276 +-7709958788604936192 595836061 595836061 +-7712425776235274240 -1432316859 -1432316859 +-7720966287634112512 NULL NULL +-7739424919198187520 712625264 712625264 +-7744462446680375296 2029657999 2029657999 +-7751265769984491520 700341242 700341242 +-7751427073017544704 615619268 615619268 +-7753051494275432448 -1599905147 -1599905147 +-7759238919361888256 -2065287410 -2065287410 +-7759425383684849664 -938762477 -938762477 +-7772064021830574080 -1201785350 -1201785350 +-7773957003968675840 270090617 270090617 +-7777884099756122112 914583645 914583645 +-7778829032042790912 -807242371 -807242371 +-7779270198785875968 -1242677422 -1242677422 +-7782344916178796544 -1213081886 -1213081886 +-7784419454650843136 -1210907929 -1210907929 +-7792903881635938304 -191899537 -191899537 +-7793447076762345472 1196151988 1196151988 +-7797149520019062784 -1262842192 -1262842192 +-7797151404935618560 -507955215 -507955215 +-7800879252150779904 1352739140 1352739140 +-7802538500225777664 215759857 215759857 +-7804116532814151680 -1146649990 -1146649990 +-7805985795815342080 -2076886223 -2076886223 +-7811060170911375360 1513689502 1513689502 +-7818454479651135488 -559270035 -559270035 +-7819437864839495680 -370093295 -370093295 +-7822452149325094912 60847311 60847311 +-7824788571789279232 -1406691044 -1406691044 +-7827420207675105280 -36682325 -36682325 +-7831320202242228224 -1726479726 -1726479726 +-7831595638727565312 1626884085 1626884085 +-7833618000492109824 589546540 589546540 +-7835907977757245440 -87470856 -87470856 +-7838598833900584960 1028204648 1028204648 +-7840338174858199040 -300717684 -300717684 +-7845896959112658944 -1688105985 -1688105985 +-7848043121524228096 1667594394 1667594394 +-7849504559236210688 -2052386812 -2052386812 +-7858505678035951616 NULL NULL +-7866079955473989632 196980893 196980893 +-7867219225874571264 -1078579367 -1078579367 +-7868306678534193152 -2144138362 -2144138362 +-7873753603299540992 -971698865 -971698865 +-7875953567586451456 816439627 816439627 +-7877598807023386624 340384179 340384179 +-7878145001776152576 -1489628668 -1489628668 +-7879864376629567488 -472303419 -472303419 +-7881262505761710080 -103219371 -103219371 +-7881351200983613440 720703232 720703232 +-7883252982752665600 1136548971 1136548971 +-7884460946615984128 1772349172 1772349172 +-7888051992910274560 1818213677 1818213677 +-7892780594910871552 -779743333 -779743333 +-7893577088764174336 268888160 268888160 +-7894382303337832448 1832650234 1832650234 +-7895991410072928256 1467284000 1467284000 +-7902517224300036096 -950738312 -950738312 +-7903158849011843072 -217930632 -217930632 +-7904188195431661568 -442839889 -442839889 +-7907355742053883904 794783516 794783516 +-7910019233726242816 -1259611508 -1259611508 +-7911421221625077760 476704350 476704350 +-7915999634274369536 1814570016 1814570016 +-7916510129632296960 -2136052026 -2136052026 +-7928062266382778368 152654715 152654715 +-7928440849566146560 -800975421 -800975421 +-7939634346485858304 1012843193 1012843193 +-7949309059286163456 88774647 88774647 +-7949445503604604928 1695098246 1695098246 +-7953426740065312768 22308780 22308780 +-7964801953178091520 661659208 661659208 +-7966960765508280320 -884109192 -884109192 +-7978782649203228672 491016124 491016124 +-7989766326847807488 -1731820254 -1731820254 +-7998947380180819968 -136514115 -136514115 +-8007017894942638080 1219616145 1219616145 +-8013397854633648128 -1391183008 -1391183008 +-8016589197379289088 -1721763321 -1721763321 +-8017791189288869888 -2057666812 -2057666812 +-8018511948141748224 661380540 661380540 +-8021859935185928192 1420099773 1420099773 +-8022573309127000064 1194243726 1194243726 +-8023708819947323392 198539698 198539698 +-8028275725610909696 -1937640350 -1937640350 +-8028910243475038208 873035819 873035819 +-8030058711611629568 -752222556 -752222556 +-8034414142083170304 -267130580 -267130580 +-8046189486447017984 925032386 925032386 +-8046238369820344320 819069589 819069589 +-8047774491688255488 -1339495001 -1339495001 +-8051395538179063808 -469749219 -469749219 +-8051587217208967168 51376784 51376784 +-8051871680800120832 NULL NULL +-8054581198284668928 1395450272 1395450272 +-8067243114610532352 214068706 214068706 +-8070535484085895168 829101712 829101712 +-8076479329071955968 2017314998 2017314998 +-8082793390939193344 -1878838836 -1878838836 +-8084716955963252736 -1609864597 -1609864597 +-8086577583338061824 -340462064 -340462064 +-8088337436168830976 2124297747 2124297747 +-8099313480512716800 -392713245 -392713245 +-8103788088118018048 -533227056 -533227056 +-8104684579106914304 -1091003492 -1091003492 +-8108693586698706944 -896261100 -896261100 +-8115963579415650304 -951728053 -951728053 +-8117838333114212352 -1642207005 -1642207005 +-8122639684164501504 1425456189 1425456189 +-8127494999848919040 1701817607 1701817607 +-8131997716860526592 -457341338 -457341338 +-8136227554401107968 127917714 127917714 +-8140349174954893312 NULL NULL +-8142667274351345664 453613037 453613037 +-8147405381260345344 659397992 659397992 +-8158011642485825536 NULL NULL +-8161047750470279168 -621365995 -621365995 +-8172827216441573376 -113253627 -113253627 +-8182421179156905984 -1892816721 -1892816721 +-8191825921746305024 703111607 703111607 +-8194062064124362752 1482983157 1482983157 +-8203008052020879360 -1127100849 -1127100849 +-8203075743525806080 -626484313 -626484313 +-8205148279289085952 768198315 768198315 +-8214462866994339840 NULL NULL +-8219876839318716416 1452244326 1452244326 +-8232763638546694144 -514010922 -514010922 +-8240034910581153792 -665623523 -665623523 +-8240684139569233920 -1721368386 -1721368386 +-8243487285852766208 1153811197 1153811197 +-8244116388227104768 1893512909 1893512909 +-8244657976255889408 688547276 688547276 +-8260340354454503424 1456367662 1456367662 +-8269917980278980608 -1700451326 -1700451326 +-8270479187688816640 1519993904 1519993904 +-8275337702906757120 210003006 210003006 +-8280276629934981120 -588160623 -588160623 +-8293833565967810560 -1464514590 -1464514590 +-8297230235506343936 283618733 283618733 +-8300526097982226432 1314531900 1314531900 +-8300764106868350976 -1196101029 -1196101029 +-8302817097848307712 -1021859098 -1021859098 +-8317591428117274624 -670925379 -670925379 +-8318886086186213376 1033609549 1033609549 +-8322751250650218496 -1212524805 -1212524805 +-8330233444291084288 -409404534 -409404534 +-8335810316927213568 -1562552002 -1562552002 +-8340523561480437760 39723411 39723411 +-8345065519816695808 654939016 654939016 +-8347088645602050048 76299337 76299337 +-8357136656913686528 1517915751 1517915751 +-8358130693961195520 -122391516 -122391516 +-8359839265974165504 1572563948 1572563948 +-8368269352975982592 NULL NULL +-8368487814665895936 156101201 156101201 +-8369487968903897088 -194270271 -194270271 +-8379109122834997248 1566607834 1566607834 +-8379964450833367040 -181122344 -181122344 +-8384695077413412864 -1818456584 -1818456584 +-8387347109404286976 -2011708220 -2011708220 +-8387536830476820480 -1703620970 -1703620970 +-8395998375405912064 -1141801925 -1141801925 +-8400045653258444800 1523657918 1523657918 +-8411282676082565120 253621570 253621570 +-8418913260807217152 -41864614 -41864614 +-8425998949410889728 -656478771 -656478771 +-8426531414463545344 1701761102 1701761102 +-8430283518005846016 -16094879 -16094879 +-8430370933326536704 NULL NULL +-8431492599012163584 -1131684944 -1131684944 +-8438554249514491904 232405034 232405034 +-8445801063348281344 -1247325089 -1247325089 +-8453491903284994048 1524010024 1524010024 +-8454143651040444416 516479816 516479816 +-8465978403747037184 1347876055 1347876055 +-8469607298426437632 374283948 374283948 +-8471480409335513088 1891680787 1891680787 +-8485389240529354752 -1528033060 -1528033060 +-8488247955875618816 1802498539 1802498539 +-8490382417169408000 987917448 987917448 +-8494118409594650624 631207613 631207613 +-8503342882470019072 1367179645 1367179645 +-8503573595507761152 2068018858 2068018858 +-8507279516485566464 631711489 631711489 +-8509547439040757760 -1749415887 -1749415887 +-8518060755719585792 -1100641049 -1100641049 +-8518258741831680000 -809805200 -809805200 +-8521578237232529408 -373034494 -373034494 +-8522878384019169280 633813435 633813435 +-8523434203900674048 -590374062 -590374062 +-8525212657458348032 -1280919769 -1280919769 +-8535957064499879936 -99205196 -99205196 +-8536369662934401024 447426619 447426619 +-8543982423727128576 -607667405 -607667405 +-8544299740525461504 -846450672 -846450672 +-8545239748068941824 -897586947 -897586947 +-8546758906409312256 -1236536142 -1236536142 +-8552393882631389184 1920863389 1920863389 +-8555709701170552832 -1364322216 -1364322216 +-8559008501282832384 895945459 895945459 +-8559252110266564608 259204652 259204652 +-8562524688907485184 1775355987 1775355987 +-8566856504746352640 2018442973 2018442973 +-8566940231897874432 -1409508377 -1409508377 +-8570933074545745920 -749042352 -749042352 +-8572823448513445888 -101960322 -101960322 +-8572949572756774912 1787826883 1787826883 +-8581765103969312768 -890374552 -890374552 +-8581979259158929408 -674478103 -674478103 +-8584520406368493568 -19116270 -19116270 +-8585134536083660800 -1196808950 -1196808950 +-8585966098173870080 318631333 318631333 +-8593419958317056000 6266567 6266567 +-8603817012434198528 1114521964 1114521964 +-8604758220106014720 -1798573685 -1798573685 +-8607195685207408640 -1111937842 -1111937842 +-8615168537390571520 1469775272 1469775272 +-8619303037130301440 -2074079977 -2074079977 +-8623238306523824128 -1442424087 -1442424087 +-8623965248051789824 1637295757 1637295757 +-8632237187473088512 NULL NULL +-8649711322250362880 -500921094 -500921094 +-8651641150831362048 -1533934649 -1533934649 +-8654433008222797824 -1728171376 -1728171376 +-8654797319350927360 895763504 895763504 +-8658387566611996672 NULL NULL +-8659643752269242368 1204834275 1204834275 +-8659692318743314432 25400543 25400543 +-8660149447361404928 1317690178 1317690178 +-8664374244449050624 1059212450 1059212450 +-8664806103426252800 964810954 964810954 +-8665218198816497664 -1031592590 -1031592590 +-8665764757143658496 -45460011 -45460011 +-8675661101615489024 -1918651448 -1918651448 +-8675892979328212992 1478365409 1478365409 +-8683802826440105984 -1344287228 -1344287228 +-8688153842294595584 -1741895392 -1741895392 +-8689606130068611072 488559595 488559595 +-8694818694700048384 94220511 94220511 +-8696162322976997376 1228837108 1228837108 +-8703026916864802816 -397683105 -397683105 +-8704234107608203264 -1318045616 -1318045616 +-8705403811649355776 206121314 206121314 +-8710298418608619520 -1817938378 -1817938378 +-8714995808835444736 206454818 206454818 +-8719510423723155456 -327648289 -327648289 +-8730803262481580032 NULL NULL +-8731068123910987776 -1434562279 -1434562279 +-8746702976270385152 1767359228 1767359228 +-8754966081778565120 -125419186 -125419186 +-8754992450211692544 1785455842 1785455842 +-8756989568739835904 -158420748 -158420748 +-8760655406971863040 -1249011023 -1249011023 +-8763062627136864256 -454598288 -454598288 +-8768744394742235136 -726879427 -726879427 +-8782213262837530624 1565313938 1565313938 +-8783777723063099392 877053605 877053605 +-8789178184387641344 -1045771991 -1045771991 +-8797972842900307968 284646137 284646137 +-8807361476639629312 NULL NULL +-8813211231120031744 1575300276 1575300276 +-8831091081349758976 -1832606512 -1832606512 +-8832750849949892608 -66010816 -66010816 +-8833019327569510400 -189393743 -189393743 +-8835408234247168000 -938112972 -938112972 +-8836899523028312064 397255100 397255100 +-8843859708698583040 2008211296 2008211296 +-8844949406948671488 315973457 315973457 +-8845239510002753536 -1358159222 -1358159222 +-8852770376039219200 311478497 311478497 +-8853553406533894144 -1820436871 -1820436871 +-8856151919723003904 -575513309 -575513309 +-8856821118526734336 618321042 618321042 +-8857335871148171264 1061043704 1061043704 +-8858063395050110976 -1117019030 -1117019030 +-8859107121649893376 -37876543 -37876543 +-8866442231663067136 -1079633326 -1079633326 +-8870186814744420352 NULL NULL +-8870673219965001728 -1620148746 -1620148746 +-8875546987176206336 414645489 414645489 +-8877053610728161280 706823078 706823078 +-8877431933441327104 1650676897 1650676897 +-8879742387365429248 1912175355 1912175355 +-8881446757271846912 1224662770 1224662770 +-8887058200926093312 -191704948 -191704948 +-8892963883085578240 -2087815643 -2087815643 +-8896045754034978816 1392980712 1392980712 +-8914039133569400832 1332042427 1332042427 +-8916987977485312000 -839176151 -839176151 +-8922409715403112448 -536315467 -536315467 +-8923529803981905920 1148500740 1148500740 +-8927968289860370432 1033836308 1033836308 +-8930307926221807616 -966979668 -966979668 +-8938849835283677184 1318606691 1318606691 +-8940944155843461120 -858439361 -858439361 +-8941201923743703040 NULL NULL +-8946656952763777024 -759911896 -759911896 +-8948335470186373120 -1078397698 -1078397698 +-8959796625322680320 1318956413 1318956413 +-8961059046745669632 1783034168 1783034168 +-8962547695651323904 1091736925 1091736925 +-8965578088652095488 -1216166764 -1216166764 +-8989473881707921408 1310360849 1310360849 +-8990843030306717696 -311437801 -311437801 +-8992599250893979648 1677494300 1677494300 +-8996954350906294272 -1769037737 -1769037737 +-9002912355472736256 -561932449 -561932449 +-9004892183139811328 -1949698319 -1949698319 +-9008631121684832256 704038411 704038411 +-9012093603044245504 538766635 538766635 +-9013952631912325120 -1052493316 -1052493316 +-9014145341570203648 273256071 273256071 +-9022154842129547264 1130043800 1130043800 +-9032650742739836928 1102561039 1102561039 +-9049720998034137088 1747664003 1747664003 +-9051477157204770816 -1648991909 -1648991909 +-9058029636530003968 -1197602595 -1197602595 +-9066993118333706240 -425196209 -425196209 +-9071565764086521856 2058640744 2058640744 +-9075302542655684608 -295186284 -295186284 +-9075486079396069376 -1805915233 -1805915233 +-9078662294976061440 -235819331 -235819331 +-9079801920509001728 -705887590 -705887590 +-9080568167841226752 906074599 906074599 +-9080956291212132352 1330219997 1330219997 +-9084940280061485056 128430191 128430191 +-9088239683374350336 -18917438 -18917438 +-9091113592821972992 1861276585 1861276585 +-9095689235523264512 1687784247 1687784247 +-9101953184875757568 -1918847735 -1918847735 +-9102482277760983040 742866312 742866312 +-9105358806324035584 1679381813 1679381813 +-9105701280936501248 1109664665 1109664665 +-9109392978217484288 407098216 407098216 +-9117959922369060864 936133387 936133387 +-9126793997498957824 770574055 770574055 +-9136398397785948160 376076075 376076075 +-9142610685888192512 -387395264 -387395264 +-9145593811310010368 -202409329 -202409329 +-9148197394287779840 -1568536214 -1568536214 +-9149719074367946752 234452496 234452496 +-9157613004431998976 1362740312 1362740312 +-9175038118837149696 -1701492480 -1701492480 +-9175279464813223936 2080412555 2080412555 +-9178166810751909888 -1407817977 -1407817977 +-9187662685618348032 NULL NULL +-9189155542884474880 -1955545912 -1955545912 +-9203804401302323200 -671853199 -671853199 +-9203942396257984512 -1625800024 -1625800024 +-9206329156028112896 2084666529 2084666529 +-9210275791460499456 601376532 601376532 +-9213132862973829120 -1216206795 -1216206795 +-9215144824304721920 -399643110 -399643110 +-9218875542187065344 785382955 785382955 +-9219066990552760320 2090044777 2090044777 +1021 -1884780525 -1884780525 +1030 -300429552 -300429552 +1032 -1914210382 -1914210382 +1039 914062370 914062370 +1046 -990781312 -990781312 +1048 -249150336 -249150336 +1053 -1369302744 -1369302744 +1055 371383749 371383749 +1058 -1497098905 -1497098905 +1065 1194089079 1194089079 +1066 1767019352 1767019352 +1074 161210995 161210995 +1075 -534894953 2144365072 +108 -835107230 -835107230 +1086 -1341627565 -1341627565 +1093 NULL NULL +1094 -359194591 -359194591 +1095 291866793 291866793 +1099 1390704286 1390704286 +1115 -144862954 -144862954 +112 -2147071655 -2147071655 +1127 -423378447 -423378447 +1128 -932525608 -932525608 +1132 239078089 239078089 +1134 187718349 187718349 +1141 -540820650 -540820650 +1142 1184001017 1184001017 +1145 669484010 669484010 +1153 1646811064 1646811064 +1157 590719541 590719541 +1158 990246086 990246086 +1165 477857533 1153089364 +1168 NULL NULL +1177 1182595271 1182595271 +1187 69110370 69110370 +1189 215508794 215508794 +1198 -1857500489 -1857500489 +120 29680001 29680001 +1201 945911081 945911081 +1217 -1802746460 -1802746460 +1234 -1921909135 -1921909135 +1243 1938788165 1938788165 +1247 -866304147 -866304147 +1252 30036142 30036142 +1261 -343173797 -343173797 +1270 1969239701 1969239701 +1280 991397535 991397535 +1282 -1140071443 -1140071443 +1286 -480058682 -480058682 +1287 -1362178985 -1362178985 +1290 177837042 177837042 +1291 1398486099 1398486099 +1299 765656980 765656980 +130 -2081501748 -2081501748 +1307 882331889 882331889 +1312 742059797 742059797 +1316 997193329 997193329 +1321 731241198 731241198 +1337 -1948257321 -1948257321 +1341 492120544 492120544 +1342 1203482872 1203482872 +1343 -217785690 -217785690 +1345 -600315936 -600315936 +1346 -158233823 -158233823 +135 198017473 198017473 +1366 748358417 748358417 +1368 -223311809 1650573576 +1371 -2041825946 821316302 +138 843282593 843282593 +1386 2081152819 2081152819 +1398 955267058 955267058 +1409 865013617 865013617 +1422 -1402821064 -1402821064 +1423 631954352 631954352 +1436 1765173148 1765173148 +1439 531459992 531459992 +1447 NULL NULL +1450 740883263 740883263 +1454 NULL NULL +1458 -1001529082 -1001529082 +1462 287239980 287239980 +1466 574069547 574069547 +1470 1406029775 1406029775 +1477 -707228984 -707228984 +1481 819875108 1022707418 +1489 766737781 766737781 +1493 557053197 557053197 +1495 -1222897252 -1222897252 +1501 1081920048 1081920048 +1506 1893632113 1893632113 +1508 1632769786 1632769786 +1509 1304812803 1920662116 +1518 824235855 824235855 +1520 NULL NULL +1521 -993029335 -993029335 +1524 -1851280202 -1851280202 +1530 1934970004 1934970004 +1537 -20660936 278601840 +154 -445353909 998793176 +1541 -1430903652 -1430903652 +1542 NULL NULL +1545 564366133 564366133 +1556 -1202975006 -1202975006 +1559 -206177972 -206177972 +1561 NULL NULL +1566 747122546 747122546 +1604 -2077771325 -2077771325 +1606 -1901806083 -1901806083 +1608 142722637 142722637 +1613 -1422780798 -1422780798 +1614 -296195507 -296195507 +1620 -1989378509 -1989378509 +1638 92777932 92777932 +1641 NULL NULL +1643 1346627771 1346627771 +1648 -496870819 -496870819 +1651 -1575588203 -1575588203 +1667 -499533481 -499533481 +1671 1504919241 1504919241 +1674 1488440165 1488440165 +1676 -393723522 -393723522 +1678 -1104268719 -1104268719 +168 -53587991 -53587991 +1681 929751599 929751599 +169 -1759354458 -1759354458 +1693 -1545572711 -1545572711 +1701 -648766606 1404346934 +1704 -605370177 -605370177 +1719 -1477897348 1008698636 +1726 NULL NULL +1728 626251612 626251612 +1745 368170021 368170021 +1751 -667383951 -667383951 +1752 -1538978853 -1538978853 +1769 805672638 805672638 +1774 -1974777102 -1974777102 +1775 1928365430 1928365430 +1777 1061638369 1061638369 +1780 -71433796 -71433796 +1781 NULL NULL +1785 -524189419 -524189419 +1786 -1009249550 -1009249550 +1788 -997463353 -997463353 +1789 -1098379914 -1098379914 +1791 -1900369503 -1900369503 +1796 -1625062942 -1625062942 +1806 -40284975 -40284975 +181 1742536084 1742536084 +1811 -922200749 -922200749 +1813 -738157651 -738157651 +1826 505902480 505902480 +1827 -956668825 -956668825 +1835 1768399622 1768399622 +1837 290921475 290921475 +1845 -909024258 -909024258 +1846 418182899 418182899 +1856 -1873004551 44009986 +1862 674547678 674547678 +1863 -1017027298 -1017027298 +1864 NULL NULL +1866 -400501472 -400501472 +187 2133950868 2133950868 +1870 25644069 25644069 +188 316438994 316438994 +1880 1293876597 1293876597 +1890 -1660344634 -1660344634 +1892 596595603 596595603 +1899 734267314 734267314 +19 -1900894010 -436386350 +1906 1070989126 1070989126 +1910 1978200605 1978200605 +1914 -1462331586 -1146055387 +1926 -490337498 -490337498 +1937 -987995271 -987995271 +1940 950997304 950997304 +1941 -54793232 -54793232 +1948 -1446132523 735732067 +1955 -316678117 -316678117 +1965 1173098061 1173098061 +1972 -1404921781 -1404921781 +1981 -980869630 -980869630 +1983 -1954890941 -1954890941 +1987 65956045 65956045 +1990 1050809633 1050809633 +1995 1012230484 1012230484 +1999 -9958400 -9958400 +2001 217476429 217476429 +2002 1535954353 1535954353 +2004 1464703053 1464703053 +2009 -1471147786 -1471147786 +2011 33234633 33234633 +2013 1142098316 1142098316 +2016 135341845 135341845 +2017 44628821 44628821 +2020 -244778184 37730738 +2025 989475408 989475408 +2026 -1454941039 -1454941039 +2029 546555204 546555204 +203 2070969353 2070969353 +204 2018249426 2018249426 +2046 363981930 363981930 +2056 1941527322 1941527322 +2067 NULL NULL +2072 -1652600376 -1652600376 +2073 -856843296 -856843296 +2085 -1179668872 -1179668872 +2089 945683736 945683736 +2092 1678261510 1678261510 +2105 1550112473 1550112473 +2106 1597303154 1597303154 +2108 977292235 977292235 +213 -1081328752 -361944328 +2131 -464804906 -464804906 +2138 -1048181367 -1048181367 +2140 -1319686435 -1319686435 +2144 117620760 117620760 +2155 1126157283 1126157283 +2177 -1960344717 -1960344717 +2179 1394370866 1394370866 +2180 -120704505 -120704505 +2183 -1947868215 -1947868215 +2186 -1655396452 -1655396452 +2187 -906986958 -906986958 +2189 NULL NULL +2193 -2037628236 -598552521 +2194 -853967587 -853967587 +22 176792505 176792505 +2201 1425362689 1425362689 +2205 2013376408 2013376408 +2214 1602631923 1602631923 +2217 479566810 479566810 +2218 NULL NULL +2223 1605596441 1605596441 +2227 1054864168 1054864168 +2229 516843026 516843026 +2232 277582670 277582670 +2241 810157660 810157660 +2244 -1699049982 -1699049982 +2255 -1561738723 -1561738723 +2262 1283898734 1283898734 +2264 -425103007 -425103007 +2270 -1429346144 -1429346144 +2274 -1676261015 -1676261015 +2277 -1447263708 -1447263708 +2279 -1412187081 -1412187081 +228 167432368 167432368 +2283 530274409 530274409 +2285 340929437 1533817551 +2295 -1914072976 -1914072976 +2306 -604362582 -604362582 +2320 -1919939921 -1919939921 +2323 -2028355450 -2028355450 +2325 1471913583 1645067708 +2335 1281277970 1281277970 +2341 1951869763 1951869763 +2348 -40407627 -40407627 +2358 -370798230 -370798230 +236 514833409 514833409 +2373 -1602792666 -1602792666 +238 713031549 713031549 +2386 930008274 930008274 +2393 901084309 1852725744 +2398 1489169773 1489169773 +2400 663222148 663222148 +2410 NULL NULL +2412 -1749841790 -887663189 +2420 480849725 480849725 +2426 62293025 62293025 +2434 1621606222 1621606222 +244 860708524 860708524 +2461 -1668974292 -1668974292 +2463 -655118881 2031604236 +2465 -1819075185 -1819075185 +2469 524808 524808 +2475 -1116100266 -1116100266 +2476 -1210261177 -1210261177 +2485 -379643543 1594107168 +2487 NULL NULL +2492 -270683864 -270683864 +2494 -1830870295 -1830870295 +2502 -336625622 -336625622 +2506 776606164 776606164 +2509 693331761 693331761 +2512 -1164833898 -1164833898 +2514 407233168 407233168 +2515 -601946913 -601946913 +2517 198624903 198624903 +2524 -1081766449 -1081766449 +2533 672266669 672266669 +2539 1090344463 1090344463 +2540 1103878879 1103878879 +255 -1106469823 -1106469823 +2551 -1762037754 -1762037754 +2553 1112783661 1112783661 +2560 -1946023520 -1493282775 +2563 -1141652793 -1141652793 +2565 -1302592941 -1302592941 +2569 -837503491 -837503491 +2579 1640445482 1640445482 +2580 1933545427 1933545427 +2587 -1125605439 -1125605439 +259 -922875124 -922875124 +2599 -1903090602 -1903090602 +2607 NULL NULL +2608 335359004 335359004 +2619 -2019287179 1895751360 +2625 -1897998366 -1897998366 +2626 1620529246 1620529246 +263 1094778643 1807358029 +2637 1522208504 1522208504 +2647 92834720 92834720 +2649 659343542 659343542 +2662 209430502 209430502 +2663 43983130 43983130 +2675 1305668933 1305668933 +268 -203416622 860658464 +2680 825977391 825977391 +2682 -675125724 -675125724 +2688 -1249134513 -1249134513 +2689 -1343327 -1343327 +2692 NULL NULL +2700 -123529324 -123529324 +2712 -901778330 -901778330 +2714 1284956108 1284956108 +2715 962712814 1569269522 +2719 1516149502 1516149502 +2724 922373046 922373046 +2725 257821327 257821327 +2735 1307148254 1307148254 +2745 1134416796 1134416796 +275 1517488324 1517488324 +2752 962091264 962091264 +2762 314232856 314232856 +2772 1835749815 1835749815 +2776 -1801684055 -1801684055 +2786 -2117280385 343362793 +279 -1709246310 -1709246310 +2790 686081268 686081268 +2791 -714594143 -714594143 +2803 493977568 923980398 +2805 -295751373 -295751373 +281 -42151403 -42151403 +2810 1844415080 1844415080 +2811 -170643477 -170643477 +2816 -912429611 -912429611 +2821 829055499 829055499 +2824 -1679120527 -1679120527 +2835 144428297 144428297 +2842 889772203 889772203 +2843 -1621721177 -887790938 +2846 -121162464 -121162464 +2847 1634441052 1634441052 +2848 -985817478 -985817478 +2850 1618123796 1618123796 +2855 -1770250407 1756592797 +2862 1956887369 1956887369 +2878 -906545548 -906545548 +2886 84231802 84231802 +289 -1144976744 -1144976744 +2897 -47662800 1211873318 +2900 2114363167 2114363167 +2903 1552351592 1552351592 +2905 -1232183416 -1232183416 +2911 1483580941 1483580941 +2915 -470798506 -470798506 +2919 1002132158 1002132158 +2933 -1674623501 -1484787952 +2938 -2032576637 -2032576637 +294 -1817096156 -1817096156 +2941 -1862095575 -1862095575 +2942 1638471881 1638471881 +296 -1348149160 597657990 +2962 1042237722 1042237722 +2968 1556919269 1556919269 +2971 -373541958 -373541958 +2977 -2007662579 -2007662579 +2979 131031898 131031898 +2984 1440427914 1440427914 +2986 -933324607 -933324607 +2988 492639283 492639283 +2991 NULL NULL +3002 -1538558250 -1538558250 +3006 1328225044 1328225044 +301 -1924909143 -1924909143 +302 -1730740504 -1730740504 +3021 -360113158 177294487 +3024 -891543038 -891543038 +3029 -1198036877 -1198036877 +3031 NULL NULL +3036 -449333854 -449333854 +3043 692666133 692666133 +3054 -973128166 -973128166 +3055 -1198465530 -1198465530 +3058 -1144920802 -1144920802 +3059 1386071996 1386071996 +3060 -2122509553 818313200 +3067 1256676429 1256676429 +3071 1129173487 1129173487 +3073 722737062 722737062 +3079 -882028850 -882028850 +3083 -385247581 -385247581 +3084 1333148555 1333148555 +3089 584084934 584084934 +3094 1335803002 1335803002 +3103 -1622653291 -1622653291 +311 -1850492820 -1850492820 +3111 -1299159155 -1299159155 +3118 NULL NULL +3119 673904922 673904922 +3144 -758231588 -758231588 +3147 1102069050 1102069050 +3159 -78240945 1127080164 +3163 26270580 26270580 +3174 -1871446009 -1871446009 +3183 1363459426 1363459426 +3190 297577612 297577612 +3197 976870621 976870621 +3199 -2086352100 -2086352100 +320 1198172036 1198172036 +3203 -491377296 -491377296 +3206 -733756717 -733756717 +3208 -211669740 -211669740 +3212 900992177 900992177 +3213 -1171326281 -1171326281 +3231 -817383093 -817383093 +3232 1434588588 1434588588 +3235 -287400633 -287400633 +3244 1303632852 1303632852 +3245 1385883394 1385883394 +3248 1202720813 1202720813 +3249 206942178 206942178 +3253 -1218871391 -1218871391 +3255 -1212433954 -1212433954 +3263 -419335927 -419335927 +3286 -1078214868 -1078214868 +3300 1743696703 1743696703 +3307 -1128317466 -1128317466 +3322 -1544877665 -1544877665 +3333 -462541618 -462541618 +3352 -1621814212 -1621814212 +336 1376818328 1376818328 +3365 1712411993 1712411993 +3366 -606214770 -606214770 +3397 -2066134281 -2066134281 +34 1969650228 1969650228 +3401 -2138343289 -2138343289 +3407 NULL NULL +3409 -337586880 -337586880 +341 278643258 278643258 +3418 -940504641 786565385 +342 -884796655 -884796655 +3421 -1878572820 -1878572820 +3430 -395499919 -395499919 +3443 -1006768637 -1006768637 +3446 440393309 440393309 +345 NULL NULL +3456 NULL NULL +346 -1880877824 -938756287 +3460 1204325852 1204325852 +3462 -1716506227 511836073 +3467 -1134786190 596802082 +347 -414207254 -414207254 +3472 868717604 868717604 +3478 1772545157 1772545157 +3493 -890552359 -890552359 +350 330302407 330302407 +3507 2032271149 2032271149 +3510 197056787 197056787 +3512 636901402 636901402 +3533 1076088102 1076088102 +3534 NULL NULL +3541 -996953616 -996953616 +3542 459269456 459269456 +355 1258721737 1258721737 +3554 48554395 48554395 +3555 41063276 458190500 +3563 1332181668 1332181668 +3566 -519978947 -519978947 +3567 410340192 410340192 +3568 NULL NULL +3579 -1426893312 -1426893312 +3588 696229550 850625480 +3599 2069258195 2069258195 +3606 -1032306832 -1032306832 +3608 773730574 773730574 +3609 -1380191654 -1380191654 +361 -434747475 -434747475 +3613 1191238870 1191238870 +3622 -1583445177 2057486961 +3625 -1656822229 -1656822229 +3630 693876030 693876030 +3637 929560791 929560791 +364 1336365018 1336365018 +3648 1142481557 1142481557 +3663 -886741158 -886741158 +3664 -186600427 -186600427 +367 -1324624386 -1324624386 +3672 1825828852 1825828852 +3673 -362603422 -362603422 +3677 470575409 470575409 +3680 1124269631 1124269631 +3682 -1718163874 -1718163874 +3690 1500437122 1500437122 +3691 -664111469 -664111469 +3701 760466914 760466914 +3702 -1423467446 -1423467446 +3703 1796950944 1796950944 +3707 1377359511 1377359511 +3722 -1322736153 -1322736153 +3724 1625751062 1625751062 +3725 -2119539915 1911834442 +3728 -938342473 -800799595 +3739 -192181579 -192181579 +3747 1001732850 1001732850 +3749 1027147837 1027147837 +375 -1754347372 -1754347372 +3755 -7929246 -7929246 +3763 -679230165 -679230165 +3764 -2027812975 -2027812975 +3769 -1431196400 -1431196400 +3770 -1727003541 -1627366321 +378 -1270523286 -1270523286 +3781 -161884324 141492068 +3789 -139448716 -139448716 +379 1625699061 1625699061 +3810 -1043413503 -1043413503 +3812 -870900240 -870900240 +3823 1563120121 1563120121 +3824 1372224352 1372224352 +383 -191434898 1063524922 +3830 1443426396 1443426396 +3835 133276416 133276416 +3841 -901079162 -901079162 +3848 1436480682 1436480682 +3858 1925283040 1925283040 +3860 -423945469 -423945469 +3866 -88576126 436093771 +3874 -1603071732 -1603071732 +3879 461680901 461680901 +388 -66112513 -66112513 +3887 476919973 476919973 +3901 -1909635960 -1909635960 +3904 1473503196 1473503196 +3907 -373038706 -373038706 +391 1107258026 1107258026 +3910 NULL NULL +3911 -1283465451 -1283465451 +3913 1506907734 1506907734 +392 1664736741 1664736741 +3932 2145269593 2145269593 +3940 923353533 923353533 +3941 -734921821 -734921821 +3945 -1758125445 -1758125445 +3946 523289079 523289079 +3949 1797164732 1797164732 +3958 65172363 65172363 +3960 1509573831 1509573831 +3961 -1955647385 -1955647385 +3962 NULL NULL +3965 771827308 771827308 +3974 -253084551 670667262 +3980 -564495517 -564495517 +3990 -1392487784 -1392487784 +4018 -396852483 -396852483 +4020 -1447140800 -1447140800 +4024 -202035134 -202035134 +4030 -216495498 -216495498 +4037 1003667927 1003667927 +4051 1052255272 1052255272 +4054 1998185704 1998185704 +4056 -1516259168 -1516259168 +4075 NULL NULL +4078 727802564 727802564 +4088 947846543 947846543 +41 -203911033 -203911033 +412 -505879576 2144454927 +417 152891873 152891873 +425 1336194583 1336194583 +443 596242714 596242714 +454 -1227085134 -1227085134 +455 1159353899 1159353899 +462 1677444379 1677444379 +470 -181523892 -181523892 +471 -207899360 -207899360 +481 536235636 536235636 +482 765084282 765084282 +485 874824958 874824958 +489 -928013434 -928013434 +49 1673218677 1673218677 +490 1229172951 1229172951 +491 -201554470 -201554470 +5 -1063673827 -1063673827 +500 1216016081 1216016081 +501 -1469463456 715333063 +504 851975276 851975276 +522 -853606287 -853606287 +523 149701884 149701884 +524 -1326025787 -1326025787 +530 -1851680302 -1851680302 +535 888896424 888896424 +579 -1804244259 -1804244259 +583 -1554325042 -1554325042 +584 -2017279089 -2017279089 +586 -310343273 -310343273 +587 1485934602 1485934602 +590 -186764959 -186764959 +597 1577999613 1577999613 +601 -592568201 -592568201 +612 1131663263 1131663263 +615 2097519027 2097519027 +618 -412333994 -412333994 +65 919363072 919363072 +650 1222217404 1222217404 +658 -1254129998 -1254129998 +66 2013444562 2013444562 +661 -407089271 1045719941 +663 -1261099087 -1261099087 +664 899810881 899810881 +677 -1038565721 -1038565721 +68 879290165 879290165 +681 -893863493 -893863493 +687 1888675011 1888675011 +688 NULL NULL +690 -1112062809 -1112062809 +691 -1156193121 -1156193121 +6923604860394528768 -1095938490 -1095938490 +6924820982050758656 -1709117770 -1709117770 +6926925215281774592 987734049 987734049 +6927260280037097472 1668094749 1668094749 +6928080429732536320 1300798829 1300798829 +6933001829416034304 2089198703 2089198703 +6933451028794925056 1776456512 1776456512 +6933731240564056064 780859673 780859673 +6934570741217755136 491758252 491758252 +694 -2015780444 -2015780444 +6947488599548215296 1141595012 1141595012 +695 -521886983 -521886983 +6960137166475911168 -558456218 -558456218 +6962726713896484864 2051470532 2051470532 +6963217546192322560 -1340213051 -1340213051 +6964585306125008896 2146312499 2146312499 +6967631925774639104 373031319 373031319 +6969599299897163776 -2042831105 -2042831105 +6974475559697768448 1493555718 1493555718 +6982145326341423104 -941433219 -941433219 +6987889924212203520 -2053551539 -2053551539 +6991316084916879360 -1345085327 -1345085327 +6996686091335884800 -1738775004 -1738775004 +7006803044329021440 1614297403 1614297403 +7013693841855774720 656187584 656187584 +7014537632150224896 -44426049 -44426049 +7017956982081404928 -828724467 -828724467 +7022349041913978880 -1096013673 -1096013673 +7027529814236192768 -1988508336 -1988508336 +7031339012080549888 1182390248 1182390248 +7039820685967343616 -483740394 -483740394 +7045967493826387968 -1669227632 -1669227632 +7049773031131283456 814544198 814544198 +7052226236896256000 1119976718 1119976718 +7054271419461812224 -1266138408 -1266138408 +7054938591408996352 -352146259 -352146259 +7060236714847412224 -1858443953 -1858443953 +7061498706968428544 -290558484 -290558484 +7061809776248545280 -469870330 -469870330 +7062382339142156288 536876888 536876888 +7062605127422894080 -1614194712 -1614194712 +7065344324692443136 -1881263242 -1881263242 +7068517339681259520 -1871209811 -1871209811 +7069729473166090240 NULL NULL +707 1343581455 1343581455 +7077311975029555200 1103797891 1103797891 +7078641038157643776 NULL NULL +7080269176324218880 -337073639 -337073639 +7084659344078970880 963854010 963854010 +7086206629592252416 -1106685577 -1106685577 +7091300332052062208 NULL NULL +7099005292698550272 917891418 917891418 +71 -20639382 -20639382 +7107604675626008576 1949494660 1949494660 +7125231541858205696 -2111312205 -2111312205 +7128222874437238784 -283378057 -283378057 +7130159794259353600 -837506172 -837506172 +7130306447560826880 77063155 77063155 +7149417430082027520 -1352545619 -1352545619 +7153922334283776000 NULL NULL +7157247449513484288 -36038293 -36038293 +7164349895861829632 -1153978907 -1153978907 +7165364563962191872 -1272838092 -1272838092 +7166263463731421184 -1838281337 -1838281337 +7175638927948562432 596280431 596280431 +7186401810812059648 1430614653 1430614653 +7195454019231834112 -1419573027 -1419573027 +7198687580227043328 563507584 563507584 +7199539820886958080 NULL NULL +7204802700490858496 -1719427168 -1719427168 +7210160489915236352 -1353470095 -1353470095 +7212016545671348224 1309976380 1309976380 +7212090742612467712 -1067083033 -1067083033 +7217123582035116032 -90029636 -90029636 +7220131672176058368 1017953606 1017953606 +7220581538170413056 615661052 615661052 +7223569671814987776 -1004204053 -1004204053 +7226360892091416576 -935723237 -935723237 +7229607057201127424 -1818380492 -1818380492 +723 1616782308 1616782308 +7231399302953377792 1990792684 1990792684 +7232273749940838400 -1231821948 -1231821948 +7235109456886816768 -2098078720 -2098078720 +7237310132329488384 -1061859761 -1061859761 +7238339720750948352 -1770229099 -1770229099 +724 -616724730 -616724730 +7242751359672631296 -2016985611 -2016985611 +7249443195032985600 -51612681 -51612681 +7250237407877382144 -772236518 -772236518 +7254710367022645248 1911809937 1911809937 +7255302164215013376 1281159709 1281159709 +7259955893466931200 NULL NULL +7260908278294560768 826519029 826519029 +7265141874315517952 -571587579 -571587579 +7266437490436341760 177391521 177391521 +7271786885641666560 936752497 936752497 +7271887863395459072 -94709066 -94709066 +7274777328897802240 482977302 482977302 +7291432593139507200 1570238232 1570238232 +7295502697317097472 210728566 210728566 +7295926343524163584 1182646662 1182646662 +7296164580491075584 1412102605 1412102605 +7299197687217856512 172075892 172075892 +73 488014426 488014426 +7304839835188609024 1961954939 1961954939 +7308289763456000000 -1423477356 -1423477356 +7309156463509061632 1304431147 1304431147 +7310869618402910208 -359943425 -359943425 +7319711402123149312 1036391201 1036391201 +7333512171174223872 -332125121 -332125121 +7339426767877390336 538268118 538268118 +7343171468838567936 879289168 879289168 +7344029858387820544 -1669848306 -1669848306 +7345991518378442752 849859032 849859032 +7347732772348870656 -1800413845 -1800413845 +7348598907182800896 -1940205653 -1940205653 +735 115111911 115111911 +7354813692542304256 1426152053 1426152053 +7359004378440146944 1082837515 1082837515 +736 -1183469360 -1183469360 +7368920486374989824 -1822850051 -1822850051 +7370078518278397952 -215703544 -215703544 +7370803940448305152 -533281137 -533281137 +7375521127126089728 -688296901 -688296901 +7376467688511455232 -348628614 -348628614 +7378993334503694336 1870464222 1870464222 +738 -453739759 -453739759 +7381659098423926784 867587289 867587289 +7384150968511315968 1447462863 1447462863 +7386087924003676160 2038381675 2038381675 +7391208370547269632 -743680989 -743680989 +7393308503950548992 -849551464 -849551464 +7394967727502467072 -1983567458 -1983567458 +7401968422230032384 -504529358 -504529358 +7410096605330227200 1987336880 1987336880 +7410872053689794560 -916344293 -916344293 +7411793502161182720 -177025818 -177025818 +7412924364686458880 1817671655 1817671655 +7414865343000322048 -829717122 -829717122 +7418271723644403712 1202593021 1202593021 +743 1004241194 1004241194 +7432428551399669760 -805288503 -805288503 +7432998950057975808 -434656160 -434656160 +7436133434239229952 203688965 203688965 +7440265908266827776 -1425942083 -1425942083 +7450416810848313344 1393262450 1393262450 +7452756603516190720 -2009569943 -2009569943 +7454442625055145984 -267554590 -267554590 +7454632396542074880 859140926 859140926 +7461153404961128448 -23865350 -23865350 +7471208109437304832 -1603374745 -1603374745 +7473537548003352576 -1439424023 -1439424023 +7486884806277611520 1516236846 1516236846 +7487338208419823616 1974939899 1974939899 +7487538600082554880 2068538934 2068538934 +7490717730239250432 -1829691116 -1829691116 +7491898395977523200 1265528735 1265528735 +7492436934952574976 NULL NULL +7497276415392407552 1543611951 1543611951 +7497306924248834048 550594651 550594651 +7500716020874674176 -1953605752 -1953605752 +7514552840617558016 334208532 334208532 +7517159036469575680 -1437126017 -1437126017 +7524958388842078208 -664856187 -664856187 +7528074274555305984 550186724 550186724 +7528211148397944832 -512198016 -512198016 +7534042483076857856 1645753684 1645753684 +7534145866886782976 -532755480 -532755480 +7534549597202194432 2044130430 2044130430 +7545689659010949120 -1380678829 -1380678829 +7548958830580563968 1836499981 1836499981 +7549858023389003776 NULL NULL +7555301305375858688 1916363472 1916363472 +7566273236152721408 881673558 881673558 +7569249672628789248 -1952235832 -1952235832 +7570474972934488064 -432218419 -432218419 +7573530789362262016 NULL NULL +7575087487730196480 1421779455 1421779455 +7581052107944361984 1493152791 1493152791 +7581614118458335232 -1129489281 -1129489281 +7584007864107778048 1410516523 1410516523 +7592440105065308160 NULL NULL +7593521922173419520 1260480653 1260480653 +7596563216912211968 605946758 605946758 +7599019810193211392 -2112149052 -2112149052 +7608447395949109248 882762933 882762933 +7614435638888210432 735600165 735600165 +7620183559667081216 -1967660827 -1967660827 +7621013099259527168 -553349593 -553349593 +7625728883085025280 -1699044525 -1699044525 +7626715182847090688 1905812339 1905812339 +763 -1933374662 -1933374662 +7637152193832886272 1880017800 1880017800 +7647481735646363648 1164895226 1164895226 +7648729477297987584 NULL NULL +7652123583449161728 472901914 472901914 +7659279803863146496 1541249928 1541249928 +7662037650719850496 -175727228 -175727228 +7675009476762918912 522895626 522895626 +7678790769408172032 -1313618168 -1313618168 +7682327310082531328 879500678 879500678 +7686992843032010752 -897622427 -897622427 +7689489436826804224 -909127123 -909127123 +7690986322714066944 -2124994385 -2124994385 +7691062622443044864 1516165279 1516165279 +7696737688942567424 -269702086 -269702086 +7697541332524376064 -1070951602 -1070951602 +7700734109530767360 194754262 194754262 +7701723309715685376 -1831957182 -1831957182 +7705445437881278464 527598540 527598540 +7710447533880614912 -583908704 -583908704 +7718825401976684544 -1226425562 -1226425562 +7720187583697502208 -1366059787 -1366059787 +7731443941834678272 -1092872261 -1092872261 +7735566678126616576 1626868156 1626868156 +774 449788961 449788961 +7741854854673367040 -1743938290 -1743938290 +7746402369011277824 -1735287250 -1735287250 +7747874976739016704 315055746 315055746 +7748799008146366464 -540401598 -540401598 +7752740515534422016 1851654062 1851654062 +7753359568986636288 -816661030 -816661030 +7753882935005880320 1190302173 1190302173 +7761834341179375616 1273877405 1273877405 +7762823913046556672 1198701102 1198701102 +7765456790394871808 1074488452 1074488452 +7768984605670604800 NULL NULL +7775034125776363520 -1628799508 -1628799508 +7778936842502275072 -1702587308 -1702587308 +7779486624537370624 -1998652546 -1998652546 +7779735136559579136 -1228063838 -1228063838 +7782245855193874432 618991041 618991041 +7784169796350730240 -958165276 -958165276 +7784489776013295616 -158848747 -158848747 +779 -1939362279 -1939362279 +7790728456522784768 1575091509 1575091509 +7792036342592348160 -538812082 -538812082 +7794244032613703680 1301426600 1301426600 +78 95356298 95356298 +780 -737624128 -737624128 +7800332581637259264 592011541 592011541 +7801697837312884736 -116484575 -116484575 +7818464507324121088 -2119724898 -2119724898 +782 -1552053883 -1552053883 +7823874904139849728 344239980 344239980 +784 44595790 44595790 +7843804446688264192 -397951021 -397951021 +7844258063629852672 972835688 972835688 +7845953007588401152 NULL NULL +7857878068300898304 977624089 977624089 +7868367829080506368 658008867 658008867 +7870277756614623232 985634256 985634256 +7871189141676998656 1363568842 1363568842 +7871554728617025536 -309571354 -309571354 +7874764415950176256 2127682701 2127682701 +7885697257930588160 1992977592 1992977592 +7888238729321496576 978044705 978044705 +789 NULL NULL +7892026679115554816 626941809 626941809 +7892281003266408448 -371779520 -371779520 +7898670840507031552 776459017 776459017 +7909645665163804672 -1289665817 -1289665817 +7917494645725765632 2076370203 2076370203 +7919597361814577152 2125311222 2125311222 +7921639119138070528 -1030565036 -1030565036 +7922443154272395264 -1333770335 -1333770335 +7926898770090491904 1582537271 1582537271 +7933040277013962752 -1061222139 -1061222139 +7936149988210212864 1769324649 1769324649 +7944741547145502720 372099650 372099650 +7947544013461512192 -1184620079 -1184620079 +7948803266578161664 1766517223 1766517223 +7955126053367119872 1447438548 1447438548 +7961515985722605568 866084887 866084887 +7961909238130270208 -1138530007 -1138530007 +797 996831203 996831203 +7983789401706094592 230954385 230954385 +7989119273552158720 NULL NULL +7989160253372817408 1848935036 1848935036 +7997694023324975104 -1826997220 -1826997220 +7998357471114969088 346562088 346562088 +7998687089080467456 NULL NULL +80 NULL NULL +8000440057238052864 1251556414 1251556414 +8002769767000145920 1668446119 1668446119 +8004633750273925120 -1754203978 -1754203978 +8011181697250631680 1773417290 1773417290 +8011602724663336960 667283966 667283966 +8014986215157530624 -799249885 -799249885 +8017403886247927808 -1491722659 -1491722659 +803 -2096425960 -2096425960 +8045070943673671680 435407142 435407142 +8048726769133592576 -406264741 -406264741 +8059284960252731392 -251576563 -251576563 +8069531888205086720 1978171687 1978171687 +8071961599867387904 52667480 52667480 +8073733016154431488 1815882183 1815882183 +8079573715140485120 503752931 503752931 +808 -1836166334 -1836166334 +8087737899452432384 -2137168636 -2137168636 +809 -682333536 -682333536 +8091421389575282688 NULL NULL +8099215208813903872 492968645 492968645 +8100036735858401280 -146961490 -146961490 +8109381965028548608 2022944702 2022944702 +8111757081791733760 -234758376 -234758376 +8113585123802529792 129675822 129675822 +8116738401948377088 1914993018 1914993018 +812 -954480325 -954480325 +8120593157178228736 -1379039356 -1379039356 +8129551357032259584 323817967 323817967 +8135164922674872320 -1459528251 -1459528251 +8142241016679735296 -163859725 -163859725 +8143462899383345152 644934949 644934949 +8144552446127972352 2083836439 2083836439 +8145745969573666816 467753905 467753905 +8145750910080745472 1275228381 1275228381 +8146288732715196416 -728015067 -728015067 +8146492373537660928 1316369941 1316369941 +8148211378319933440 NULL NULL +815 1910930064 1910930064 +8150115791664340992 793047956 793047956 +8156018594610790400 1384071499 1384071499 +8156782979767238656 -1651993300 -1651993300 +8160569434550403072 -1808960215 -1808960215 +8160662610166194176 -310584775 -310584775 +8163948965373386752 1968813171 1968813171 +8168742078705262592 -303747347 -303747347 +8169878743136043008 1765874562 1765874562 +8171188598958407680 1996235654 1996235654 +8183233196086214656 1450881368 1450881368 +8184799300477943808 -579916775 -579916775 +8190539859890601984 1418228573 1418228573 +8190967051000659968 604460005 604460005 +8192304692696383488 494570380 494570380 +8195103847607967744 15020431 15020431 +8199513544090730496 758926227 758926227 +820 -409673169 746904285 +8201303040648052736 -774406989 -774406989 +8201491077550874624 1677197847 1677197847 +8208354137450766336 1377144283 1377144283 +8210813831744118784 139661585 139661585 +8213810702473183232 587797446 587797446 +8219326436390821888 2064448036 2064448036 +8220104397160169472 -1274158260 -1274158260 +8221561626658881536 -1626062014 -1626062014 +8222714144797368320 -318380015 -318380015 +8223732800007864320 -599396052 -599396052 +823 1660088606 1660088606 +8230371298967609344 1660278264 1660278264 +8235179243092090880 187893585 187893585 +8244041599171862528 402173272 402173272 +8254763178969915392 658850444 658850444 +8268875586442256384 1271280812 1271280812 +8269730157217062912 127051381 127051381 +8272001752345690112 3999930 3999930 +8279056098670198784 2133492883 2133492883 +8282648443538710528 -402441123 -402441123 +8283099811330506752 737149747 737149747 +8286706213485297664 -916495008 -916495008 +8287522765741301760 -1817564067 -1817564067 +8290014929764040704 -1424027104 -1424027104 +8290944180915871744 684561551 684561551 +8294315622451740672 -43858652 -43858652 +8295110846998233088 -1945738830 -1945738830 +83 -684022323 -684022323 +8302473563519950848 -1524081566 -1524081566 +8316336224427483136 345556325 345556325 +8323460620425330688 -1524554771 -1524554771 +8325227661920133120 -178568841 -178568841 +8332670681629106176 -314935936 -314935936 +8333523087360901120 -442732016 -442732016 +8337549596011102208 904604938 904604938 +8345435427356090368 323919214 323919214 +835 -1054609414 -1054609414 +8351163199364390912 391186487 391186487 +8362046808797306880 89366322 89366322 +8365058996333953024 -2043805661 -2043805661 +8367680396909404160 -1269216718 -1269216718 +8368012468775608320 -1665164127 -1665164127 +837 170870820 170870820 +8371939471056470016 826143442 826143442 +8372408423196270592 564349193 564349193 +8372588378498777088 1321678350 1321678350 +8374321007870836736 -329336519 -329336519 +8376440110255243264 1665724041 1665724041 +8383159090746204160 605141554 605141554 +8388363436324085760 -707108808 -707108808 +8391407951622815744 NULL NULL +8391785334471589888 -630900418 -630900418 +8396433451610652672 -180280420 -180280420 +8398862954249560064 669871113 669871113 +8407869317250220032 -1240912824 -1240912824 +8410599906334097408 -1606567895 -1606567895 +8411494452500930560 -1568646283 -1568646283 +8415171956168417280 541118710 541118710 +8416121695917498368 63706286 63706286 +8417381121663746048 1458051497 1458051497 +8419958579638157312 -99916247 -99916247 +8424515140664360960 1847210729 1847210729 +8435912708683087872 -2081809883 -2081809883 +845 -1026746699 -1026746699 +8451612303224520704 -971203543 -971203543 +8454154705460666368 -1421396891 -1421396891 +8455496814886002688 107680423 107680423 +8457906374051020800 106847364 106847364 +8461498293348065280 1636364987 1636364987 +8463868417649524736 -1643714866 -1643714866 +8467976965865799680 916057807 916057807 +8470141334513098752 NULL NULL +8472429318602268672 -308225568 -308225568 +8473699639908261888 -591879497 -591879497 +8487573502287478784 1895282160 1895282160 +8489584373231919104 1416850873 1416850873 +8489735221193138176 -1124028213 -1124028213 +85 -913906252 -913906252 +8501910015960735744 1579460630 1579460630 +8508401924853850112 -1578387726 -1578387726 +8509508263705477120 1107757211 1107757211 +8514851182589771776 415234946 415234946 +8514979402185596928 1902676205 1902676205 +8515682078777081856 -1026458834 -1026458834 +8518454006987948032 -379174037 -379174037 +8519937082746634240 -1745449855 -1745449855 +8523972434954510336 2134433675 2134433675 +8524940073536954368 476858779 476858779 +8525336514806317056 350802495 350802495 +8525894870444638208 1216287232 1216287232 +8532016240026279936 -1726585032 -1726585032 +8536948829863198720 1723691683 1723691683 +8540237852367446016 398960205 398960205 +8543177193114779648 2048533360 2048533360 +8547243497773457408 -534991774 -534991774 +8551446856960942080 -1312782341 -1312782341 +8553195689344991232 566646177 566646177 +8554899472487596032 -491882534 -491882534 +8555933456197828608 NULL NULL +8555948987770511360 107941738 107941738 +8557218322962644992 -1210550573 -1210550573 +8558000156325707776 -370901197 -370901197 +8560526613401714688 1592467112 1592467112 +8569030475428511744 1743671220 1743671220 +8570983266408103936 950545385 950545385 +8571268359622172672 1187495452 1187495452 +8573305425181941760 1583280136 1583280136 +8577096957495025664 NULL NULL +8579974641030365184 -1545388906 -1545388906 +8583916402383601664 -733239404 -733239404 +8613562211893919744 -1109134719 -1109134719 +8625937019655200768 272086526 272086526 +8631515095562887168 -1244527286 -1244527286 +8637720762289659904 1669519977 1669519977 +8639254009546055680 477584560 477584560 +8641221723991433216 -1531040609 -1531040609 +8643198489997254656 -1079086534 -1079086534 +8644602243484803072 -1218592418 -1218592418 +8649296591032172544 -1744964279 -1744964279 +8652485812846567424 1372705672 1372705672 +8656571350884048896 NULL NULL +8660248367767076864 1520375588 1520375588 +8665969966920990720 1372982791 1372982791 +8666178591503564800 -1565785026 -1565785026 +8677632093825916928 2040926345 2040926345 +8677794924343164928 115470151 115470151 +868 -2133145181 -2133145181 +8682955459667951616 2009215103 2009215103 +8687042963221159936 -870624802 -870624802 +8688483860094599168 -273937943 -273937943 +8693036785094565888 2090496825 2090496825 +8697823501349609472 922553769 922553769 +8698055291501543424 -1755088362 -1755088362 +8708232769657815040 6526476 6526476 +8708845895460577280 1860113703 1860113703 +871 915505006 915505006 +8714829359200747520 672919099 672919099 +8716401555586727936 -789126455 -789126455 +8720504651219001344 825677248 825677248 +8723248113030782976 144499388 144499388 +873 842283345 842283345 +8731960288562044928 869288953 869288953 +8734584858442498048 -946830673 -946830673 +8736061027343859712 -1974972123 -1974972123 +874 58313734 58313734 +8752150411997356032 -1502924486 -1502924486 +8759089349412847616 1972940844 1972940844 +8759184090543857664 435426302 435426302 +8760285623204290560 -573787626 -573787626 +8761174805938331648 1205391962 1205391962 +8769199243315814400 2100377172 2100377172 +8773222500321361920 217823040 217823040 +8775009214012456960 -213198503 -213198503 +8779073705407963136 -1979314577 -1979314577 +8779711700787298304 -859535015 -859535015 +878 290601612 290601612 +8780196485890555904 -607285491 -607285491 +8782900615468302336 -1411407810 -1411407810 +8783241818558193664 -714270951 -714270951 +8785153741735616512 1028092807 1028092807 +8792059919353348096 -745678338 -745678338 +8793387410919038976 -1058166020 -1058166020 +8795069490394882048 1366402722 1366402722 +8806507556248731648 1190554937 1190554937 +8808467247666241536 -1706867123 -1706867123 +8811693967537774592 1731764471 1731764471 +8815398225009967104 -1701502632 -1701502632 +8817665768680906752 1550375386 1550375386 +8822384228057604096 -1371840597 -1371840597 +8825059717746376704 872554087 872554087 +8829545979081744384 NULL NULL +883 -1554130090 -1554130090 +8836228556823977984 1499399891 1499399891 +8837420822750314496 2052773366 2052773366 +8849475396952514560 718692886 718692886 +8850055384477401088 1503176016 1503176016 +8853989376829833216 -1505397109 -1505397109 +8854495099223375872 2065408093 2065408093 +8854677881758162944 1883400319 1883400319 +8854715632851345408 1301997393 1301997393 +8856674723376668672 -4943292 -4943292 +8868529429494071296 1830870769 1830870769 +8871707618793996288 -677778959 -677778959 +8875745082589929472 -1460613213 -1460613213 +888 1012696613 1012696613 +8895174927321243648 -522450861 -522450861 +8896237972875370496 1540680149 1540680149 +8897901899039473664 -535056977 -535056977 +8899122608190930944 -2146432765 -2146432765 +8900180888218329088 -1058356124 -1058356124 +8900351886974279680 1000106109 1000106109 +8900545829211299840 352214248 352214248 +8905330479248064512 NULL NULL +8910706980937261056 1166237779 1166237779 +8920344895701393408 -1126628450 -1126628450 +8920533610804609024 1739911574 1739911574 +8927691194719174656 -917062754 -917062754 +8928133990107881472 -1511162508 -1511162508 +8935252708196999168 1603612975 1603612975 +8936639033158410240 -1305139473 -1305139473 +8939431770838810624 -934008333 -934008333 +8945004737083555840 252169185 252169185 +8945302550165004288 1117805438 1117805438 +8962097525980225536 -329695030 -329695030 +8972161729142095872 1709983738 1709983738 +8979012655944220672 -120692484 -120692484 +898 -234278308 338805871 +8983857919580209152 1273798925 1273798925 +8983912573761167360 NULL NULL +8984935029383389184 -1565671389 -1565671389 +8987827141270880256 -1024500955 -1024500955 +8991071342495531008 -574475259 -574475259 +8991442360387584000 2081243058 2081243058 +8994608999945125888 -839512271 -839512271 +8995562121346260992 -618505946 -618505946 +8996824426131390464 -214166042 -214166042 +9000633029632499712 -641062448 -641062448 +9001907486943993856 -1974257754 -1974257754 +9005866015985713152 652118640 652118640 +9016280522993975296 388707554 388707554 +9020143715350814720 NULL NULL +9023663198045544448 1145627305 1145627305 +9030480306789818368 -758973175 -758973175 +9038087402564657152 NULL NULL +9040958359122640896 -1635301453 -1635301453 +9043089884440068096 -1527024213 -1527024213 +9048002942653710336 -1079231269 -1079231269 +9048297564833079296 -1534307678 -1534307678 +9050032047355125760 -1240048334 -1240048334 +9053187076403060736 1075444504 1075444504 +9054887854393950208 -1517536924 -1517536924 +9062227900376203264 1260101584 1260101584 +9064847977742032896 -1849091666 -1849091666 +9067985867711291392 43672187 43672187 +9073672806863790080 -2144241640 -2144241640 +9075404705968840704 712816880 712816880 +9078604269481148416 -298221893 -298221893 +908 266601601 266601601 +9083076230151864320 2111462911 2111462911 +9083704659251798016 -1359838019 -1359838019 +9084402694981533696 NULL NULL +9085381906890203136 -240529113 -240529113 +9085434340468473856 76381404 76381404 +9086905513121890304 1796013407 1796013407 +9089435102788009984 2102440065 2102440065 +9091082386452684800 748185058 748185058 +9091085792947666944 254921167 254921167 +9094945190752903168 2126491387 2126491387 +9096395849845194752 100270148 100270148 +91 -1288198020 -1288198020 +9104574294205636608 1257621270 1257621270 +9107991000536498176 -847235873 -847235873 +9112400579327483904 1111985530 1111985530 +9114850402293882880 1571267481 1571267481 +9116137265342169088 -236700442 -236700442 +9117063974299148288 -297664578 -297664578 +9119046173224370176 1604076720 1604076720 +9123116008004288512 1882932986 1882932986 +913 1845797092 1845797092 +9131533983989358592 -1234163924 -1234163924 +9132009829414584320 -1856034030 -1856034030 +9136234417125007360 NULL NULL +9136548192574529536 1121512594 1121512594 +9139805788041134080 881396599 881396599 +914 -1257859205 -1257859205 +9148071980848742400 1370723240 1370723240 +9149216169284091904 -694520014 -694520014 +9165199002069458944 430686478 430686478 +9169248521377374208 1566958573 1566958573 +917 -2076460151 -2076460151 +9174894805640142848 1336842978 1336842978 +918 1359437295 1359437295 +9180098147855769600 1950882901 1950882901 +9182828596851990528 -1012329052 -1012329052 +9185458640237641728 -1011125931 -1011125931 +9185952983951343616 889733679 889733679 +9188173682239275008 -1248781172 -1248781172 +919 -357680544 -357680544 +9190466190353661952 1918230406 1918230406 +9191943992860327936 -595769210 -595769210 +9194388393453060096 1002519329 1002519329 +9199741683232399360 -1096771844 -1096771844 +9207107990561972224 -765190882 -765190882 +9207927479837319168 2066707767 2066707767 +9209153648361848832 471464395 471464395 +921 1238986437 1238986437 +9211455920344088576 166320811 166320811 +922 932774185 932774185 +923 -1506324615 -1506324615 +927 1044196568 1044196568 +928 413090363 413090363 +939 -982238309 -982238309 +94 NULL NULL +945 219415594 219415594 +947 -896274896 -896274896 +950 -2065080832 -1541281934 +958 NULL NULL +961 1805139501 1805139501 +965 1336951982 1336951982 +967 -1240208945 -1240208945 +976 -1563676282 -1563676282 +979 1022214896 1022214896 +982 -835198551 -835198551 +987 1807877618 1807877618 +997 -742707249 -742707249 +999 -346607939 -346607939 +NULL -2069439395 2142592987 +PREHOOK: query: explain vectorization detail +select b, min(i), max(i), sum(si) from vectortab2korc group by b +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b, min(i), max(i), sum(si) from vectortab2korc group by b +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: false + enabledConditionsNotMet: [hive.vectorized.execution.enabled IS false] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: si (type: smallint), i (type: int), b (type: bigint) + outputColumnNames: si, i, b + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: min(i), max(i), sum(si) + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: b (type: bigint) + mode: hash + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint) + sort order: + + Map-reduce partition columns: _col0 (type: bigint) + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: int), _col2 (type: int), _col3 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: min(VALUE._col0), max(VALUE._col1), sum(VALUE._col2) + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: KEY._col0 (type: bigint) + mode: mergepartial + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b, min(i), max(i), sum(si) from vectortab2korc group by b +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, min(i), max(i), sum(si) from vectortab2korc group by b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 -603273425 -603273425 -1307 +-6919476845891313664 710856472 710856472 8811 +-6920172215209426944 -764412063 -764412063 -26832 +-6921654334727036928 -1066775085 -1066775085 21673 +-6933565857643814912 581259902 581259902 NULL +-6934304742087655424 955171928 955171928 NULL +-6935038507792801792 174310705 174310705 -1928 +-6935548339131138048 -1062159435 -1062159435 24858 +-6938706403992854528 980732494 980732494 30420 +-6941777546186579968 121663320 121663320 21611 +-6947955278050181120 641695802 641695802 16357 +-6951350560260784128 1342923026 1342923026 12256 +-6957946688477274112 1505168716 1505168716 28272 +-6960947572095770624 1136976809 1136976809 -19343 +-6962271229404348416 1106995930 1106995930 -9734 +-6962292590214234112 -1147471772 -1147471772 20540 +-6968771079156654080 -939348081 -939348081 -25698 +-6968892545529896960 470993066 470993066 -16307 +-6970396058557005824 2140632003 2140632003 2643 +-6974654664348033024 -968377273 -968377273 26540 +-6975459232300236800 1151752586 1151752586 16796 +-6986178228432322560 -1369253050 -1369253050 18845 +-6988811476286873600 -1968097621 -1968097621 -15573 +-6988970700649168896 -1230459100 -1230459100 NULL +-6992217501957169152 1472487454 1472487454 -32755 +-6997233584896229376 -76654979 -76654979 3486 +-7000925438663041024 596045726 596045726 1755 +-7003696402314215424 -1458382451 -1458382451 -15348 +-7011425384222244864 NULL NULL 9017 +-7017212700635545600 304860245 304860245 20680 +-7020852530219171840 824836988 824836988 -25115 +-7030489936116252672 1115197541 1115197541 24847 +-7035132060308643840 NULL NULL 21784 +-7036607470351654912 -1933192293 -1933192293 -31458 +-7037375807670501376 -1168823523 -1168823523 1728 +-7037638331316469760 14573904 14573904 5093 +-7038455462786334720 524317972 524317972 343 +-7040248820505149440 196581473 196581473 -10326 +-7041362811802148864 -455114104 -455114104 9948 +-7042183597114081280 658636280 658636280 22333 +-7046180371529351168 -117723745 -117723745 4397 +-7049618574399692800 -978892011 -978892011 23441 +-7052619594823221248 -1117358187 -1117358187 7821 +-7055619148037554176 -838656526 -838656526 -13008 +-7055760785575665664 759899363 759899363 -24478 +-7057750467944931328 -71449585 -71449585 -10316 +-7058986555327307776 1942004879 1942004879 26796 +-7063777488249085952 -507250351 -507250351 21991 +-7078068944081002496 2013178181 2013178181 -32533 +-7079898537463537664 -1205034356 -1205034356 -31711 +-7081500255163727872 -1969751342 -1969751342 -18283 +-7083646746411720704 780938234 780938234 NULL +-7085247548404178944 1640192895 1640192895 -31828 +-7093825013581979648 -628790799 -628790799 -17607 +-7094189393339678720 1796486238 1796486238 20349 +-7094827141662539776 -632803945 -632803945 -24805 +-7104310188119834624 -1928197479 -1928197479 -10569 +-7106210529681350656 1718167702 1718167702 30585 +-7109790267244814336 -291577538 -291577538 11617 +-7115054815375073280 NULL NULL -29977 +-7120456708338688000 1751468853 1751468853 NULL +-7127548949860818944 260463232 260463232 28089 +-7138415011665043456 -1345391395 -1345391395 -29811 +-7139677575412686848 -1556127172 -1556127172 -15762 +-7140008543769042944 -1938290238 -1938290238 -30974 +-7144791190333546496 -876122064 -876122064 -13426 +-7145585429014888448 -817093900 -817093900 29245 +-7147490721376591872 1759741857 1759741857 -10312 +-7152177800841502720 -37773326 -37773326 -12463 +-7155539549555105792 -345542922 -345542922 -22421 +-7158472098920390656 -71305062 -71305062 -31998 +-7159700138947862528 -76430653 -76430653 26134 +-7161165959057334272 1352649032 1352649032 -22949 +-7162299524557471744 1813010930 1813010930 NULL +-7172594404186693632 -1949359208 -1949359208 2234 +-7185369278665605120 -374337252 -374337252 1864 +-7192529627893858304 -45439614 -45439614 10425 +-7194281951646187520 -797889292 -797889292 5661 +-7195217207163166720 -1977762695 -1977762695 -1767 +-7198372044947275776 -1424770359 -1424770359 -28941 +-7199983995864711168 -1870912732 -1870912732 -16570 +-7201085131997011968 -1356601829 -1356601829 4111 +-7209060152494817280 -2071851852 -2071851852 -23284 +-7213775605408178176 1222935237 1222935237 -32462 +-7220731681653604352 -851663638 -851663638 27796 +-7221474017515347968 -1421860505 -1421860505 23220 +-7228589258642194432 1958701268 1958701268 NULL +-7240213957902663680 -841634659 -841634659 NULL +-7242345057866285056 548375173 548375173 16799 +-7245872320493322240 -134686276 -134686276 4781 +-7246123871306244096 1686537335 1686537335 -25959 +-7255010240787030016 1373871781 1373871781 2612 +-7255686273677328384 2100839074 2100839074 -21005 +-7262049693594943488 1295073553 1295073553 -6142 +-7262384251828518912 1647411522 1647411522 NULL +-7262798781688651776 -423190290 -423190290 32212 +-7263060340185194496 1590744669 1590744669 -30669 +-7265998318110711808 1437057145 1437057145 6144 +-7266719102957125632 960187615 960187615 6036 +-7270034223527993344 -1984079412 -1984079412 2542 +-7273590251991162880 994798486 994798486 4332 +-7273694358642851840 2009890220 2009890220 -25155 +-7276111129363046400 -1462604138 -1462604138 2683 +-7287583262310350848 -1108723753 -1108723753 31099 +-7292078334519894016 -785261879 -785261879 -3757 +-7296096276653391872 160290374 160290374 13632 +-7303847963918393344 -1769423338 -1769423338 13795 +-7319315187617587200 -235238928 -235238928 11077 +-7326863346317598720 958866509 958866509 -5282 +-7328087811698909184 -1017629298 -1017629298 -21795 +-7329767178250018816 -448060992 -448060992 -23462 +-7329807949048193024 -369183838 -369183838 1519 +-7330203470474985472 -1065248998 -1065248998 29015 +-7330413050756235264 -2024003241 -2024003241 14335 +-7333278178640953344 1393506704 1393506704 -15819 +-7333362172439035904 -835002549 -835002549 -11675 +-7340231535789727744 526502851 526502851 -14815 +-7344146703223496704 789871166 789871166 -30907 +-7344947507044466688 -340951385 -340951385 -19912 +-7345562788132315136 1750433588 1750433588 -16647 +-7356685674003021824 1319589591 1319589591 -21389 +-7357888618985873408 NULL NULL 27116 +-7362189611124563968 -496915240 -496915240 11804 +-7366430883634929664 1592153312 1592153312 20746 +-7378096180613840896 218917585 218917585 29639 +-7380731416973295616 -1114208576 -1114208576 -22554 +-7395343938785738752 830944953 830944953 28011 +-7395553021620731904 1056997296 1056997296 NULL +-7399631791131074560 -932921363 -932921363 -11110 +-7404052043914526720 -1349876582 -1349876582 29023 +-7404057145074712576 56316391 56316391 -15109 +-7409317158045442048 -1463884101 -1463884101 2955 +-7409653086454030336 -624029057 -624029057 -6884 +-7412431471807283200 622925063 622925063 27982 +-7413317118463164416 -507015439 -507015439 -9566 +-7419068456205385728 -4393552 -4393552 -5635 +-7420448501073051648 -1155174991 -1155174991 10600 +-7425160895830573056 -765102534 -765102534 22678 +-7429331808102899712 -1057522129 -1057522129 9264 +-7433265617153343488 NULL NULL -20946 +-7442593976514420736 1851805558 1851805558 -29228 +-7444070205513138176 -520725912 -520725912 26108 +-7451660755269853184 1338047392 1338047392 10217 +-7453525026342617088 1505665168 1505665168 4568 +-7455898404374921216 1544482684 1544482684 18558 +-7456869587112255488 -224865887 -224865887 -14783 +-7461750143936897024 -1343425152 -1343425152 -695 +-7464270453557993472 -1439293109 -1439293109 -12647 +-7469660864676585472 85774760 85774760 25847 +-7470307155642245120 1137950964 1137950964 17489 +-7476082621253402624 1083855659 1083855659 23928 +-7483435388852559872 -914329027 -914329027 28041 +-7488345684795342848 -1668736016 -1668736016 -458 +-7488415863027367936 1286367391 1286367391 28128 +-7494411162675691520 1595326878 1595326878 -21358 +-7496839341561954304 868714547 868714547 21849 +-7497303453253402624 1415647436 1415647436 -26565 +-7500200359698907136 -423074450 -423074450 -5216 +-7501803640821456896 1809795770 1809795770 -27807 +-7506254246954500096 -511198293 -511198293 23766 +-7507424948896415744 -828522499 -828522499 -14093 +-7507578199583694848 -1784633305 -1784633305 32133 +-7510418793070075904 975932228 975932228 27983 +-7511202710200885248 -2042647152 -2042647152 -22960 +-7511952204985049088 -1351437382 -1351437382 -25664 +-7512289590991544320 1409872356 1409872356 19350 +-7512297136103800832 -1180153422 -1180153422 18439 +-7515996202498473984 344989592 344989592 26296 +-7524170566881329152 -1908696083 -1908696083 -27358 +-7526793959592140800 -570632618 -570632618 28309 +-7528526815026692096 2125479431 2125479431 -3896 +-7532751268425261056 1752520642 1752520642 -26433 +-7535857766791577600 1846184880 1846184880 11168 +-7535958203887706112 656636097 656636097 -15862 +-7536330682873937920 -1289501869 -1289501869 -134 +-7540104552219860992 1081187102 1081187102 -14675 +-7541860097718902784 -625788713 -625788713 -11571 +-7542857121910046720 1495575878 1495575878 20872 +-7547245548870025216 1784291853 1784291853 -716 +-7547432761381339136 434679307 434679307 2338 +-7551394356730339328 1179528290 1179528290 -6460 +-7557017910095650816 195281533 195281533 -14661 +-7558524160894427136 375106978 375106978 18372 +-7571293705217687552 1240875512 1240875512 -10935 +-7571957778022178816 1042184256 1042184256 13595 +-7572262898020278272 -1875699183 -1875699183 23683 +-7572962089372991488 -841268868 -841268868 30730 +-7576194692683563008 2080249726 2080249726 28393 +-7593363318079610880 -1811563127 -1811563127 -23387 +-7594824008626372608 824743780 824743780 -24942 +-7598782894648565760 -983874694 -983874694 12762 +-7600138468036386816 -722294882 -722294882 17436 +-7603467428164009984 -619311578 -619311578 NULL +-7603569103205916672 390124976 390124976 -18358 +-7610137349734883328 683320224 683320224 7356 +-7611584069753552896 -1765795567 -1765795567 -29864 +-7612455481940246528 NULL NULL 1558 +-7612466483992051712 -1969235238 -1969235238 39 +-7616522969329262592 1924741890 1924741890 -2254 +-7617860842651017216 386741352 386741352 718 +-7623047151287754752 -1050029724 -1050029724 -23325 +-7623359796281999360 1829544791 1829544791 -27259 +-7623405558242500608 283322761 283322761 5235 +-7624057992767782912 -1218581850 -1218581850 31986 +-7629401308029976576 -1655030261 -1655030261 -12575 +-7637494527844343808 2005560498 2005560498 -27372 +-7637755520917741568 648935848 648935848 -10662 +-7642381493746483200 583458404 583458404 NULL +-7647020450676146176 609917172 609917172 17286 +-7661192563533062144 -1319753324 -1319753324 NULL +-7661250850555633664 -693249555 -693249555 -25689 +-7663293054873812992 -1478812842 -1478812842 -6518 +-7665186441284968448 791096295 791096295 -20218 +-7668388017287020544 NULL NULL 24244 +-7669169138124275712 -1484033125 -1484033125 -19535 +-7673901622181953536 1141303816 1141303816 13154 +-7679894005808693248 -306214368 -306214368 9943 +-7686220526274502656 -892839693 -892839693 -20182 +-7687052294777208832 -1989778424 -1989778424 28360 +-7692192232238678016 745725681 745725681 -25683 +-7695491171376291840 1225312439 1225312439 -15748 +-7700203302632210432 1805308672 1805308672 17531 +-7703540456272994304 1312270193 1312270193 2458 +-7707242953271500800 1568180994 1568180994 -13335 +-7707867749256445952 -596963345 -596963345 16734 +-7708932208121225216 307333276 307333276 -17840 +-7709958788604936192 595836061 595836061 5191 +-7712425776235274240 -1432316859 -1432316859 -26932 +-7720966287634112512 NULL NULL -18659 +-7739424919198187520 712625264 712625264 -12103 +-7744462446680375296 2029657999 2029657999 17958 +-7751265769984491520 700341242 700341242 -28914 +-7751427073017544704 615619268 615619268 31581 +-7753051494275432448 -1599905147 -1599905147 28921 +-7759238919361888256 -2065287410 -2065287410 30119 +-7759425383684849664 -938762477 -938762477 NULL +-7772064021830574080 -1201785350 -1201785350 NULL +-7773957003968675840 270090617 270090617 -9943 +-7777884099756122112 914583645 914583645 16217 +-7778829032042790912 -807242371 -807242371 -26064 +-7779270198785875968 -1242677422 -1242677422 -15129 +-7782344916178796544 -1213081886 -1213081886 -17356 +-7784419454650843136 -1210907929 -1210907929 -3179 +-7792903881635938304 -191899537 -191899537 27523 +-7793447076762345472 1196151988 1196151988 17942 +-7797149520019062784 -1262842192 -1262842192 -26439 +-7797151404935618560 -507955215 -507955215 -14928 +-7800879252150779904 1352739140 1352739140 -8578 +-7802538500225777664 215759857 215759857 31334 +-7804116532814151680 -1146649990 -1146649990 11159 +-7805985795815342080 -2076886223 -2076886223 -11679 +-7811060170911375360 1513689502 1513689502 -26128 +-7818454479651135488 -559270035 -559270035 -4491 +-7819437864839495680 -370093295 -370093295 -23389 +-7822452149325094912 60847311 60847311 24253 +-7824788571789279232 -1406691044 -1406691044 -14667 +-7827420207675105280 -36682325 -36682325 6197 +-7831320202242228224 -1726479726 -1726479726 -6637 +-7831595638727565312 1626884085 1626884085 -7738 +-7833618000492109824 589546540 589546540 -27715 +-7835907977757245440 -87470856 -87470856 -11165 +-7838598833900584960 1028204648 1028204648 -20789 +-7840338174858199040 -300717684 -300717684 3245 +-7845896959112658944 -1688105985 -1688105985 -3061 +-7848043121524228096 1667594394 1667594394 30222 +-7849504559236210688 -2052386812 -2052386812 -23248 +-7858505678035951616 NULL NULL -32240 +-7866079955473989632 196980893 196980893 NULL +-7867219225874571264 -1078579367 -1078579367 -11123 +-7868306678534193152 -2144138362 -2144138362 18395 +-7873753603299540992 -971698865 -971698865 NULL +-7875953567586451456 816439627 816439627 -29601 +-7877598807023386624 340384179 340384179 -22938 +-7878145001776152576 -1489628668 -1489628668 26744 +-7879864376629567488 -472303419 -472303419 24677 +-7881262505761710080 -103219371 -103219371 -1034 +-7881351200983613440 720703232 720703232 -20180 +-7883252982752665600 1136548971 1136548971 -12782 +-7884460946615984128 1772349172 1772349172 -14936 +-7888051992910274560 1818213677 1818213677 12045 +-7892780594910871552 -779743333 -779743333 -12571 +-7893577088764174336 268888160 268888160 NULL +-7894382303337832448 1832650234 1832650234 -24368 +-7895991410072928256 1467284000 1467284000 17394 +-7902517224300036096 -950738312 -950738312 41 +-7903158849011843072 -217930632 -217930632 7128 +-7904188195431661568 -442839889 -442839889 27697 +-7907355742053883904 794783516 794783516 28247 +-7910019233726242816 -1259611508 -1259611508 1409 +-7911421221625077760 476704350 476704350 7401 +-7915999634274369536 1814570016 1814570016 -7178 +-7916510129632296960 -2136052026 -2136052026 23468 +-7928062266382778368 152654715 152654715 1436 +-7928440849566146560 -800975421 -800975421 -31352 +-7939634346485858304 1012843193 1012843193 4363 +-7949309059286163456 88774647 88774647 11814 +-7949445503604604928 1695098246 1695098246 -17082 +-7953426740065312768 22308780 22308780 1847 +-7964801953178091520 661659208 661659208 -18867 +-7966960765508280320 -884109192 -884109192 -19517 +-7978782649203228672 491016124 491016124 16250 +-7989766326847807488 -1731820254 -1731820254 8675 +-7998947380180819968 -136514115 -136514115 -9759 +-8007017894942638080 1219616145 1219616145 -31582 +-8013397854633648128 -1391183008 -1391183008 -18295 +-8016589197379289088 -1721763321 -1721763321 4715 +-8017791189288869888 -2057666812 -2057666812 4447 +-8018511948141748224 661380540 661380540 3523 +-8021859935185928192 1420099773 1420099773 32019 +-8022573309127000064 1194243726 1194243726 28828 +-8023708819947323392 198539698 198539698 24178 +-8028275725610909696 -1937640350 -1937640350 -28682 +-8028910243475038208 873035819 873035819 22557 +-8030058711611629568 -752222556 -752222556 6734 +-8034414142083170304 -267130580 -267130580 18984 +-8046189486447017984 925032386 925032386 22603 +-8046238369820344320 819069589 819069589 -16027 +-8047774491688255488 -1339495001 -1339495001 -25301 +-8051395538179063808 -469749219 -469749219 20969 +-8051587217208967168 51376784 51376784 -9398 +-8051871680800120832 NULL NULL -14229 +-8054581198284668928 1395450272 1395450272 5601 +-8067243114610532352 214068706 214068706 -9365 +-8070535484085895168 829101712 829101712 -7865 +-8076479329071955968 2017314998 2017314998 -12605 +-8082793390939193344 -1878838836 -1878838836 6761 +-8084716955963252736 -1609864597 -1609864597 21103 +-8086577583338061824 -340462064 -340462064 20120 +-8088337436168830976 2124297747 2124297747 30839 +-8099313480512716800 -392713245 -392713245 -3091 +-8103788088118018048 -533227056 -533227056 25835 +-8104684579106914304 -1091003492 -1091003492 -17269 +-8108693586698706944 -896261100 -896261100 -13603 +-8115963579415650304 -951728053 -951728053 32092 +-8117838333114212352 -1642207005 -1642207005 -19786 +-8122639684164501504 1425456189 1425456189 -23630 +-8127494999848919040 1701817607 1701817607 -24670 +-8131997716860526592 -457341338 -457341338 -32364 +-8136227554401107968 127917714 127917714 12187 +-8140349174954893312 NULL NULL 19894 +-8142667274351345664 453613037 453613037 32581 +-8147405381260345344 659397992 659397992 25381 +-8158011642485825536 NULL NULL -25344 +-8161047750470279168 -621365995 -621365995 -32180 +-8172827216441573376 -113253627 -113253627 -29675 +-8182421179156905984 -1892816721 -1892816721 6980 +-8191825921746305024 703111607 703111607 16082 +-8194062064124362752 1482983157 1482983157 13845 +-8203008052020879360 -1127100849 -1127100849 -29685 +-8203075743525806080 -626484313 -626484313 15815 +-8205148279289085952 768198315 768198315 27693 +-8214462866994339840 NULL NULL -5097 +-8219876839318716416 1452244326 1452244326 30883 +-8232763638546694144 -514010922 -514010922 24455 +-8240034910581153792 -665623523 -665623523 5599 +-8240684139569233920 -1721368386 -1721368386 -31663 +-8243487285852766208 1153811197 1153811197 10891 +-8244116388227104768 1893512909 1893512909 31411 +-8244657976255889408 688547276 688547276 -28939 +-8260340354454503424 1456367662 1456367662 -13539 +-8269917980278980608 -1700451326 -1700451326 -17297 +-8270479187688816640 1519993904 1519993904 -22726 +-8275337702906757120 210003006 210003006 -19677 +-8280276629934981120 -588160623 -588160623 5266 +-8293833565967810560 -1464514590 -1464514590 30075 +-8297230235506343936 283618733 283618733 -18601 +-8300526097982226432 1314531900 1314531900 27101 +-8300764106868350976 -1196101029 -1196101029 NULL +-8302817097848307712 -1021859098 -1021859098 32553 +-8317591428117274624 -670925379 -670925379 -28730 +-8318886086186213376 1033609549 1033609549 -10095 +-8322751250650218496 -1212524805 -1212524805 13792 +-8330233444291084288 -409404534 -409404534 -776 +-8335810316927213568 -1562552002 -1562552002 -6045 +-8340523561480437760 39723411 39723411 -18214 +-8345065519816695808 654939016 654939016 -18796 +-8347088645602050048 76299337 76299337 -20559 +-8357136656913686528 1517915751 1517915751 11999 +-8358130693961195520 -122391516 -122391516 28008 +-8359839265974165504 1572563948 1572563948 -2559 +-8368269352975982592 NULL NULL -30890 +-8368487814665895936 156101201 156101201 17165 +-8369487968903897088 -194270271 -194270271 4701 +-8379109122834997248 1566607834 1566607834 -11740 +-8379964450833367040 -181122344 -181122344 20766 +-8384695077413412864 -1818456584 -1818456584 22213 +-8387347109404286976 -2011708220 -2011708220 -6487 +-8387536830476820480 -1703620970 -1703620970 9969 +-8395998375405912064 -1141801925 -1141801925 -15944 +-8400045653258444800 1523657918 1523657918 -5869 +-8411282676082565120 253621570 253621570 2677 +-8418913260807217152 -41864614 -41864614 -10126 +-8425998949410889728 -656478771 -656478771 -16793 +-8426531414463545344 1701761102 1701761102 -10872 +-8430283518005846016 -16094879 -16094879 -21156 +-8430370933326536704 NULL NULL 23229 +-8431492599012163584 -1131684944 -1131684944 31427 +-8438554249514491904 232405034 232405034 28775 +-8445801063348281344 -1247325089 -1247325089 7899 +-8453491903284994048 1524010024 1524010024 -14223 +-8454143651040444416 516479816 516479816 -31454 +-8465978403747037184 1347876055 1347876055 16430 +-8469607298426437632 374283948 374283948 26031 +-8471480409335513088 1891680787 1891680787 -9724 +-8485389240529354752 -1528033060 -1528033060 3213 +-8488247955875618816 1802498539 1802498539 -20343 +-8490382417169408000 987917448 987917448 -24208 +-8494118409594650624 631207613 631207613 25518 +-8503342882470019072 1367179645 1367179645 32017 +-8503573595507761152 2068018858 2068018858 NULL +-8507279516485566464 631711489 631711489 28064 +-8509547439040757760 -1749415887 -1749415887 -18581 +-8518060755719585792 -1100641049 -1100641049 17964 +-8518258741831680000 -809805200 -809805200 29502 +-8521578237232529408 -373034494 -373034494 -3602 +-8522878384019169280 633813435 633813435 6899 +-8523434203900674048 -590374062 -590374062 6306 +-8525212657458348032 -1280919769 -1280919769 -20100 +-8535957064499879936 -99205196 -99205196 -15866 +-8536369662934401024 447426619 447426619 12358 +-8543982423727128576 -607667405 -607667405 10382 +-8544299740525461504 -846450672 -846450672 17534 +-8545239748068941824 -897586947 -897586947 24439 +-8546758906409312256 -1236536142 -1236536142 -9278 +-8552393882631389184 1920863389 1920863389 21984 +-8555709701170552832 -1364322216 -1364322216 -9619 +-8559008501282832384 895945459 895945459 29365 +-8559252110266564608 259204652 259204652 -18090 +-8562524688907485184 1775355987 1775355987 -4364 +-8566856504746352640 2018442973 2018442973 -921 +-8566940231897874432 -1409508377 -1409508377 20307 +-8570933074545745920 -749042352 -749042352 6836 +-8572823448513445888 -101960322 -101960322 -19738 +-8572949572756774912 1787826883 1787826883 NULL +-8581765103969312768 -890374552 -890374552 -28098 +-8581979259158929408 -674478103 -674478103 15379 +-8584520406368493568 -19116270 -19116270 28656 +-8585134536083660800 -1196808950 -1196808950 8786 +-8585966098173870080 318631333 318631333 -16978 +-8593419958317056000 6266567 6266567 7057 +-8603817012434198528 1114521964 1114521964 11059 +-8604758220106014720 -1798573685 -1798573685 4475 +-8607195685207408640 -1111937842 -1111937842 -21648 +-8615168537390571520 1469775272 1469775272 -4539 +-8619303037130301440 -2074079977 -2074079977 10430 +-8623238306523824128 -1442424087 -1442424087 17373 +-8623965248051789824 1637295757 1637295757 15015 +-8632237187473088512 NULL NULL -12876 +-8649711322250362880 -500921094 -500921094 NULL +-8651641150831362048 -1533934649 -1533934649 -12809 +-8654433008222797824 -1728171376 -1728171376 30052 +-8654797319350927360 895763504 895763504 -1367 +-8658387566611996672 NULL NULL 6493 +-8659643752269242368 1204834275 1204834275 31370 +-8659692318743314432 25400543 25400543 -33 +-8660149447361404928 1317690178 1317690178 28301 +-8664374244449050624 1059212450 1059212450 -22919 +-8664806103426252800 964810954 964810954 -28536 +-8665218198816497664 -1031592590 -1031592590 NULL +-8665764757143658496 -45460011 -45460011 23725 +-8675661101615489024 -1918651448 -1918651448 -8857 +-8675892979328212992 1478365409 1478365409 6372 +-8683802826440105984 -1344287228 -1344287228 19636 +-8688153842294595584 -1741895392 -1741895392 -3206 +-8689606130068611072 488559595 488559595 NULL +-8694818694700048384 94220511 94220511 29011 +-8696162322976997376 1228837108 1228837108 -21117 +-8703026916864802816 -397683105 -397683105 -22582 +-8704234107608203264 -1318045616 -1318045616 24014 +-8705403811649355776 206121314 206121314 -29907 +-8710298418608619520 -1817938378 -1817938378 16664 +-8714995808835444736 206454818 206454818 24718 +-8719510423723155456 -327648289 -327648289 -19357 +-8730803262481580032 NULL NULL NULL +-8731068123910987776 -1434562279 -1434562279 12915 +-8746702976270385152 1767359228 1767359228 -24538 +-8754966081778565120 -125419186 -125419186 3251 +-8754992450211692544 1785455842 1785455842 7066 +-8756989568739835904 -158420748 -158420748 -13743 +-8760655406971863040 -1249011023 -1249011023 -9243 +-8763062627136864256 -454598288 -454598288 -9130 +-8768744394742235136 -726879427 -726879427 -26481 +-8782213262837530624 1565313938 1565313938 6743 +-8783777723063099392 877053605 877053605 -15431 +-8789178184387641344 -1045771991 -1045771991 NULL +-8797972842900307968 284646137 284646137 29992 +-8807361476639629312 NULL NULL -16218 +-8813211231120031744 1575300276 1575300276 27630 +-8831091081349758976 -1832606512 -1832606512 -21772 +-8832750849949892608 -66010816 -66010816 5947 +-8833019327569510400 -189393743 -189393743 1691 +-8835408234247168000 -938112972 -938112972 -26526 +-8836899523028312064 397255100 397255100 27046 +-8843859708698583040 2008211296 2008211296 -24194 +-8844949406948671488 315973457 315973457 -4953 +-8845239510002753536 -1358159222 -1358159222 -14537 +-8852770376039219200 311478497 311478497 7959 +-8853553406533894144 -1820436871 -1820436871 240 +-8856151919723003904 -575513309 -575513309 -25176 +-8856821118526734336 618321042 618321042 4233 +-8857335871148171264 1061043704 1061043704 31721 +-8858063395050110976 -1117019030 -1117019030 27340 +-8859107121649893376 -37876543 -37876543 -2118 +-8866442231663067136 -1079633326 -1079633326 26697 +-8870186814744420352 NULL NULL 29461 +-8870673219965001728 -1620148746 -1620148746 30824 +-8875546987176206336 414645489 414645489 16856 +-8877053610728161280 706823078 706823078 -6474 +-8877431933441327104 1650676897 1650676897 -22184 +-8879742387365429248 1912175355 1912175355 -13973 +-8881446757271846912 1224662770 1224662770 18857 +-8887058200926093312 -191704948 -191704948 -17916 +-8892963883085578240 -2087815643 -2087815643 NULL +-8896045754034978816 1392980712 1392980712 -21432 +-8914039133569400832 1332042427 1332042427 18827 +-8916987977485312000 -839176151 -839176151 NULL +-8922409715403112448 -536315467 -536315467 32567 +-8923529803981905920 1148500740 1148500740 -24178 +-8927968289860370432 1033836308 1033836308 20254 +-8930307926221807616 -966979668 -966979668 7258 +-8938849835283677184 1318606691 1318606691 -15299 +-8940944155843461120 -858439361 -858439361 -15526 +-8941201923743703040 NULL NULL 9127 +-8946656952763777024 -759911896 -759911896 NULL +-8948335470186373120 -1078397698 -1078397698 -15946 +-8959796625322680320 1318956413 1318956413 31509 +-8961059046745669632 1783034168 1783034168 150 +-8962547695651323904 1091736925 1091736925 NULL +-8965578088652095488 -1216166764 -1216166764 -22241 +-8989473881707921408 1310360849 1310360849 NULL +-8990843030306717696 -311437801 -311437801 -6283 +-8992599250893979648 1677494300 1677494300 -7850 +-8996954350906294272 -1769037737 -1769037737 28923 +-9002912355472736256 -561932449 -561932449 23417 +-9004892183139811328 -1949698319 -1949698319 3796 +-9008631121684832256 704038411 704038411 -23943 +-9012093603044245504 538766635 538766635 -19464 +-9013952631912325120 -1052493316 -1052493316 -15695 +-9014145341570203648 273256071 273256071 NULL +-9022154842129547264 1130043800 1130043800 3253 +-9032650742739836928 1102561039 1102561039 27028 +-9049720998034137088 1747664003 1747664003 17023 +-9051477157204770816 -1648991909 -1648991909 -15119 +-9058029636530003968 -1197602595 -1197602595 -11010 +-9066993118333706240 -425196209 -425196209 8488 +-9071565764086521856 2058640744 2058640744 -5593 +-9075302542655684608 -295186284 -295186284 -26087 +-9075486079396069376 -1805915233 -1805915233 6451 +-9078662294976061440 -235819331 -235819331 -22426 +-9079801920509001728 -705887590 -705887590 19350 +-9080568167841226752 906074599 906074599 24913 +-9080956291212132352 1330219997 1330219997 -9482 +-9084940280061485056 128430191 128430191 9177 +-9088239683374350336 -18917438 -18917438 -2993 +-9091113592821972992 1861276585 1861276585 -12295 +-9095689235523264512 1687784247 1687784247 10940 +-9101953184875757568 -1918847735 -1918847735 -16390 +-9102482277760983040 742866312 742866312 -10439 +-9105358806324035584 1679381813 1679381813 -21388 +-9105701280936501248 1109664665 1109664665 -15633 +-9109392978217484288 407098216 407098216 -16327 +-9117959922369060864 936133387 936133387 -11393 +-9126793997498957824 770574055 770574055 -10821 +-9136398397785948160 376076075 376076075 -22358 +-9142610685888192512 -387395264 -387395264 12271 +-9145593811310010368 -202409329 -202409329 NULL +-9148197394287779840 -1568536214 -1568536214 13247 +-9149719074367946752 234452496 234452496 14376 +-9157613004431998976 1362740312 1362740312 25683 +-9175038118837149696 -1701492480 -1701492480 -23241 +-9175279464813223936 2080412555 2080412555 2326 +-9178166810751909888 -1407817977 -1407817977 -14810 +-9187662685618348032 NULL NULL -20949 +-9189155542884474880 -1955545912 -1955545912 -1660 +-9203804401302323200 -671853199 -671853199 -5357 +-9203942396257984512 -1625800024 -1625800024 -22431 +-9206329156028112896 2084666529 2084666529 22588 +-9210275791460499456 601376532 601376532 9165 +-9213132862973829120 -1216206795 -1216206795 4948 +-9215144824304721920 -399643110 -399643110 -79 +-9218875542187065344 785382955 785382955 -4371 +-9219066990552760320 2090044777 2090044777 -15708 +1021 -1884780525 -1884780525 -22423 +1030 -300429552 -300429552 -17429 +1032 -1914210382 -1914210382 -8241 +1039 914062370 914062370 10261 +1046 -990781312 -990781312 NULL +1048 -249150336 -249150336 -30109 +1053 -1369302744 -1369302744 13491 +1055 371383749 371383749 -3103 +1058 -1497098905 -1497098905 -4550 +1065 1194089079 1194089079 5542 +1066 1767019352 1767019352 22150 +1074 161210995 161210995 16516 +1075 -534894953 2144365072 2160 +108 -835107230 -835107230 -5919 +1086 -1341627565 -1341627565 24776 +1093 NULL NULL NULL +1094 -359194591 -359194591 -23271 +1095 291866793 291866793 -28097 +1099 1390704286 1390704286 14408 +1115 -144862954 -144862954 NULL +112 -2147071655 -2147071655 8095 +1127 -423378447 -423378447 -1180 +1128 -932525608 -932525608 -2546 +1132 239078089 239078089 -9076 +1134 187718349 187718349 -8781 +1141 -540820650 -540820650 16858 +1142 1184001017 1184001017 -10015 +1145 669484010 669484010 20265 +1153 1646811064 1646811064 27758 +1157 590719541 590719541 67 +1158 990246086 990246086 -10972 +1165 477857533 1153089364 -41118 +1168 NULL NULL 21511 +1177 1182595271 1182595271 530 +1187 69110370 69110370 -25183 +1189 215508794 215508794 27636 +1198 -1857500489 -1857500489 -20329 +120 29680001 29680001 -28489 +1201 945911081 945911081 1773 +1217 -1802746460 -1802746460 6675 +1234 -1921909135 -1921909135 9447 +1243 1938788165 1938788165 -28374 +1247 -866304147 -866304147 -13238 +1252 30036142 30036142 19215 +1261 -343173797 -343173797 -13466 +1270 1969239701 1969239701 14180 +1280 991397535 991397535 -31765 +1282 -1140071443 -1140071443 -18151 +1286 -480058682 -480058682 -10781 +1287 -1362178985 -1362178985 4491 +1290 177837042 177837042 -7204 +1291 1398486099 1398486099 9110 +1299 765656980 765656980 -24682 +130 -2081501748 -2081501748 20183 +1307 882331889 882331889 -11015 +1312 742059797 742059797 101 +1316 997193329 997193329 -5897 +1321 731241198 731241198 -14652 +1337 -1948257321 -1948257321 23320 +1341 492120544 492120544 7197 +1342 1203482872 1203482872 18142 +1343 -217785690 -217785690 17164 +1345 -600315936 -600315936 -20262 +1346 -158233823 -158233823 -24801 +135 198017473 198017473 -6114 +1366 748358417 748358417 6080 +1368 -223311809 1650573576 41135 +1371 -2041825946 821316302 42813 +138 843282593 843282593 -7046 +1386 2081152819 2081152819 4939 +1398 955267058 955267058 -14445 +1409 865013617 865013617 -15389 +1422 -1402821064 -1402821064 NULL +1423 631954352 631954352 -13424 +1436 1765173148 1765173148 25118 +1439 531459992 531459992 14783 +1447 NULL NULL -950 +1450 740883263 740883263 -29171 +1454 NULL NULL 21904 +1458 -1001529082 -1001529082 7197 +1462 287239980 287239980 14286 +1466 574069547 574069547 -5267 +1470 1406029775 1406029775 -27871 +1477 -707228984 -707228984 17769 +1481 819875108 1022707418 -39852 +1489 766737781 766737781 -17697 +1493 557053197 557053197 -4501 +1495 -1222897252 -1222897252 21299 +1501 1081920048 1081920048 -21648 +1506 1893632113 1893632113 -27998 +1508 1632769786 1632769786 22366 +1509 1304812803 1920662116 -3309 +1518 824235855 824235855 -3360 +1520 NULL NULL 20391 +1521 -993029335 -993029335 -1443 +1524 -1851280202 -1851280202 6741 +1530 1934970004 1934970004 22013 +1537 -20660936 278601840 -6363 +154 -445353909 998793176 1960 +1541 -1430903652 -1430903652 -23853 +1542 NULL NULL 32324 +1545 564366133 564366133 -800 +1556 -1202975006 -1202975006 2295 +1559 -206177972 -206177972 20018 +1561 NULL NULL 30736 +1566 747122546 747122546 -23750 +1604 -2077771325 -2077771325 2677 +1606 -1901806083 -1901806083 -5259 +1608 142722637 142722637 -3257 +1613 -1422780798 -1422780798 23844 +1614 -296195507 -296195507 -19571 +1620 -1989378509 -1989378509 31374 +1638 92777932 92777932 -2287 +1641 NULL NULL 32640 +1643 1346627771 1346627771 -23109 +1648 -496870819 -496870819 -24591 +1651 -1575588203 -1575588203 -31335 +1667 -499533481 -499533481 9716 +1671 1504919241 1504919241 19276 +1674 1488440165 1488440165 -4142 +1676 -393723522 -393723522 -25033 +1678 -1104268719 -1104268719 -22163 +168 -53587991 -53587991 25931 +1681 929751599 929751599 13488 +169 -1759354458 -1759354458 16236 +1693 -1545572711 -1545572711 -2441 +1701 -648766606 1404346934 -7822 +1704 -605370177 -605370177 32309 +1719 -1477897348 1008698636 -13475 +1726 NULL NULL -4509 +1728 626251612 626251612 16105 +1745 368170021 368170021 32420 +1751 -667383951 -667383951 29288 +1752 -1538978853 -1538978853 -9094 +1769 805672638 805672638 30201 +1774 -1974777102 -1974777102 14773 +1775 1928365430 1928365430 -6564 +1777 1061638369 1061638369 3846 +1780 -71433796 -71433796 -9585 +1781 NULL NULL 22378 +1785 -524189419 -524189419 4319 +1786 -1009249550 -1009249550 -10258 +1788 -997463353 -997463353 NULL +1789 -1098379914 -1098379914 -4618 +1791 -1900369503 -1900369503 -25973 +1796 -1625062942 -1625062942 4397 +1806 -40284975 -40284975 NULL +181 1742536084 1742536084 31651 +1811 -922200749 -922200749 10278 +1813 -738157651 -738157651 -13410 +1826 505902480 505902480 -13623 +1827 -956668825 -956668825 12836 +1835 1768399622 1768399622 NULL +1837 290921475 290921475 26749 +1845 -909024258 -909024258 -2113 +1846 418182899 418182899 19513 +1856 -1873004551 44009986 -44928 +1862 674547678 674547678 -22215 +1863 -1017027298 -1017027298 -3318 +1864 NULL NULL NULL +1866 -400501472 -400501472 -8706 +187 2133950868 2133950868 10161 +1870 25644069 25644069 11572 +188 316438994 316438994 11451 +1880 1293876597 1293876597 -32383 +1890 -1660344634 -1660344634 19568 +1892 596595603 596595603 26298 +1899 734267314 734267314 30457 +19 -1900894010 -436386350 8094 +1906 1070989126 1070989126 -13 +1910 1978200605 1978200605 -28244 +1914 -1462331586 -1146055387 -21833 +1926 -490337498 -490337498 -16722 +1937 -987995271 -987995271 12954 +1940 950997304 950997304 -31365 +1941 -54793232 -54793232 -31182 +1948 -1446132523 735732067 -13403 +1955 -316678117 -316678117 7537 +1965 1173098061 1173098061 -13309 +1972 -1404921781 -1404921781 3694 +1981 -980869630 -980869630 6875 +1983 -1954890941 -1954890941 -12085 +1987 65956045 65956045 -6219 +1990 1050809633 1050809633 30090 +1995 1012230484 1012230484 -27401 +1999 -9958400 -9958400 8721 +2001 217476429 217476429 31795 +2002 1535954353 1535954353 -13847 +2004 1464703053 1464703053 -6073 +2009 -1471147786 -1471147786 -28519 +2011 33234633 33234633 -23671 +2013 1142098316 1142098316 17581 +2016 135341845 135341845 13078 +2017 44628821 44628821 -12111 +2020 -244778184 37730738 -7949 +2025 989475408 989475408 -16477 +2026 -1454941039 -1454941039 -9883 +2029 546555204 546555204 NULL +203 2070969353 2070969353 24819 +204 2018249426 2018249426 11317 +2046 363981930 363981930 4809 +2056 1941527322 1941527322 21162 +2067 NULL NULL 28003 +2072 -1652600376 -1652600376 13138 +2073 -856843296 -856843296 29023 +2085 -1179668872 -1179668872 6893 +2089 945683736 945683736 20014 +2092 1678261510 1678261510 -23540 +2105 1550112473 1550112473 28641 +2106 1597303154 1597303154 -22641 +2108 977292235 977292235 -10687 +213 -1081328752 -361944328 9690 +2131 -464804906 -464804906 -29895 +2138 -1048181367 -1048181367 15070 +2140 -1319686435 -1319686435 25603 +2144 117620760 117620760 12779 +2155 1126157283 1126157283 12291 +2177 -1960344717 -1960344717 NULL +2179 1394370866 1394370866 6651 +2180 -120704505 -120704505 -19413 +2183 -1947868215 -1947868215 -9196 +2186 -1655396452 -1655396452 -24095 +2187 -906986958 -906986958 26625 +2189 NULL NULL 26880 +2193 -2037628236 -598552521 7939 +2194 -853967587 -853967587 29892 +22 176792505 176792505 -22937 +2201 1425362689 1425362689 -26060 +2205 2013376408 2013376408 8929 +2214 1602631923 1602631923 20784 +2217 479566810 479566810 -25469 +2218 NULL NULL 16312 +2223 1605596441 1605596441 -6806 +2227 1054864168 1054864168 -26304 +2229 516843026 516843026 -32455 +2232 277582670 277582670 28606 +2241 810157660 810157660 -28501 +2244 -1699049982 -1699049982 19739 +2255 -1561738723 -1561738723 5014 +2262 1283898734 1283898734 25967 +2264 -425103007 -425103007 5639 +2270 -1429346144 -1429346144 4203 +2274 -1676261015 -1676261015 7474 +2277 -1447263708 -1447263708 26232 +2279 -1412187081 -1412187081 -22534 +228 167432368 167432368 -18533 +2283 530274409 530274409 11929 +2285 340929437 1533817551 -28395 +2295 -1914072976 -1914072976 NULL +2306 -604362582 -604362582 6900 +2320 -1919939921 -1919939921 32231 +2323 -2028355450 -2028355450 -4772 +2325 1471913583 1645067708 -8255 +2335 1281277970 1281277970 999 +2341 1951869763 1951869763 30376 +2348 -40407627 -40407627 -12880 +2358 -370798230 -370798230 -7058 +236 514833409 514833409 -11129 +2373 -1602792666 -1602792666 6163 +238 713031549 713031549 32348 +2386 930008274 930008274 12722 +2393 901084309 1852725744 28413 +2398 1489169773 1489169773 -26361 +2400 663222148 663222148 -11848 +2410 NULL NULL -23638 +2412 -1749841790 -887663189 31057 +2420 480849725 480849725 31706 +2426 62293025 62293025 -21574 +2434 1621606222 1621606222 9028 +244 860708524 860708524 12471 +2461 -1668974292 -1668974292 -13525 +2463 -655118881 2031604236 5128 +2465 -1819075185 -1819075185 6490 +2469 524808 524808 -14423 +2475 -1116100266 -1116100266 1100 +2476 -1210261177 -1210261177 -32755 +2485 -379643543 1594107168 -4037 +2487 NULL NULL -7873 +2492 -270683864 -270683864 21415 +2494 -1830870295 -1830870295 27852 +2502 -336625622 -336625622 1077 +2506 776606164 776606164 9158 +2509 693331761 693331761 -31537 +2512 -1164833898 -1164833898 17680 +2514 407233168 407233168 -26054 +2515 -601946913 -601946913 23850 +2517 198624903 198624903 -28784 +2524 -1081766449 -1081766449 10646 +2533 672266669 672266669 -17056 +2539 1090344463 1090344463 6892 +2540 1103878879 1103878879 8407 +255 -1106469823 -1106469823 -25939 +2551 -1762037754 -1762037754 -3286 +2553 1112783661 1112783661 -19479 +2560 -1946023520 -1493282775 23076 +2563 -1141652793 -1141652793 -1613 +2565 -1302592941 -1302592941 -9378 +2569 -837503491 -837503491 -17873 +2579 1640445482 1640445482 8410 +2580 1933545427 1933545427 -31881 +2587 -1125605439 -1125605439 -9148 +259 -922875124 -922875124 -30515 +2599 -1903090602 -1903090602 5539 +2607 NULL NULL NULL +2608 335359004 335359004 15417 +2619 -2019287179 1895751360 17341 +2625 -1897998366 -1897998366 24366 +2626 1620529246 1620529246 -15779 +263 1094778643 1807358029 -11048 +2637 1522208504 1522208504 -26180 +2647 92834720 92834720 -1223 +2649 659343542 659343542 21102 +2662 209430502 209430502 -1749 +2663 43983130 43983130 -16820 +2675 1305668933 1305668933 17014 +268 -203416622 860658464 -10972 +2680 825977391 825977391 -9845 +2682 -675125724 -675125724 -28867 +2688 -1249134513 -1249134513 -19493 +2689 -1343327 -1343327 6015 +2692 NULL NULL -31596 +2700 -123529324 -123529324 25454 +2712 -901778330 -901778330 -28146 +2714 1284956108 1284956108 -15341 +2715 962712814 1569269522 -51675 +2719 1516149502 1516149502 9863 +2724 922373046 922373046 -18269 +2725 257821327 257821327 11067 +2735 1307148254 1307148254 29834 +2745 1134416796 1134416796 -2410 +275 1517488324 1517488324 23031 +2752 962091264 962091264 -21268 +2762 314232856 314232856 -24696 +2772 1835749815 1835749815 -16290 +2776 -1801684055 -1801684055 -6046 +2786 -2117280385 343362793 25889 +279 -1709246310 -1709246310 29507 +2790 686081268 686081268 21792 +2791 -714594143 -714594143 -25692 +2803 493977568 923980398 2772 +2805 -295751373 -295751373 14041 +281 -42151403 -42151403 -5635 +2810 1844415080 1844415080 NULL +2811 -170643477 -170643477 22075 +2816 -912429611 -912429611 6226 +2821 829055499 829055499 1911 +2824 -1679120527 -1679120527 30926 +2835 144428297 144428297 -32688 +2842 889772203 889772203 5469 +2843 -1621721177 -887790938 6109 +2846 -121162464 -121162464 -27667 +2847 1634441052 1634441052 NULL +2848 -985817478 -985817478 20270 +2850 1618123796 1618123796 32669 +2855 -1770250407 1756592797 -57008 +2862 1956887369 1956887369 -12071 +2878 -906545548 -906545548 -3885 +2886 84231802 84231802 -32296 +289 -1144976744 -1144976744 -2828 +2897 -47662800 1211873318 13666 +2900 2114363167 2114363167 -26461 +2903 1552351592 1552351592 -14593 +2905 -1232183416 -1232183416 -32491 +2911 1483580941 1483580941 23564 +2915 -470798506 -470798506 20124 +2919 1002132158 1002132158 27039 +2933 -1674623501 -1484787952 12090 +2938 -2032576637 -2032576637 -24561 +294 -1817096156 -1817096156 -8927 +2941 -1862095575 -1862095575 11050 +2942 1638471881 1638471881 -26367 +296 -1348149160 597657990 11864 +2962 1042237722 1042237722 -28299 +2968 1556919269 1556919269 25420 +2971 -373541958 -373541958 4725 +2977 -2007662579 -2007662579 -16129 +2979 131031898 131031898 30056 +2984 1440427914 1440427914 -16815 +2986 -933324607 -933324607 18508 +2988 492639283 492639283 24600 +2991 NULL NULL 6451 +3002 -1538558250 -1538558250 2376 +3006 1328225044 1328225044 364 +301 -1924909143 -1924909143 -24092 +302 -1730740504 -1730740504 -31395 +3021 -360113158 177294487 31545 +3024 -891543038 -891543038 23881 +3029 -1198036877 -1198036877 -4676 +3031 NULL NULL 25683 +3036 -449333854 -449333854 22111 +3043 692666133 692666133 325 +3054 -973128166 -973128166 32671 +3055 -1198465530 -1198465530 -23194 +3058 -1144920802 -1144920802 21976 +3059 1386071996 1386071996 -11247 +3060 -2122509553 818313200 8398 +3067 1256676429 1256676429 2085 +3071 1129173487 1129173487 7076 +3073 722737062 722737062 9572 +3079 -882028850 -882028850 5909 +3083 -385247581 -385247581 6484 +3084 1333148555 1333148555 15532 +3089 584084934 584084934 -18646 +3094 1335803002 1335803002 -28840 +3103 -1622653291 -1622653291 -11956 +311 -1850492820 -1850492820 18430 +3111 -1299159155 -1299159155 -27295 +3118 NULL NULL 725 +3119 673904922 673904922 -17995 +3144 -758231588 -758231588 28899 +3147 1102069050 1102069050 -7065 +3159 -78240945 1127080164 45508 +3163 26270580 26270580 8461 +3174 -1871446009 -1871446009 -24248 +3183 1363459426 1363459426 -24763 +3190 297577612 297577612 NULL +3197 976870621 976870621 21168 +3199 -2086352100 -2086352100 -6306 +320 1198172036 1198172036 19001 +3203 -491377296 -491377296 -15576 +3206 -733756717 -733756717 -10392 +3208 -211669740 -211669740 -5907 +3212 900992177 900992177 19458 +3213 -1171326281 -1171326281 -31163 +3231 -817383093 -817383093 -705 +3232 1434588588 1434588588 3270 +3235 -287400633 -287400633 -8003 +3244 1303632852 1303632852 3354 +3245 1385883394 1385883394 18240 +3248 1202720813 1202720813 29434 +3249 206942178 206942178 NULL +3253 -1218871391 -1218871391 22786 +3255 -1212433954 -1212433954 -9368 +3263 -419335927 -419335927 NULL +3286 -1078214868 -1078214868 31688 +3300 1743696703 1743696703 -22858 +3307 -1128317466 -1128317466 -5240 +3322 -1544877665 -1544877665 29775 +3333 -462541618 -462541618 NULL +3352 -1621814212 -1621814212 -8532 +336 1376818328 1376818328 23910 +3365 1712411993 1712411993 -2734 +3366 -606214770 -606214770 21440 +3397 -2066134281 -2066134281 -20787 +34 1969650228 1969650228 7988 +3401 -2138343289 -2138343289 -6735 +3407 NULL NULL -20835 +3409 -337586880 -337586880 NULL +341 278643258 278643258 5516 +3418 -940504641 786565385 -8267 +342 -884796655 -884796655 -32403 +3421 -1878572820 -1878572820 -10533 +3430 -395499919 -395499919 29515 +3443 -1006768637 -1006768637 -4507 +3446 440393309 440393309 -11081 +345 NULL NULL NULL +3456 NULL NULL NULL +346 -1880877824 -938756287 -42984 +3460 1204325852 1204325852 5736 +3462 -1716506227 511836073 -31348 +3467 -1134786190 596802082 185 +347 -414207254 -414207254 5683 +3472 868717604 868717604 -12628 +3478 1772545157 1772545157 18675 +3493 -890552359 -890552359 -26666 +350 330302407 330302407 -13144 +3507 2032271149 2032271149 -21180 +3510 197056787 197056787 -3190 +3512 636901402 636901402 31396 +3533 1076088102 1076088102 NULL +3534 NULL NULL -26284 +3541 -996953616 -996953616 NULL +3542 459269456 459269456 -15053 +355 1258721737 1258721737 -24884 +3554 48554395 48554395 NULL +3555 41063276 458190500 -7242 +3563 1332181668 1332181668 -7533 +3566 -519978947 -519978947 -3883 +3567 410340192 410340192 11238 +3568 NULL NULL -10516 +3579 -1426893312 -1426893312 29828 +3588 696229550 850625480 48095 +3599 2069258195 2069258195 -25112 +3606 -1032306832 -1032306832 -11286 +3608 773730574 773730574 21814 +3609 -1380191654 -1380191654 10457 +361 -434747475 -434747475 24663 +3613 1191238870 1191238870 -25531 +3622 -1583445177 2057486961 -7988 +3625 -1656822229 -1656822229 -1433 +3630 693876030 693876030 27981 +3637 929560791 929560791 -20411 +364 1336365018 1336365018 4138 +3648 1142481557 1142481557 -17502 +3663 -886741158 -886741158 -1900 +3664 -186600427 -186600427 -10247 +367 -1324624386 -1324624386 22505 +3672 1825828852 1825828852 -27707 +3673 -362603422 -362603422 -10629 +3677 470575409 470575409 18190 +3680 1124269631 1124269631 -9614 +3682 -1718163874 -1718163874 -1510 +3690 1500437122 1500437122 7678 +3691 -664111469 -664111469 3714 +3701 760466914 760466914 -4059 +3702 -1423467446 -1423467446 4416 +3703 1796950944 1796950944 32096 +3707 1377359511 1377359511 1387 +3722 -1322736153 -1322736153 -5283 +3724 1625751062 1625751062 -7323 +3725 -2119539915 1911834442 26932 +3728 -938342473 -800799595 -45459 +3739 -192181579 -192181579 17242 +3747 1001732850 1001732850 16062 +3749 1027147837 1027147837 18482 +375 -1754347372 -1754347372 14493 +3755 -7929246 -7929246 NULL +3763 -679230165 -679230165 -909 +3764 -2027812975 -2027812975 27922 +3769 -1431196400 -1431196400 -7531 +3770 -1727003541 -1627366321 29421 +378 -1270523286 -1270523286 -20876 +3781 -161884324 141492068 -36249 +3789 -139448716 -139448716 -21281 +379 1625699061 1625699061 -2518 +3810 -1043413503 -1043413503 -30534 +3812 -870900240 -870900240 -31793 +3823 1563120121 1563120121 -32541 +3824 1372224352 1372224352 -260 +383 -191434898 1063524922 -2585 +3830 1443426396 1443426396 -31551 +3835 133276416 133276416 -3540 +3841 -901079162 -901079162 8466 +3848 1436480682 1436480682 22594 +3858 1925283040 1925283040 -5435 +3860 -423945469 -423945469 31892 +3866 -88576126 436093771 -7932 +3874 -1603071732 -1603071732 15589 +3879 461680901 461680901 -30818 +388 -66112513 -66112513 -6933 +3887 476919973 476919973 24715 +3901 -1909635960 -1909635960 -27139 +3904 1473503196 1473503196 -20532 +3907 -373038706 -373038706 -13474 +391 1107258026 1107258026 -9375 +3910 NULL NULL 26288 +3911 -1283465451 -1283465451 -14055 +3913 1506907734 1506907734 -23852 +392 1664736741 1664736741 -13904 +3932 2145269593 2145269593 -31707 +3940 923353533 923353533 -7024 +3941 -734921821 -734921821 7654 +3945 -1758125445 -1758125445 3891 +3946 523289079 523289079 8727 +3949 1797164732 1797164732 -28646 +3958 65172363 65172363 NULL +3960 1509573831 1509573831 -19213 +3961 -1955647385 -1955647385 -302 +3962 NULL NULL -27035 +3965 771827308 771827308 -10452 +3974 -253084551 670667262 22079 +3980 -564495517 -564495517 -6334 +3990 -1392487784 -1392487784 -15393 +4018 -396852483 -396852483 -12896 +4020 -1447140800 -1447140800 20052 +4024 -202035134 -202035134 -25412 +4030 -216495498 -216495498 -21693 +4037 1003667927 1003667927 2335 +4051 1052255272 1052255272 12642 +4054 1998185704 1998185704 -733 +4056 -1516259168 -1516259168 -23527 +4075 NULL NULL -18547 +4078 727802564 727802564 16437 +4088 947846543 947846543 5972 +41 -203911033 -203911033 31740 +412 -505879576 2144454927 -26499 +417 152891873 152891873 NULL +425 1336194583 1336194583 32584 +443 596242714 596242714 -11929 +454 -1227085134 -1227085134 17107 +455 1159353899 1159353899 -254 +462 1677444379 1677444379 -7871 +470 -181523892 -181523892 -7846 +471 -207899360 -207899360 -30730 +481 536235636 536235636 NULL +482 765084282 765084282 NULL +485 874824958 874824958 11979 +489 -928013434 -928013434 -21009 +49 1673218677 1673218677 -20729 +490 1229172951 1229172951 -2617 +491 -201554470 -201554470 4747 +5 -1063673827 -1063673827 -18933 +500 1216016081 1216016081 NULL +501 -1469463456 715333063 36766 +504 851975276 851975276 2671 +522 -853606287 -853606287 22074 +523 149701884 149701884 15923 +524 -1326025787 -1326025787 -29218 +530 -1851680302 -1851680302 -22558 +535 888896424 888896424 NULL +579 -1804244259 -1804244259 3009 +583 -1554325042 -1554325042 26859 +584 -2017279089 -2017279089 -24305 +586 -310343273 -310343273 5011 +587 1485934602 1485934602 -4799 +590 -186764959 -186764959 -16247 +597 1577999613 1577999613 -9584 +601 -592568201 -592568201 17086 +612 1131663263 1131663263 -7564 +615 2097519027 2097519027 23956 +618 -412333994 -412333994 32063 +65 919363072 919363072 -8685 +650 1222217404 1222217404 -6494 +658 -1254129998 -1254129998 32210 +66 2013444562 2013444562 -32498 +661 -407089271 1045719941 26557 +663 -1261099087 -1261099087 -4209 +664 899810881 899810881 24019 +677 -1038565721 -1038565721 -3449 +68 879290165 879290165 -4169 +681 -893863493 -893863493 -22701 +687 1888675011 1888675011 32124 +688 NULL NULL 16764 +690 -1112062809 -1112062809 NULL +691 -1156193121 -1156193121 25636 +6923604860394528768 -1095938490 -1095938490 -13325 +6924820982050758656 -1709117770 -1709117770 26324 +6926925215281774592 987734049 987734049 7826 +6927260280037097472 1668094749 1668094749 15578 +6928080429732536320 1300798829 1300798829 -17840 +6933001829416034304 2089198703 2089198703 -16998 +6933451028794925056 1776456512 1776456512 -16367 +6933731240564056064 780859673 780859673 18910 +6934570741217755136 491758252 491758252 -17642 +694 -2015780444 -2015780444 NULL +6947488599548215296 1141595012 1141595012 15279 +695 -521886983 -521886983 17132 +6960137166475911168 -558456218 -558456218 -11769 +6962726713896484864 2051470532 2051470532 -4923 +6963217546192322560 -1340213051 -1340213051 10083 +6964585306125008896 2146312499 2146312499 10544 +6967631925774639104 373031319 373031319 NULL +6969599299897163776 -2042831105 -2042831105 -5135 +6974475559697768448 1493555718 1493555718 -1725 +6982145326341423104 -941433219 -941433219 -27049 +6987889924212203520 -2053551539 -2053551539 25197 +6991316084916879360 -1345085327 -1345085327 20655 +6996686091335884800 -1738775004 -1738775004 -29442 +7006803044329021440 1614297403 1614297403 -398 +7013693841855774720 656187584 656187584 26158 +7014537632150224896 -44426049 -44426049 -4451 +7017956982081404928 -828724467 -828724467 -244 +7022349041913978880 -1096013673 -1096013673 505 +7027529814236192768 -1988508336 -1988508336 -4804 +7031339012080549888 1182390248 1182390248 -696 +7039820685967343616 -483740394 -483740394 -3517 +7045967493826387968 -1669227632 -1669227632 7066 +7049773031131283456 814544198 814544198 -4726 +7052226236896256000 1119976718 1119976718 -19270 +7054271419461812224 -1266138408 -1266138408 -12422 +7054938591408996352 -352146259 -352146259 -23137 +7060236714847412224 -1858443953 -1858443953 552 +7061498706968428544 -290558484 -290558484 29999 +7061809776248545280 -469870330 -469870330 28413 +7062382339142156288 536876888 536876888 -10513 +7062605127422894080 -1614194712 -1614194712 NULL +7065344324692443136 -1881263242 -1881263242 -18672 +7068517339681259520 -1871209811 -1871209811 -24186 +7069729473166090240 NULL NULL -20517 +707 1343581455 1343581455 22320 +7077311975029555200 1103797891 1103797891 20348 +7078641038157643776 NULL NULL -13499 +7080269176324218880 -337073639 -337073639 -19374 +7084659344078970880 963854010 963854010 22655 +7086206629592252416 -1106685577 -1106685577 21418 +7091300332052062208 NULL NULL 13145 +7099005292698550272 917891418 917891418 -10874 +71 -20639382 -20639382 NULL +7107604675626008576 1949494660 1949494660 11120 +7125231541858205696 -2111312205 -2111312205 -7467 +7128222874437238784 -283378057 -283378057 29171 +7130159794259353600 -837506172 -837506172 4104 +7130306447560826880 77063155 77063155 -7715 +7149417430082027520 -1352545619 -1352545619 -22915 +7153922334283776000 NULL NULL -17426 +7157247449513484288 -36038293 -36038293 NULL +7164349895861829632 -1153978907 -1153978907 3316 +7165364563962191872 -1272838092 -1272838092 -24518 +7166263463731421184 -1838281337 -1838281337 -15578 +7175638927948562432 596280431 596280431 30532 +7186401810812059648 1430614653 1430614653 8243 +7195454019231834112 -1419573027 -1419573027 25777 +7198687580227043328 563507584 563507584 -20192 +7199539820886958080 NULL NULL NULL +7204802700490858496 -1719427168 -1719427168 15176 +7210160489915236352 -1353470095 -1353470095 -12755 +7212016545671348224 1309976380 1309976380 NULL +7212090742612467712 -1067083033 -1067083033 5549 +7217123582035116032 -90029636 -90029636 -3165 +7220131672176058368 1017953606 1017953606 -25780 +7220581538170413056 615661052 615661052 21402 +7223569671814987776 -1004204053 -1004204053 -14973 +7226360892091416576 -935723237 -935723237 NULL +7229607057201127424 -1818380492 -1818380492 NULL +723 1616782308 1616782308 -13972 +7231399302953377792 1990792684 1990792684 21665 +7232273749940838400 -1231821948 -1231821948 -3373 +7235109456886816768 -2098078720 -2098078720 26181 +7237310132329488384 -1061859761 -1061859761 15011 +7238339720750948352 -1770229099 -1770229099 -12193 +724 -616724730 -616724730 -20663 +7242751359672631296 -2016985611 -2016985611 -31659 +7249443195032985600 -51612681 -51612681 7180 +7250237407877382144 -772236518 -772236518 8918 +7254710367022645248 1911809937 1911809937 14741 +7255302164215013376 1281159709 1281159709 -5118 +7259955893466931200 NULL NULL 21509 +7260908278294560768 826519029 826519029 -23250 +7265141874315517952 -571587579 -571587579 26910 +7266437490436341760 177391521 177391521 22870 +7271786885641666560 936752497 936752497 -19291 +7271887863395459072 -94709066 -94709066 -21708 +7274777328897802240 482977302 482977302 32611 +7291432593139507200 1570238232 1570238232 21529 +7295502697317097472 210728566 210728566 -28906 +7295926343524163584 1182646662 1182646662 -28366 +7296164580491075584 1412102605 1412102605 -797 +7299197687217856512 172075892 172075892 -12564 +73 488014426 488014426 -3405 +7304839835188609024 1961954939 1961954939 -25417 +7308289763456000000 -1423477356 -1423477356 -1335 +7309156463509061632 1304431147 1304431147 1211 +7310869618402910208 -359943425 -359943425 -16301 +7319711402123149312 1036391201 1036391201 31125 +7333512171174223872 -332125121 -332125121 -24885 +7339426767877390336 538268118 538268118 19302 +7343171468838567936 879289168 879289168 4032 +7344029858387820544 -1669848306 -1669848306 12263 +7345991518378442752 849859032 849859032 10916 +7347732772348870656 -1800413845 -1800413845 -670 +7348598907182800896 -1940205653 -1940205653 12411 +735 115111911 115111911 6240 +7354813692542304256 1426152053 1426152053 -11232 +7359004378440146944 1082837515 1082837515 11811 +736 -1183469360 -1183469360 -31514 +7368920486374989824 -1822850051 -1822850051 -15064 +7370078518278397952 -215703544 -215703544 -27284 +7370803940448305152 -533281137 -533281137 25621 +7375521127126089728 -688296901 -688296901 NULL +7376467688511455232 -348628614 -348628614 -6611 +7378993334503694336 1870464222 1870464222 -24911 +738 -453739759 -453739759 -14597 +7381659098423926784 867587289 867587289 22463 +7384150968511315968 1447462863 1447462863 NULL +7386087924003676160 2038381675 2038381675 7603 +7391208370547269632 -743680989 -743680989 -22217 +7393308503950548992 -849551464 -849551464 4400 +7394967727502467072 -1983567458 -1983567458 -23672 +7401968422230032384 -504529358 -504529358 14021 +7410096605330227200 1987336880 1987336880 -7948 +7410872053689794560 -916344293 -916344293 -15115 +7411793502161182720 -177025818 -177025818 -32000 +7412924364686458880 1817671655 1817671655 12674 +7414865343000322048 -829717122 -829717122 15626 +7418271723644403712 1202593021 1202593021 24768 +743 1004241194 1004241194 -10277 +7432428551399669760 -805288503 -805288503 -9171 +7432998950057975808 -434656160 -434656160 -24336 +7436133434239229952 203688965 203688965 -6874 +7440265908266827776 -1425942083 -1425942083 -6396 +7450416810848313344 1393262450 1393262450 29498 +7452756603516190720 -2009569943 -2009569943 -11008 +7454442625055145984 -267554590 -267554590 21377 +7454632396542074880 859140926 859140926 4749 +7461153404961128448 -23865350 -23865350 -17166 +7471208109437304832 -1603374745 -1603374745 18346 +7473537548003352576 -1439424023 -1439424023 1350 +7486884806277611520 1516236846 1516236846 5190 +7487338208419823616 1974939899 1974939899 5445 +7487538600082554880 2068538934 2068538934 -19330 +7490717730239250432 -1829691116 -1829691116 -3219 +7491898395977523200 1265528735 1265528735 -12811 +7492436934952574976 NULL NULL 20179 +7497276415392407552 1543611951 1543611951 -21805 +7497306924248834048 550594651 550594651 10807 +7500716020874674176 -1953605752 -1953605752 20243 +7514552840617558016 334208532 334208532 26338 +7517159036469575680 -1437126017 -1437126017 7697 +7524958388842078208 -664856187 -664856187 -7027 +7528074274555305984 550186724 550186724 27999 +7528211148397944832 -512198016 -512198016 -17944 +7534042483076857856 1645753684 1645753684 -21662 +7534145866886782976 -532755480 -532755480 26155 +7534549597202194432 2044130430 2044130430 -30163 +7545689659010949120 -1380678829 -1380678829 6756 +7548958830580563968 1836499981 1836499981 6913 +7549858023389003776 NULL NULL -13226 +7555301305375858688 1916363472 1916363472 2652 +7566273236152721408 881673558 881673558 12814 +7569249672628789248 -1952235832 -1952235832 -28689 +7570474972934488064 -432218419 -432218419 28118 +7573530789362262016 NULL NULL -12626 +7575087487730196480 1421779455 1421779455 -30020 +7581052107944361984 1493152791 1493152791 -15538 +7581614118458335232 -1129489281 -1129489281 -2421 +7584007864107778048 1410516523 1410516523 -22910 +7592440105065308160 NULL NULL -13713 +7593521922173419520 1260480653 1260480653 20023 +7596563216912211968 605946758 605946758 31242 +7599019810193211392 -2112149052 -2112149052 -11528 +7608447395949109248 882762933 882762933 1356 +7614435638888210432 735600165 735600165 17129 +7620183559667081216 -1967660827 -1967660827 15688 +7621013099259527168 -553349593 -553349593 -6927 +7625728883085025280 -1699044525 -1699044525 28558 +7626715182847090688 1905812339 1905812339 7153 +763 -1933374662 -1933374662 -408 +7637152193832886272 1880017800 1880017800 20036 +7647481735646363648 1164895226 1164895226 -15024 +7648729477297987584 NULL NULL -28551 +7652123583449161728 472901914 472901914 -1679 +7659279803863146496 1541249928 1541249928 -9609 +7662037650719850496 -175727228 -175727228 820 +7675009476762918912 522895626 522895626 -12709 +7678790769408172032 -1313618168 -1313618168 -19681 +7682327310082531328 879500678 879500678 30154 +7686992843032010752 -897622427 -897622427 14144 +7689489436826804224 -909127123 -909127123 20884 +7690986322714066944 -2124994385 -2124994385 276 +7691062622443044864 1516165279 1516165279 -17531 +7696737688942567424 -269702086 -269702086 20059 +7697541332524376064 -1070951602 -1070951602 -6950 +7700734109530767360 194754262 194754262 30199 +7701723309715685376 -1831957182 -1831957182 14261 +7705445437881278464 527598540 527598540 3374 +7710447533880614912 -583908704 -583908704 -11158 +7718825401976684544 -1226425562 -1226425562 10761 +7720187583697502208 -1366059787 -1366059787 22837 +7731443941834678272 -1092872261 -1092872261 31948 +7735566678126616576 1626868156 1626868156 -4819 +774 449788961 449788961 -28736 +7741854854673367040 -1743938290 -1743938290 27830 +7746402369011277824 -1735287250 -1735287250 -30748 +7747874976739016704 315055746 315055746 -11384 +7748799008146366464 -540401598 -540401598 6074 +7752740515534422016 1851654062 1851654062 28447 +7753359568986636288 -816661030 -816661030 23910 +7753882935005880320 1190302173 1190302173 -14888 +7761834341179375616 1273877405 1273877405 -30360 +7762823913046556672 1198701102 1198701102 16767 +7765456790394871808 1074488452 1074488452 -4286 +7768984605670604800 NULL NULL 21606 +7775034125776363520 -1628799508 -1628799508 11877 +7778936842502275072 -1702587308 -1702587308 -6502 +7779486624537370624 -1998652546 -1998652546 -8795 +7779735136559579136 -1228063838 -1228063838 -13393 +7782245855193874432 618991041 618991041 6320 +7784169796350730240 -958165276 -958165276 -11083 +7784489776013295616 -158848747 -158848747 26915 +779 -1939362279 -1939362279 -24422 +7790728456522784768 1575091509 1575091509 32589 +7792036342592348160 -538812082 -538812082 -10317 +7794244032613703680 1301426600 1301426600 -3222 +78 95356298 95356298 133 +780 -737624128 -737624128 -29646 +7800332581637259264 592011541 592011541 -17772 +7801697837312884736 -116484575 -116484575 -11863 +7818464507324121088 -2119724898 -2119724898 2833 +782 -1552053883 -1552053883 10702 +7823874904139849728 344239980 344239980 -23546 +784 44595790 44595790 21407 +7843804446688264192 -397951021 -397951021 -23124 +7844258063629852672 972835688 972835688 -20591 +7845953007588401152 NULL NULL -27232 +7857878068300898304 977624089 977624089 2616 +7868367829080506368 658008867 658008867 NULL +7870277756614623232 985634256 985634256 -20752 +7871189141676998656 1363568842 1363568842 -11006 +7871554728617025536 -309571354 -309571354 28146 +7874764415950176256 2127682701 2127682701 -11187 +7885697257930588160 1992977592 1992977592 -3813 +7888238729321496576 978044705 978044705 NULL +789 NULL NULL 31140 +7892026679115554816 626941809 626941809 -22922 +7892281003266408448 -371779520 -371779520 -26138 +7898670840507031552 776459017 776459017 -22689 +7909645665163804672 -1289665817 -1289665817 -20188 +7917494645725765632 2076370203 2076370203 20411 +7919597361814577152 2125311222 2125311222 6781 +7921639119138070528 -1030565036 -1030565036 31432 +7922443154272395264 -1333770335 -1333770335 -12904 +7926898770090491904 1582537271 1582537271 14176 +7933040277013962752 -1061222139 -1061222139 -30677 +7936149988210212864 1769324649 1769324649 -10815 +7944741547145502720 372099650 372099650 -12203 +7947544013461512192 -1184620079 -1184620079 -15501 +7948803266578161664 1766517223 1766517223 -28864 +7955126053367119872 1447438548 1447438548 -25988 +7961515985722605568 866084887 866084887 NULL +7961909238130270208 -1138530007 -1138530007 22852 +797 996831203 996831203 5550 +7983789401706094592 230954385 230954385 -29239 +7989119273552158720 NULL NULL -4877 +7989160253372817408 1848935036 1848935036 1393 +7997694023324975104 -1826997220 -1826997220 10216 +7998357471114969088 346562088 346562088 -18387 +7998687089080467456 NULL NULL 5591 +80 NULL NULL NULL +8000440057238052864 1251556414 1251556414 4989 +8002769767000145920 1668446119 1668446119 -12016 +8004633750273925120 -1754203978 -1754203978 21081 +8011181697250631680 1773417290 1773417290 -6948 +8011602724663336960 667283966 667283966 756 +8014986215157530624 -799249885 -799249885 -21922 +8017403886247927808 -1491722659 -1491722659 13020 +803 -2096425960 -2096425960 -11047 +8045070943673671680 435407142 435407142 30764 +8048726769133592576 -406264741 -406264741 -12239 +8059284960252731392 -251576563 -251576563 896 +8069531888205086720 1978171687 1978171687 9469 +8071961599867387904 52667480 52667480 -4218 +8073733016154431488 1815882183 1815882183 -22923 +8079573715140485120 503752931 503752931 NULL +808 -1836166334 -1836166334 4536 +8087737899452432384 -2137168636 -2137168636 18900 +809 -682333536 -682333536 -21506 +8091421389575282688 NULL NULL 22232 +8099215208813903872 492968645 492968645 -16680 +8100036735858401280 -146961490 -146961490 -30304 +8109381965028548608 2022944702 2022944702 -11110 +8111757081791733760 -234758376 -234758376 -5314 +8113585123802529792 129675822 129675822 -17254 +8116738401948377088 1914993018 1914993018 24782 +812 -954480325 -954480325 19874 +8120593157178228736 -1379039356 -1379039356 -31709 +8129551357032259584 323817967 323817967 26664 +8135164922674872320 -1459528251 -1459528251 -3436 +8142241016679735296 -163859725 -163859725 -5699 +8143462899383345152 644934949 644934949 2784 +8144552446127972352 2083836439 2083836439 4081 +8145745969573666816 467753905 467753905 -21233 +8145750910080745472 1275228381 1275228381 -30482 +8146288732715196416 -728015067 -728015067 -8293 +8146492373537660928 1316369941 1316369941 18535 +8148211378319933440 NULL NULL 26869 +815 1910930064 1910930064 23177 +8150115791664340992 793047956 793047956 -32022 +8156018594610790400 1384071499 1384071499 -12071 +8156782979767238656 -1651993300 -1651993300 2756 +8160569434550403072 -1808960215 -1808960215 19986 +8160662610166194176 -310584775 -310584775 27077 +8163948965373386752 1968813171 1968813171 -2835 +8168742078705262592 -303747347 -303747347 -8286 +8169878743136043008 1765874562 1765874562 -19545 +8171188598958407680 1996235654 1996235654 NULL +8183233196086214656 1450881368 1450881368 -2827 +8184799300477943808 -579916775 -579916775 9069 +8190539859890601984 1418228573 1418228573 7343 +8190967051000659968 604460005 604460005 -562 +8192304692696383488 494570380 494570380 -9528 +8195103847607967744 15020431 15020431 18555 +8199513544090730496 758926227 758926227 16693 +820 -409673169 746904285 47295 +8201303040648052736 -774406989 -774406989 -18385 +8201491077550874624 1677197847 1677197847 -19295 +8208354137450766336 1377144283 1377144283 23205 +8210813831744118784 139661585 139661585 31502 +8213810702473183232 587797446 587797446 -6513 +8219326436390821888 2064448036 2064448036 -17689 +8220104397160169472 -1274158260 -1274158260 27071 +8221561626658881536 -1626062014 -1626062014 -4211 +8222714144797368320 -318380015 -318380015 -10532 +8223732800007864320 -599396052 -599396052 7579 +823 1660088606 1660088606 NULL +8230371298967609344 1660278264 1660278264 24436 +8235179243092090880 187893585 187893585 -28932 +8244041599171862528 402173272 402173272 -7201 +8254763178969915392 658850444 658850444 18972 +8268875586442256384 1271280812 1271280812 6115 +8269730157217062912 127051381 127051381 4952 +8272001752345690112 3999930 3999930 22006 +8279056098670198784 2133492883 2133492883 -240 +8282648443538710528 -402441123 -402441123 -19427 +8283099811330506752 737149747 737149747 16195 +8286706213485297664 -916495008 -916495008 6587 +8287522765741301760 -1817564067 -1817564067 -27705 +8290014929764040704 -1424027104 -1424027104 -25624 +8290944180915871744 684561551 684561551 -24115 +8294315622451740672 -43858652 -43858652 29922 +8295110846998233088 -1945738830 -1945738830 19917 +83 -684022323 -684022323 -23836 +8302473563519950848 -1524081566 -1524081566 28358 +8316336224427483136 345556325 345556325 -18485 +8323460620425330688 -1524554771 -1524554771 24298 +8325227661920133120 -178568841 -178568841 28000 +8332670681629106176 -314935936 -314935936 21932 +8333523087360901120 -442732016 -442732016 NULL +8337549596011102208 904604938 904604938 16110 +8345435427356090368 323919214 323919214 198 +835 -1054609414 -1054609414 -4159 +8351163199364390912 391186487 391186487 -232 +8362046808797306880 89366322 89366322 -31764 +8365058996333953024 -2043805661 -2043805661 -14280 +8367680396909404160 -1269216718 -1269216718 -12517 +8368012468775608320 -1665164127 -1665164127 21941 +837 170870820 170870820 13161 +8371939471056470016 826143442 826143442 -22000 +8372408423196270592 564349193 564349193 -29468 +8372588378498777088 1321678350 1321678350 30936 +8374321007870836736 -329336519 -329336519 -15874 +8376440110255243264 1665724041 1665724041 3325 +8383159090746204160 605141554 605141554 -19276 +8388363436324085760 -707108808 -707108808 22678 +8391407951622815744 NULL NULL 19968 +8391785334471589888 -630900418 -630900418 -15957 +8396433451610652672 -180280420 -180280420 28940 +8398862954249560064 669871113 669871113 -22447 +8407869317250220032 -1240912824 -1240912824 NULL +8410599906334097408 -1606567895 -1606567895 17701 +8411494452500930560 -1568646283 -1568646283 28551 +8415171956168417280 541118710 541118710 19862 +8416121695917498368 63706286 63706286 18140 +8417381121663746048 1458051497 1458051497 -24267 +8419958579638157312 -99916247 -99916247 18690 +8424515140664360960 1847210729 1847210729 -20112 +8435912708683087872 -2081809883 -2081809883 -19028 +845 -1026746699 -1026746699 14234 +8451612303224520704 -971203543 -971203543 26241 +8454154705460666368 -1421396891 -1421396891 -8321 +8455496814886002688 107680423 107680423 6379 +8457906374051020800 106847364 106847364 -30244 +8461498293348065280 1636364987 1636364987 3186 +8463868417649524736 -1643714866 -1643714866 25986 +8467976965865799680 916057807 916057807 -23622 +8470141334513098752 NULL NULL 30861 +8472429318602268672 -308225568 -308225568 -16518 +8473699639908261888 -591879497 -591879497 -5829 +8487573502287478784 1895282160 1895282160 27787 +8489584373231919104 1416850873 1416850873 -18659 +8489735221193138176 -1124028213 -1124028213 29333 +85 -913906252 -913906252 -3202 +8501910015960735744 1579460630 1579460630 -2060 +8508401924853850112 -1578387726 -1578387726 -2825 +8509508263705477120 1107757211 1107757211 -20934 +8514851182589771776 415234946 415234946 -13805 +8514979402185596928 1902676205 1902676205 NULL +8515682078777081856 -1026458834 -1026458834 14331 +8518454006987948032 -379174037 -379174037 -22941 +8519937082746634240 -1745449855 -1745449855 -28566 +8523972434954510336 2134433675 2134433675 17720 +8524940073536954368 476858779 476858779 24488 +8525336514806317056 350802495 350802495 -14405 +8525894870444638208 1216287232 1216287232 -9735 +8532016240026279936 -1726585032 -1726585032 -7172 +8536948829863198720 1723691683 1723691683 -6024 +8540237852367446016 398960205 398960205 2728 +8543177193114779648 2048533360 2048533360 18637 +8547243497773457408 -534991774 -534991774 29721 +8551446856960942080 -1312782341 -1312782341 24446 +8553195689344991232 566646177 566646177 -9065 +8554899472487596032 -491882534 -491882534 -13978 +8555933456197828608 NULL NULL 24105 +8555948987770511360 107941738 107941738 18071 +8557218322962644992 -1210550573 -1210550573 22278 +8558000156325707776 -370901197 -370901197 -30638 +8560526613401714688 1592467112 1592467112 -16622 +8569030475428511744 1743671220 1743671220 -25166 +8570983266408103936 950545385 950545385 NULL +8571268359622172672 1187495452 1187495452 -6384 +8573305425181941760 1583280136 1583280136 14089 +8577096957495025664 NULL NULL 7954 +8579974641030365184 -1545388906 -1545388906 -3619 +8583916402383601664 -733239404 -733239404 8551 +8613562211893919744 -1109134719 -1109134719 -21357 +8625937019655200768 272086526 272086526 -6736 +8631515095562887168 -1244527286 -1244527286 -9494 +8637720762289659904 1669519977 1669519977 NULL +8639254009546055680 477584560 477584560 26952 +8641221723991433216 -1531040609 -1531040609 18350 +8643198489997254656 -1079086534 -1079086534 10273 +8644602243484803072 -1218592418 -1218592418 -23663 +8649296591032172544 -1744964279 -1744964279 -13979 +8652485812846567424 1372705672 1372705672 10699 +8656571350884048896 NULL NULL -16002 +8660248367767076864 1520375588 1520375588 -16872 +8665969966920990720 1372982791 1372982791 -25596 +8666178591503564800 -1565785026 -1565785026 -21025 +8677632093825916928 2040926345 2040926345 30632 +8677794924343164928 115470151 115470151 -20409 +868 -2133145181 -2133145181 -14644 +8682955459667951616 2009215103 2009215103 -25282 +8687042963221159936 -870624802 -870624802 3063 +8688483860094599168 -273937943 -273937943 -25734 +8693036785094565888 2090496825 2090496825 NULL +8697823501349609472 922553769 922553769 -14597 +8698055291501543424 -1755088362 -1755088362 27905 +8708232769657815040 6526476 6526476 31135 +8708845895460577280 1860113703 1860113703 -27553 +871 915505006 915505006 -9496 +8714829359200747520 672919099 672919099 23834 +8716401555586727936 -789126455 -789126455 8188 +8720504651219001344 825677248 825677248 18820 +8723248113030782976 144499388 144499388 NULL +873 842283345 842283345 NULL +8731960288562044928 869288953 869288953 7392 +8734584858442498048 -946830673 -946830673 9962 +8736061027343859712 -1974972123 -1974972123 -28084 +874 58313734 58313734 6367 +8752150411997356032 -1502924486 -1502924486 913 +8759089349412847616 1972940844 1972940844 16439 +8759184090543857664 435426302 435426302 -373 +8760285623204290560 -573787626 -573787626 -24296 +8761174805938331648 1205391962 1205391962 28048 +8769199243315814400 2100377172 2100377172 25732 +8773222500321361920 217823040 217823040 4261 +8775009214012456960 -213198503 -213198503 -29988 +8779073705407963136 -1979314577 -1979314577 -31967 +8779711700787298304 -859535015 -859535015 27960 +878 290601612 290601612 -21723 +8780196485890555904 -607285491 -607285491 -9183 +8782900615468302336 -1411407810 -1411407810 -12396 +8783241818558193664 -714270951 -714270951 NULL +8785153741735616512 1028092807 1028092807 15530 +8792059919353348096 -745678338 -745678338 -10569 +8793387410919038976 -1058166020 -1058166020 -1011 +8795069490394882048 1366402722 1366402722 -5946 +8806507556248731648 1190554937 1190554937 32734 +8808467247666241536 -1706867123 -1706867123 297 +8811693967537774592 1731764471 1731764471 24299 +8815398225009967104 -1701502632 -1701502632 NULL +8817665768680906752 1550375386 1550375386 -24320 +8822384228057604096 -1371840597 -1371840597 26579 +8825059717746376704 872554087 872554087 12802 +8829545979081744384 NULL NULL -27844 +883 -1554130090 -1554130090 12048 +8836228556823977984 1499399891 1499399891 -26061 +8837420822750314496 2052773366 2052773366 -29475 +8849475396952514560 718692886 718692886 NULL +8850055384477401088 1503176016 1503176016 -20657 +8853989376829833216 -1505397109 -1505397109 5196 +8854495099223375872 2065408093 2065408093 -12588 +8854677881758162944 1883400319 1883400319 -32263 +8854715632851345408 1301997393 1301997393 22511 +8856674723376668672 -4943292 -4943292 NULL +8868529429494071296 1830870769 1830870769 19003 +8871707618793996288 -677778959 -677778959 NULL +8875745082589929472 -1460613213 -1460613213 -28968 +888 1012696613 1012696613 15862 +8895174927321243648 -522450861 -522450861 30921 +8896237972875370496 1540680149 1540680149 -31404 +8897901899039473664 -535056977 -535056977 3228 +8899122608190930944 -2146432765 -2146432765 -1067 +8900180888218329088 -1058356124 -1058356124 13048 +8900351886974279680 1000106109 1000106109 -15497 +8900545829211299840 352214248 352214248 256 +8905330479248064512 NULL NULL 27675 +8910706980937261056 1166237779 1166237779 -12506 +8920344895701393408 -1126628450 -1126628450 7299 +8920533610804609024 1739911574 1739911574 7569 +8927691194719174656 -917062754 -917062754 5025 +8928133990107881472 -1511162508 -1511162508 23063 +8935252708196999168 1603612975 1603612975 12327 +8936639033158410240 -1305139473 -1305139473 21469 +8939431770838810624 -934008333 -934008333 -18292 +8945004737083555840 252169185 252169185 19887 +8945302550165004288 1117805438 1117805438 22118 +8962097525980225536 -329695030 -329695030 -26946 +8972161729142095872 1709983738 1709983738 NULL +8979012655944220672 -120692484 -120692484 -29722 +898 -234278308 338805871 5469 +8983857919580209152 1273798925 1273798925 -29285 +8983912573761167360 NULL NULL -17690 +8984935029383389184 -1565671389 -1565671389 NULL +8987827141270880256 -1024500955 -1024500955 -27015 +8991071342495531008 -574475259 -574475259 15655 +8991442360387584000 2081243058 2081243058 -5468 +8994608999945125888 -839512271 -839512271 -23323 +8995562121346260992 -618505946 -618505946 11664 +8996824426131390464 -214166042 -214166042 28774 +9000633029632499712 -641062448 -641062448 -10420 +9001907486943993856 -1974257754 -1974257754 7483 +9005866015985713152 652118640 652118640 -5374 +9016280522993975296 388707554 388707554 20794 +9020143715350814720 NULL NULL 16565 +9023663198045544448 1145627305 1145627305 22388 +9030480306789818368 -758973175 -758973175 NULL +9038087402564657152 NULL NULL -14836 +9040958359122640896 -1635301453 -1635301453 -30157 +9043089884440068096 -1527024213 -1527024213 -19020 +9048002942653710336 -1079231269 -1079231269 14982 +9048297564833079296 -1534307678 -1534307678 29851 +9050032047355125760 -1240048334 -1240048334 27527 +9053187076403060736 1075444504 1075444504 -32208 +9054887854393950208 -1517536924 -1517536924 13522 +9062227900376203264 1260101584 1260101584 4206 +9064847977742032896 -1849091666 -1849091666 10727 +9067985867711291392 43672187 43672187 NULL +9073672806863790080 -2144241640 -2144241640 -32119 +9075404705968840704 712816880 712816880 22289 +9078604269481148416 -298221893 -298221893 -8309 +908 266601601 266601601 -9102 +9083076230151864320 2111462911 2111462911 -23667 +9083704659251798016 -1359838019 -1359838019 1280 +9084402694981533696 NULL NULL 28570 +9085381906890203136 -240529113 -240529113 -11066 +9085434340468473856 76381404 76381404 -14551 +9086905513121890304 1796013407 1796013407 -4808 +9089435102788009984 2102440065 2102440065 -21274 +9091082386452684800 748185058 748185058 -25463 +9091085792947666944 254921167 254921167 22618 +9094945190752903168 2126491387 2126491387 -32480 +9096395849845194752 100270148 100270148 25038 +91 -1288198020 -1288198020 15628 +9104574294205636608 1257621270 1257621270 -20834 +9107991000536498176 -847235873 -847235873 10615 +9112400579327483904 1111985530 1111985530 17073 +9114850402293882880 1571267481 1571267481 -23153 +9116137265342169088 -236700442 -236700442 NULL +9117063974299148288 -297664578 -297664578 29954 +9119046173224370176 1604076720 1604076720 -6088 +9123116008004288512 1882932986 1882932986 -1801 +913 1845797092 1845797092 -25077 +9131533983989358592 -1234163924 -1234163924 -7178 +9132009829414584320 -1856034030 -1856034030 -2027 +9136234417125007360 NULL NULL -21820 +9136548192574529536 1121512594 1121512594 -19926 +9139805788041134080 881396599 881396599 -5338 +914 -1257859205 -1257859205 -7300 +9148071980848742400 1370723240 1370723240 30619 +9149216169284091904 -694520014 -694520014 -31033 +9165199002069458944 430686478 430686478 312 +9169248521377374208 1566958573 1566958573 32547 +917 -2076460151 -2076460151 -15493 +9174894805640142848 1336842978 1336842978 -30397 +918 1359437295 1359437295 -21292 +9180098147855769600 1950882901 1950882901 -6349 +9182828596851990528 -1012329052 -1012329052 21091 +9185458640237641728 -1011125931 -1011125931 31316 +9185952983951343616 889733679 889733679 -14315 +9188173682239275008 -1248781172 -1248781172 -17236 +919 -357680544 -357680544 30166 +9190466190353661952 1918230406 1918230406 18823 +9191943992860327936 -595769210 -595769210 -16940 +9194388393453060096 1002519329 1002519329 -16362 +9199741683232399360 -1096771844 -1096771844 22704 +9207107990561972224 -765190882 -765190882 13265 +9207927479837319168 2066707767 2066707767 18354 +9209153648361848832 471464395 471464395 2952 +921 1238986437 1238986437 -23550 +9211455920344088576 166320811 166320811 -15936 +922 932774185 932774185 -16425 +923 -1506324615 -1506324615 20704 +927 1044196568 1044196568 NULL +928 413090363 413090363 -11160 +939 -982238309 -982238309 -739 +94 NULL NULL -5837 +945 219415594 219415594 27454 +947 -896274896 -896274896 30237 +950 -2065080832 -1541281934 -20831 +958 NULL NULL -4910 +961 1805139501 1805139501 10473 +965 1336951982 1336951982 26292 +967 -1240208945 -1240208945 11843 +976 -1563676282 -1563676282 7058 +979 1022214896 1022214896 -9798 +982 -835198551 -835198551 -18140 +987 1807877618 1807877618 -19159 +997 -742707249 -742707249 15342 +999 -346607939 -346607939 11159 +NULL -2069439395 2142592987 130757 +PREHOOK: query: explain vectorization detail +select b, count(i), min(i), max(i), sum(si) from vectortab2korc group by b +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b, count(i), min(i), max(i), sum(si) from vectortab2korc group by b +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: false + enabledConditionsNotMet: [hive.vectorized.execution.enabled IS false] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: si (type: smallint), i (type: int), b (type: bigint) + outputColumnNames: si, i, b + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count(i), min(i), max(i), sum(si) + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: b (type: bigint) + mode: hash + outputColumnNames: _col0, _col1, _col2, _col3, _col4 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint) + sort order: + + Map-reduce partition columns: _col0 (type: bigint) + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint), _col2 (type: int), _col3 (type: int), _col4 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0), min(VALUE._col1), max(VALUE._col2), sum(VALUE._col3) + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: KEY._col0 (type: bigint) + mode: mergepartial + outputColumnNames: _col0, _col1, _col2, _col3, _col4 + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b, count(i), min(i), max(i), sum(si) from vectortab2korc group by b +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(i), min(i), max(i), sum(si) from vectortab2korc group by b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 1 -603273425 -603273425 -1307 +-6919476845891313664 1 710856472 710856472 8811 +-6920172215209426944 1 -764412063 -764412063 -26832 +-6921654334727036928 1 -1066775085 -1066775085 21673 +-6933565857643814912 1 581259902 581259902 NULL +-6934304742087655424 1 955171928 955171928 NULL +-6935038507792801792 1 174310705 174310705 -1928 +-6935548339131138048 1 -1062159435 -1062159435 24858 +-6938706403992854528 1 980732494 980732494 30420 +-6941777546186579968 1 121663320 121663320 21611 +-6947955278050181120 1 641695802 641695802 16357 +-6951350560260784128 1 1342923026 1342923026 12256 +-6957946688477274112 1 1505168716 1505168716 28272 +-6960947572095770624 1 1136976809 1136976809 -19343 +-6962271229404348416 1 1106995930 1106995930 -9734 +-6962292590214234112 1 -1147471772 -1147471772 20540 +-6968771079156654080 1 -939348081 -939348081 -25698 +-6968892545529896960 1 470993066 470993066 -16307 +-6970396058557005824 1 2140632003 2140632003 2643 +-6974654664348033024 1 -968377273 -968377273 26540 +-6975459232300236800 1 1151752586 1151752586 16796 +-6986178228432322560 1 -1369253050 -1369253050 18845 +-6988811476286873600 1 -1968097621 -1968097621 -15573 +-6988970700649168896 1 -1230459100 -1230459100 NULL +-6992217501957169152 1 1472487454 1472487454 -32755 +-6997233584896229376 1 -76654979 -76654979 3486 +-7000925438663041024 1 596045726 596045726 1755 +-7003696402314215424 1 -1458382451 -1458382451 -15348 +-7011425384222244864 0 NULL NULL 9017 +-7017212700635545600 1 304860245 304860245 20680 +-7020852530219171840 1 824836988 824836988 -25115 +-7030489936116252672 1 1115197541 1115197541 24847 +-7035132060308643840 0 NULL NULL 21784 +-7036607470351654912 1 -1933192293 -1933192293 -31458 +-7037375807670501376 1 -1168823523 -1168823523 1728 +-7037638331316469760 1 14573904 14573904 5093 +-7038455462786334720 1 524317972 524317972 343 +-7040248820505149440 1 196581473 196581473 -10326 +-7041362811802148864 1 -455114104 -455114104 9948 +-7042183597114081280 1 658636280 658636280 22333 +-7046180371529351168 1 -117723745 -117723745 4397 +-7049618574399692800 1 -978892011 -978892011 23441 +-7052619594823221248 1 -1117358187 -1117358187 7821 +-7055619148037554176 1 -838656526 -838656526 -13008 +-7055760785575665664 1 759899363 759899363 -24478 +-7057750467944931328 1 -71449585 -71449585 -10316 +-7058986555327307776 1 1942004879 1942004879 26796 +-7063777488249085952 1 -507250351 -507250351 21991 +-7078068944081002496 1 2013178181 2013178181 -32533 +-7079898537463537664 1 -1205034356 -1205034356 -31711 +-7081500255163727872 1 -1969751342 -1969751342 -18283 +-7083646746411720704 1 780938234 780938234 NULL +-7085247548404178944 1 1640192895 1640192895 -31828 +-7093825013581979648 1 -628790799 -628790799 -17607 +-7094189393339678720 1 1796486238 1796486238 20349 +-7094827141662539776 1 -632803945 -632803945 -24805 +-7104310188119834624 1 -1928197479 -1928197479 -10569 +-7106210529681350656 1 1718167702 1718167702 30585 +-7109790267244814336 1 -291577538 -291577538 11617 +-7115054815375073280 0 NULL NULL -29977 +-7120456708338688000 1 1751468853 1751468853 NULL +-7127548949860818944 1 260463232 260463232 28089 +-7138415011665043456 1 -1345391395 -1345391395 -29811 +-7139677575412686848 1 -1556127172 -1556127172 -15762 +-7140008543769042944 1 -1938290238 -1938290238 -30974 +-7144791190333546496 1 -876122064 -876122064 -13426 +-7145585429014888448 1 -817093900 -817093900 29245 +-7147490721376591872 1 1759741857 1759741857 -10312 +-7152177800841502720 1 -37773326 -37773326 -12463 +-7155539549555105792 1 -345542922 -345542922 -22421 +-7158472098920390656 1 -71305062 -71305062 -31998 +-7159700138947862528 1 -76430653 -76430653 26134 +-7161165959057334272 1 1352649032 1352649032 -22949 +-7162299524557471744 1 1813010930 1813010930 NULL +-7172594404186693632 1 -1949359208 -1949359208 2234 +-7185369278665605120 1 -374337252 -374337252 1864 +-7192529627893858304 1 -45439614 -45439614 10425 +-7194281951646187520 1 -797889292 -797889292 5661 +-7195217207163166720 1 -1977762695 -1977762695 -1767 +-7198372044947275776 1 -1424770359 -1424770359 -28941 +-7199983995864711168 1 -1870912732 -1870912732 -16570 +-7201085131997011968 1 -1356601829 -1356601829 4111 +-7209060152494817280 1 -2071851852 -2071851852 -23284 +-7213775605408178176 1 1222935237 1222935237 -32462 +-7220731681653604352 1 -851663638 -851663638 27796 +-7221474017515347968 1 -1421860505 -1421860505 23220 +-7228589258642194432 1 1958701268 1958701268 NULL +-7240213957902663680 1 -841634659 -841634659 NULL +-7242345057866285056 1 548375173 548375173 16799 +-7245872320493322240 1 -134686276 -134686276 4781 +-7246123871306244096 1 1686537335 1686537335 -25959 +-7255010240787030016 1 1373871781 1373871781 2612 +-7255686273677328384 1 2100839074 2100839074 -21005 +-7262049693594943488 1 1295073553 1295073553 -6142 +-7262384251828518912 1 1647411522 1647411522 NULL +-7262798781688651776 1 -423190290 -423190290 32212 +-7263060340185194496 1 1590744669 1590744669 -30669 +-7265998318110711808 1 1437057145 1437057145 6144 +-7266719102957125632 1 960187615 960187615 6036 +-7270034223527993344 1 -1984079412 -1984079412 2542 +-7273590251991162880 1 994798486 994798486 4332 +-7273694358642851840 1 2009890220 2009890220 -25155 +-7276111129363046400 1 -1462604138 -1462604138 2683 +-7287583262310350848 1 -1108723753 -1108723753 31099 +-7292078334519894016 1 -785261879 -785261879 -3757 +-7296096276653391872 1 160290374 160290374 13632 +-7303847963918393344 1 -1769423338 -1769423338 13795 +-7319315187617587200 1 -235238928 -235238928 11077 +-7326863346317598720 1 958866509 958866509 -5282 +-7328087811698909184 1 -1017629298 -1017629298 -21795 +-7329767178250018816 1 -448060992 -448060992 -23462 +-7329807949048193024 1 -369183838 -369183838 1519 +-7330203470474985472 1 -1065248998 -1065248998 29015 +-7330413050756235264 1 -2024003241 -2024003241 14335 +-7333278178640953344 1 1393506704 1393506704 -15819 +-7333362172439035904 1 -835002549 -835002549 -11675 +-7340231535789727744 1 526502851 526502851 -14815 +-7344146703223496704 1 789871166 789871166 -30907 +-7344947507044466688 1 -340951385 -340951385 -19912 +-7345562788132315136 1 1750433588 1750433588 -16647 +-7356685674003021824 1 1319589591 1319589591 -21389 +-7357888618985873408 0 NULL NULL 27116 +-7362189611124563968 1 -496915240 -496915240 11804 +-7366430883634929664 1 1592153312 1592153312 20746 +-7378096180613840896 1 218917585 218917585 29639 +-7380731416973295616 1 -1114208576 -1114208576 -22554 +-7395343938785738752 1 830944953 830944953 28011 +-7395553021620731904 1 1056997296 1056997296 NULL +-7399631791131074560 1 -932921363 -932921363 -11110 +-7404052043914526720 1 -1349876582 -1349876582 29023 +-7404057145074712576 1 56316391 56316391 -15109 +-7409317158045442048 1 -1463884101 -1463884101 2955 +-7409653086454030336 1 -624029057 -624029057 -6884 +-7412431471807283200 1 622925063 622925063 27982 +-7413317118463164416 1 -507015439 -507015439 -9566 +-7419068456205385728 1 -4393552 -4393552 -5635 +-7420448501073051648 1 -1155174991 -1155174991 10600 +-7425160895830573056 1 -765102534 -765102534 22678 +-7429331808102899712 1 -1057522129 -1057522129 9264 +-7433265617153343488 0 NULL NULL -20946 +-7442593976514420736 1 1851805558 1851805558 -29228 +-7444070205513138176 1 -520725912 -520725912 26108 +-7451660755269853184 1 1338047392 1338047392 10217 +-7453525026342617088 1 1505665168 1505665168 4568 +-7455898404374921216 1 1544482684 1544482684 18558 +-7456869587112255488 1 -224865887 -224865887 -14783 +-7461750143936897024 1 -1343425152 -1343425152 -695 +-7464270453557993472 1 -1439293109 -1439293109 -12647 +-7469660864676585472 1 85774760 85774760 25847 +-7470307155642245120 1 1137950964 1137950964 17489 +-7476082621253402624 1 1083855659 1083855659 23928 +-7483435388852559872 1 -914329027 -914329027 28041 +-7488345684795342848 1 -1668736016 -1668736016 -458 +-7488415863027367936 1 1286367391 1286367391 28128 +-7494411162675691520 1 1595326878 1595326878 -21358 +-7496839341561954304 1 868714547 868714547 21849 +-7497303453253402624 1 1415647436 1415647436 -26565 +-7500200359698907136 1 -423074450 -423074450 -5216 +-7501803640821456896 1 1809795770 1809795770 -27807 +-7506254246954500096 1 -511198293 -511198293 23766 +-7507424948896415744 1 -828522499 -828522499 -14093 +-7507578199583694848 1 -1784633305 -1784633305 32133 +-7510418793070075904 1 975932228 975932228 27983 +-7511202710200885248 1 -2042647152 -2042647152 -22960 +-7511952204985049088 1 -1351437382 -1351437382 -25664 +-7512289590991544320 1 1409872356 1409872356 19350 +-7512297136103800832 1 -1180153422 -1180153422 18439 +-7515996202498473984 1 344989592 344989592 26296 +-7524170566881329152 1 -1908696083 -1908696083 -27358 +-7526793959592140800 1 -570632618 -570632618 28309 +-7528526815026692096 1 2125479431 2125479431 -3896 +-7532751268425261056 1 1752520642 1752520642 -26433 +-7535857766791577600 1 1846184880 1846184880 11168 +-7535958203887706112 1 656636097 656636097 -15862 +-7536330682873937920 1 -1289501869 -1289501869 -134 +-7540104552219860992 1 1081187102 1081187102 -14675 +-7541860097718902784 1 -625788713 -625788713 -11571 +-7542857121910046720 1 1495575878 1495575878 20872 +-7547245548870025216 1 1784291853 1784291853 -716 +-7547432761381339136 1 434679307 434679307 2338 +-7551394356730339328 1 1179528290 1179528290 -6460 +-7557017910095650816 1 195281533 195281533 -14661 +-7558524160894427136 1 375106978 375106978 18372 +-7571293705217687552 1 1240875512 1240875512 -10935 +-7571957778022178816 1 1042184256 1042184256 13595 +-7572262898020278272 1 -1875699183 -1875699183 23683 +-7572962089372991488 1 -841268868 -841268868 30730 +-7576194692683563008 1 2080249726 2080249726 28393 +-7593363318079610880 1 -1811563127 -1811563127 -23387 +-7594824008626372608 1 824743780 824743780 -24942 +-7598782894648565760 1 -983874694 -983874694 12762 +-7600138468036386816 1 -722294882 -722294882 17436 +-7603467428164009984 1 -619311578 -619311578 NULL +-7603569103205916672 1 390124976 390124976 -18358 +-7610137349734883328 1 683320224 683320224 7356 +-7611584069753552896 1 -1765795567 -1765795567 -29864 +-7612455481940246528 0 NULL NULL 1558 +-7612466483992051712 1 -1969235238 -1969235238 39 +-7616522969329262592 1 1924741890 1924741890 -2254 +-7617860842651017216 1 386741352 386741352 718 +-7623047151287754752 1 -1050029724 -1050029724 -23325 +-7623359796281999360 1 1829544791 1829544791 -27259 +-7623405558242500608 1 283322761 283322761 5235 +-7624057992767782912 1 -1218581850 -1218581850 31986 +-7629401308029976576 1 -1655030261 -1655030261 -12575 +-7637494527844343808 1 2005560498 2005560498 -27372 +-7637755520917741568 1 648935848 648935848 -10662 +-7642381493746483200 1 583458404 583458404 NULL +-7647020450676146176 1 609917172 609917172 17286 +-7661192563533062144 1 -1319753324 -1319753324 NULL +-7661250850555633664 1 -693249555 -693249555 -25689 +-7663293054873812992 1 -1478812842 -1478812842 -6518 +-7665186441284968448 1 791096295 791096295 -20218 +-7668388017287020544 0 NULL NULL 24244 +-7669169138124275712 1 -1484033125 -1484033125 -19535 +-7673901622181953536 1 1141303816 1141303816 13154 +-7679894005808693248 1 -306214368 -306214368 9943 +-7686220526274502656 1 -892839693 -892839693 -20182 +-7687052294777208832 1 -1989778424 -1989778424 28360 +-7692192232238678016 1 745725681 745725681 -25683 +-7695491171376291840 1 1225312439 1225312439 -15748 +-7700203302632210432 1 1805308672 1805308672 17531 +-7703540456272994304 1 1312270193 1312270193 2458 +-7707242953271500800 1 1568180994 1568180994 -13335 +-7707867749256445952 1 -596963345 -596963345 16734 +-7708932208121225216 1 307333276 307333276 -17840 +-7709958788604936192 1 595836061 595836061 5191 +-7712425776235274240 1 -1432316859 -1432316859 -26932 +-7720966287634112512 0 NULL NULL -18659 +-7739424919198187520 1 712625264 712625264 -12103 +-7744462446680375296 1 2029657999 2029657999 17958 +-7751265769984491520 1 700341242 700341242 -28914 +-7751427073017544704 1 615619268 615619268 31581 +-7753051494275432448 1 -1599905147 -1599905147 28921 +-7759238919361888256 1 -2065287410 -2065287410 30119 +-7759425383684849664 1 -938762477 -938762477 NULL +-7772064021830574080 1 -1201785350 -1201785350 NULL +-7773957003968675840 1 270090617 270090617 -9943 +-7777884099756122112 1 914583645 914583645 16217 +-7778829032042790912 1 -807242371 -807242371 -26064 +-7779270198785875968 1 -1242677422 -1242677422 -15129 +-7782344916178796544 1 -1213081886 -1213081886 -17356 +-7784419454650843136 1 -1210907929 -1210907929 -3179 +-7792903881635938304 1 -191899537 -191899537 27523 +-7793447076762345472 1 1196151988 1196151988 17942 +-7797149520019062784 1 -1262842192 -1262842192 -26439 +-7797151404935618560 1 -507955215 -507955215 -14928 +-7800879252150779904 1 1352739140 1352739140 -8578 +-7802538500225777664 1 215759857 215759857 31334 +-7804116532814151680 1 -1146649990 -1146649990 11159 +-7805985795815342080 1 -2076886223 -2076886223 -11679 +-7811060170911375360 1 1513689502 1513689502 -26128 +-7818454479651135488 1 -559270035 -559270035 -4491 +-7819437864839495680 1 -370093295 -370093295 -23389 +-7822452149325094912 1 60847311 60847311 24253 +-7824788571789279232 1 -1406691044 -1406691044 -14667 +-7827420207675105280 1 -36682325 -36682325 6197 +-7831320202242228224 1 -1726479726 -1726479726 -6637 +-7831595638727565312 1 1626884085 1626884085 -7738 +-7833618000492109824 1 589546540 589546540 -27715 +-7835907977757245440 1 -87470856 -87470856 -11165 +-7838598833900584960 1 1028204648 1028204648 -20789 +-7840338174858199040 1 -300717684 -300717684 3245 +-7845896959112658944 1 -1688105985 -1688105985 -3061 +-7848043121524228096 1 1667594394 1667594394 30222 +-7849504559236210688 1 -2052386812 -2052386812 -23248 +-7858505678035951616 0 NULL NULL -32240 +-7866079955473989632 1 196980893 196980893 NULL +-7867219225874571264 1 -1078579367 -1078579367 -11123 +-7868306678534193152 1 -2144138362 -2144138362 18395 +-7873753603299540992 1 -971698865 -971698865 NULL +-7875953567586451456 1 816439627 816439627 -29601 +-7877598807023386624 1 340384179 340384179 -22938 +-7878145001776152576 1 -1489628668 -1489628668 26744 +-7879864376629567488 1 -472303419 -472303419 24677 +-7881262505761710080 1 -103219371 -103219371 -1034 +-7881351200983613440 1 720703232 720703232 -20180 +-7883252982752665600 1 1136548971 1136548971 -12782 +-7884460946615984128 1 1772349172 1772349172 -14936 +-7888051992910274560 1 1818213677 1818213677 12045 +-7892780594910871552 1 -779743333 -779743333 -12571 +-7893577088764174336 1 268888160 268888160 NULL +-7894382303337832448 1 1832650234 1832650234 -24368 +-7895991410072928256 1 1467284000 1467284000 17394 +-7902517224300036096 1 -950738312 -950738312 41 +-7903158849011843072 1 -217930632 -217930632 7128 +-7904188195431661568 1 -442839889 -442839889 27697 +-7907355742053883904 1 794783516 794783516 28247 +-7910019233726242816 1 -1259611508 -1259611508 1409 +-7911421221625077760 1 476704350 476704350 7401 +-7915999634274369536 1 1814570016 1814570016 -7178 +-7916510129632296960 1 -2136052026 -2136052026 23468 +-7928062266382778368 1 152654715 152654715 1436 +-7928440849566146560 1 -800975421 -800975421 -31352 +-7939634346485858304 1 1012843193 1012843193 4363 +-7949309059286163456 1 88774647 88774647 11814 +-7949445503604604928 1 1695098246 1695098246 -17082 +-7953426740065312768 1 22308780 22308780 1847 +-7964801953178091520 1 661659208 661659208 -18867 +-7966960765508280320 1 -884109192 -884109192 -19517 +-7978782649203228672 1 491016124 491016124 16250 +-7989766326847807488 1 -1731820254 -1731820254 8675 +-7998947380180819968 1 -136514115 -136514115 -9759 +-8007017894942638080 1 1219616145 1219616145 -31582 +-8013397854633648128 1 -1391183008 -1391183008 -18295 +-8016589197379289088 1 -1721763321 -1721763321 4715 +-8017791189288869888 1 -2057666812 -2057666812 4447 +-8018511948141748224 1 661380540 661380540 3523 +-8021859935185928192 1 1420099773 1420099773 32019 +-8022573309127000064 1 1194243726 1194243726 28828 +-8023708819947323392 1 198539698 198539698 24178 +-8028275725610909696 1 -1937640350 -1937640350 -28682 +-8028910243475038208 1 873035819 873035819 22557 +-8030058711611629568 1 -752222556 -752222556 6734 +-8034414142083170304 1 -267130580 -267130580 18984 +-8046189486447017984 1 925032386 925032386 22603 +-8046238369820344320 1 819069589 819069589 -16027 +-8047774491688255488 1 -1339495001 -1339495001 -25301 +-8051395538179063808 1 -469749219 -469749219 20969 +-8051587217208967168 1 51376784 51376784 -9398 +-8051871680800120832 0 NULL NULL -14229 +-8054581198284668928 1 1395450272 1395450272 5601 +-8067243114610532352 1 214068706 214068706 -9365 +-8070535484085895168 1 829101712 829101712 -7865 +-8076479329071955968 1 2017314998 2017314998 -12605 +-8082793390939193344 1 -1878838836 -1878838836 6761 +-8084716955963252736 1 -1609864597 -1609864597 21103 +-8086577583338061824 1 -340462064 -340462064 20120 +-8088337436168830976 1 2124297747 2124297747 30839 +-8099313480512716800 1 -392713245 -392713245 -3091 +-8103788088118018048 1 -533227056 -533227056 25835 +-8104684579106914304 1 -1091003492 -1091003492 -17269 +-8108693586698706944 1 -896261100 -896261100 -13603 +-8115963579415650304 1 -951728053 -951728053 32092 +-8117838333114212352 1 -1642207005 -1642207005 -19786 +-8122639684164501504 1 1425456189 1425456189 -23630 +-8127494999848919040 1 1701817607 1701817607 -24670 +-8131997716860526592 1 -457341338 -457341338 -32364 +-8136227554401107968 1 127917714 127917714 12187 +-8140349174954893312 0 NULL NULL 19894 +-8142667274351345664 1 453613037 453613037 32581 +-8147405381260345344 1 659397992 659397992 25381 +-8158011642485825536 0 NULL NULL -25344 +-8161047750470279168 1 -621365995 -621365995 -32180 +-8172827216441573376 1 -113253627 -113253627 -29675 +-8182421179156905984 1 -1892816721 -1892816721 6980 +-8191825921746305024 1 703111607 703111607 16082 +-8194062064124362752 1 1482983157 1482983157 13845 +-8203008052020879360 1 -1127100849 -1127100849 -29685 +-8203075743525806080 1 -626484313 -626484313 15815 +-8205148279289085952 1 768198315 768198315 27693 +-8214462866994339840 0 NULL NULL -5097 +-8219876839318716416 1 1452244326 1452244326 30883 +-8232763638546694144 1 -514010922 -514010922 24455 +-8240034910581153792 1 -665623523 -665623523 5599 +-8240684139569233920 1 -1721368386 -1721368386 -31663 +-8243487285852766208 1 1153811197 1153811197 10891 +-8244116388227104768 1 1893512909 1893512909 31411 +-8244657976255889408 1 688547276 688547276 -28939 +-8260340354454503424 1 1456367662 1456367662 -13539 +-8269917980278980608 1 -1700451326 -1700451326 -17297 +-8270479187688816640 1 1519993904 1519993904 -22726 +-8275337702906757120 1 210003006 210003006 -19677 +-8280276629934981120 1 -588160623 -588160623 5266 +-8293833565967810560 1 -1464514590 -1464514590 30075 +-8297230235506343936 1 283618733 283618733 -18601 +-8300526097982226432 1 1314531900 1314531900 27101 +-8300764106868350976 1 -1196101029 -1196101029 NULL +-8302817097848307712 1 -1021859098 -1021859098 32553 +-8317591428117274624 1 -670925379 -670925379 -28730 +-8318886086186213376 1 1033609549 1033609549 -10095 +-8322751250650218496 1 -1212524805 -1212524805 13792 +-8330233444291084288 1 -409404534 -409404534 -776 +-8335810316927213568 1 -1562552002 -1562552002 -6045 +-8340523561480437760 1 39723411 39723411 -18214 +-8345065519816695808 1 654939016 654939016 -18796 +-8347088645602050048 1 76299337 76299337 -20559 +-8357136656913686528 1 1517915751 1517915751 11999 +-8358130693961195520 1 -122391516 -122391516 28008 +-8359839265974165504 1 1572563948 1572563948 -2559 +-8368269352975982592 0 NULL NULL -30890 +-8368487814665895936 1 156101201 156101201 17165 +-8369487968903897088 1 -194270271 -194270271 4701 +-8379109122834997248 1 1566607834 1566607834 -11740 +-8379964450833367040 1 -181122344 -181122344 20766 +-8384695077413412864 1 -1818456584 -1818456584 22213 +-8387347109404286976 1 -2011708220 -2011708220 -6487 +-8387536830476820480 1 -1703620970 -1703620970 9969 +-8395998375405912064 1 -1141801925 -1141801925 -15944 +-8400045653258444800 1 1523657918 1523657918 -5869 +-8411282676082565120 1 253621570 253621570 2677 +-8418913260807217152 1 -41864614 -41864614 -10126 +-8425998949410889728 1 -656478771 -656478771 -16793 +-8426531414463545344 1 1701761102 1701761102 -10872 +-8430283518005846016 1 -16094879 -16094879 -21156 +-8430370933326536704 0 NULL NULL 23229 +-8431492599012163584 1 -1131684944 -1131684944 31427 +-8438554249514491904 1 232405034 232405034 28775 +-8445801063348281344 1 -1247325089 -1247325089 7899 +-8453491903284994048 1 1524010024 1524010024 -14223 +-8454143651040444416 1 516479816 516479816 -31454 +-8465978403747037184 1 1347876055 1347876055 16430 +-8469607298426437632 1 374283948 374283948 26031 +-8471480409335513088 1 1891680787 1891680787 -9724 +-8485389240529354752 1 -1528033060 -1528033060 3213 +-8488247955875618816 1 1802498539 1802498539 -20343 +-8490382417169408000 1 987917448 987917448 -24208 +-8494118409594650624 1 631207613 631207613 25518 +-8503342882470019072 1 1367179645 1367179645 32017 +-8503573595507761152 1 2068018858 2068018858 NULL +-8507279516485566464 1 631711489 631711489 28064 +-8509547439040757760 1 -1749415887 -1749415887 -18581 +-8518060755719585792 1 -1100641049 -1100641049 17964 +-8518258741831680000 1 -809805200 -809805200 29502 +-8521578237232529408 1 -373034494 -373034494 -3602 +-8522878384019169280 1 633813435 633813435 6899 +-8523434203900674048 1 -590374062 -590374062 6306 +-8525212657458348032 1 -1280919769 -1280919769 -20100 +-8535957064499879936 1 -99205196 -99205196 -15866 +-8536369662934401024 1 447426619 447426619 12358 +-8543982423727128576 1 -607667405 -607667405 10382 +-8544299740525461504 1 -846450672 -846450672 17534 +-8545239748068941824 1 -897586947 -897586947 24439 +-8546758906409312256 1 -1236536142 -1236536142 -9278 +-8552393882631389184 1 1920863389 1920863389 21984 +-8555709701170552832 1 -1364322216 -1364322216 -9619 +-8559008501282832384 1 895945459 895945459 29365 +-8559252110266564608 1 259204652 259204652 -18090 +-8562524688907485184 1 1775355987 1775355987 -4364 +-8566856504746352640 1 2018442973 2018442973 -921 +-8566940231897874432 1 -1409508377 -1409508377 20307 +-8570933074545745920 1 -749042352 -749042352 6836 +-8572823448513445888 1 -101960322 -101960322 -19738 +-8572949572756774912 1 1787826883 1787826883 NULL +-8581765103969312768 1 -890374552 -890374552 -28098 +-8581979259158929408 1 -674478103 -674478103 15379 +-8584520406368493568 1 -19116270 -19116270 28656 +-8585134536083660800 1 -1196808950 -1196808950 8786 +-8585966098173870080 1 318631333 318631333 -16978 +-8593419958317056000 1 6266567 6266567 7057 +-8603817012434198528 1 1114521964 1114521964 11059 +-8604758220106014720 1 -1798573685 -1798573685 4475 +-8607195685207408640 1 -1111937842 -1111937842 -21648 +-8615168537390571520 1 1469775272 1469775272 -4539 +-8619303037130301440 1 -2074079977 -2074079977 10430 +-8623238306523824128 1 -1442424087 -1442424087 17373 +-8623965248051789824 1 1637295757 1637295757 15015 +-8632237187473088512 0 NULL NULL -12876 +-8649711322250362880 1 -500921094 -500921094 NULL +-8651641150831362048 1 -1533934649 -1533934649 -12809 +-8654433008222797824 1 -1728171376 -1728171376 30052 +-8654797319350927360 1 895763504 895763504 -1367 +-8658387566611996672 0 NULL NULL 6493 +-8659643752269242368 1 1204834275 1204834275 31370 +-8659692318743314432 1 25400543 25400543 -33 +-8660149447361404928 1 1317690178 1317690178 28301 +-8664374244449050624 1 1059212450 1059212450 -22919 +-8664806103426252800 1 964810954 964810954 -28536 +-8665218198816497664 1 -1031592590 -1031592590 NULL +-8665764757143658496 1 -45460011 -45460011 23725 +-8675661101615489024 1 -1918651448 -1918651448 -8857 +-8675892979328212992 1 1478365409 1478365409 6372 +-8683802826440105984 1 -1344287228 -1344287228 19636 +-8688153842294595584 1 -1741895392 -1741895392 -3206 +-8689606130068611072 1 488559595 488559595 NULL +-8694818694700048384 1 94220511 94220511 29011 +-8696162322976997376 1 1228837108 1228837108 -21117 +-8703026916864802816 1 -397683105 -397683105 -22582 +-8704234107608203264 1 -1318045616 -1318045616 24014 +-8705403811649355776 1 206121314 206121314 -29907 +-8710298418608619520 1 -1817938378 -1817938378 16664 +-8714995808835444736 1 206454818 206454818 24718 +-8719510423723155456 1 -327648289 -327648289 -19357 +-8730803262481580032 0 NULL NULL NULL +-8731068123910987776 1 -1434562279 -1434562279 12915 +-8746702976270385152 1 1767359228 1767359228 -24538 +-8754966081778565120 1 -125419186 -125419186 3251 +-8754992450211692544 1 1785455842 1785455842 7066 +-8756989568739835904 1 -158420748 -158420748 -13743 +-8760655406971863040 1 -1249011023 -1249011023 -9243 +-8763062627136864256 1 -454598288 -454598288 -9130 +-8768744394742235136 1 -726879427 -726879427 -26481 +-8782213262837530624 1 1565313938 1565313938 6743 +-8783777723063099392 1 877053605 877053605 -15431 +-8789178184387641344 1 -1045771991 -1045771991 NULL +-8797972842900307968 1 284646137 284646137 29992 +-8807361476639629312 0 NULL NULL -16218 +-8813211231120031744 1 1575300276 1575300276 27630 +-8831091081349758976 1 -1832606512 -1832606512 -21772 +-8832750849949892608 1 -66010816 -66010816 5947 +-8833019327569510400 1 -189393743 -189393743 1691 +-8835408234247168000 1 -938112972 -938112972 -26526 +-8836899523028312064 1 397255100 397255100 27046 +-8843859708698583040 1 2008211296 2008211296 -24194 +-8844949406948671488 1 315973457 315973457 -4953 +-8845239510002753536 1 -1358159222 -1358159222 -14537 +-8852770376039219200 1 311478497 311478497 7959 +-8853553406533894144 1 -1820436871 -1820436871 240 +-8856151919723003904 1 -575513309 -575513309 -25176 +-8856821118526734336 1 618321042 618321042 4233 +-8857335871148171264 1 1061043704 1061043704 31721 +-8858063395050110976 1 -1117019030 -1117019030 27340 +-8859107121649893376 1 -37876543 -37876543 -2118 +-8866442231663067136 1 -1079633326 -1079633326 26697 +-8870186814744420352 0 NULL NULL 29461 +-8870673219965001728 1 -1620148746 -1620148746 30824 +-8875546987176206336 1 414645489 414645489 16856 +-8877053610728161280 1 706823078 706823078 -6474 +-8877431933441327104 1 1650676897 1650676897 -22184 +-8879742387365429248 1 1912175355 1912175355 -13973 +-8881446757271846912 1 1224662770 1224662770 18857 +-8887058200926093312 1 -191704948 -191704948 -17916 +-8892963883085578240 1 -2087815643 -2087815643 NULL +-8896045754034978816 1 1392980712 1392980712 -21432 +-8914039133569400832 1 1332042427 1332042427 18827 +-8916987977485312000 1 -839176151 -839176151 NULL +-8922409715403112448 1 -536315467 -536315467 32567 +-8923529803981905920 1 1148500740 1148500740 -24178 +-8927968289860370432 1 1033836308 1033836308 20254 +-8930307926221807616 1 -966979668 -966979668 7258 +-8938849835283677184 1 1318606691 1318606691 -15299 +-8940944155843461120 1 -858439361 -858439361 -15526 +-8941201923743703040 0 NULL NULL 9127 +-8946656952763777024 1 -759911896 -759911896 NULL +-8948335470186373120 1 -1078397698 -1078397698 -15946 +-8959796625322680320 1 1318956413 1318956413 31509 +-8961059046745669632 1 1783034168 1783034168 150 +-8962547695651323904 1 1091736925 1091736925 NULL +-8965578088652095488 1 -1216166764 -1216166764 -22241 +-8989473881707921408 1 1310360849 1310360849 NULL +-8990843030306717696 1 -311437801 -311437801 -6283 +-8992599250893979648 1 1677494300 1677494300 -7850 +-8996954350906294272 1 -1769037737 -1769037737 28923 +-9002912355472736256 1 -561932449 -561932449 23417 +-9004892183139811328 1 -1949698319 -1949698319 3796 +-9008631121684832256 1 704038411 704038411 -23943 +-9012093603044245504 1 538766635 538766635 -19464 +-9013952631912325120 1 -1052493316 -1052493316 -15695 +-9014145341570203648 1 273256071 273256071 NULL +-9022154842129547264 1 1130043800 1130043800 3253 +-9032650742739836928 1 1102561039 1102561039 27028 +-9049720998034137088 1 1747664003 1747664003 17023 +-9051477157204770816 1 -1648991909 -1648991909 -15119 +-9058029636530003968 1 -1197602595 -1197602595 -11010 +-9066993118333706240 1 -425196209 -425196209 8488 +-9071565764086521856 1 2058640744 2058640744 -5593 +-9075302542655684608 1 -295186284 -295186284 -26087 +-9075486079396069376 1 -1805915233 -1805915233 6451 +-9078662294976061440 1 -235819331 -235819331 -22426 +-9079801920509001728 1 -705887590 -705887590 19350 +-9080568167841226752 1 906074599 906074599 24913 +-9080956291212132352 1 1330219997 1330219997 -9482 +-9084940280061485056 1 128430191 128430191 9177 +-9088239683374350336 1 -18917438 -18917438 -2993 +-9091113592821972992 1 1861276585 1861276585 -12295 +-9095689235523264512 1 1687784247 1687784247 10940 +-9101953184875757568 1 -1918847735 -1918847735 -16390 +-9102482277760983040 1 742866312 742866312 -10439 +-9105358806324035584 1 1679381813 1679381813 -21388 +-9105701280936501248 1 1109664665 1109664665 -15633 +-9109392978217484288 1 407098216 407098216 -16327 +-9117959922369060864 1 936133387 936133387 -11393 +-9126793997498957824 1 770574055 770574055 -10821 +-9136398397785948160 1 376076075 376076075 -22358 +-9142610685888192512 1 -387395264 -387395264 12271 +-9145593811310010368 1 -202409329 -202409329 NULL +-9148197394287779840 1 -1568536214 -1568536214 13247 +-9149719074367946752 1 234452496 234452496 14376 +-9157613004431998976 1 1362740312 1362740312 25683 +-9175038118837149696 1 -1701492480 -1701492480 -23241 +-9175279464813223936 1 2080412555 2080412555 2326 +-9178166810751909888 1 -1407817977 -1407817977 -14810 +-9187662685618348032 0 NULL NULL -20949 +-9189155542884474880 1 -1955545912 -1955545912 -1660 +-9203804401302323200 1 -671853199 -671853199 -5357 +-9203942396257984512 1 -1625800024 -1625800024 -22431 +-9206329156028112896 1 2084666529 2084666529 22588 +-9210275791460499456 1 601376532 601376532 9165 +-9213132862973829120 1 -1216206795 -1216206795 4948 +-9215144824304721920 1 -399643110 -399643110 -79 +-9218875542187065344 1 785382955 785382955 -4371 +-9219066990552760320 1 2090044777 2090044777 -15708 +1021 1 -1884780525 -1884780525 -22423 +1030 1 -300429552 -300429552 -17429 +1032 1 -1914210382 -1914210382 -8241 +1039 1 914062370 914062370 10261 +1046 1 -990781312 -990781312 NULL +1048 1 -249150336 -249150336 -30109 +1053 1 -1369302744 -1369302744 13491 +1055 1 371383749 371383749 -3103 +1058 1 -1497098905 -1497098905 -4550 +1065 1 1194089079 1194089079 5542 +1066 1 1767019352 1767019352 22150 +1074 1 161210995 161210995 16516 +1075 2 -534894953 2144365072 2160 +108 1 -835107230 -835107230 -5919 +1086 1 -1341627565 -1341627565 24776 +1093 0 NULL NULL NULL +1094 1 -359194591 -359194591 -23271 +1095 1 291866793 291866793 -28097 +1099 1 1390704286 1390704286 14408 +1115 1 -144862954 -144862954 NULL +112 1 -2147071655 -2147071655 8095 +1127 1 -423378447 -423378447 -1180 +1128 1 -932525608 -932525608 -2546 +1132 1 239078089 239078089 -9076 +1134 1 187718349 187718349 -8781 +1141 1 -540820650 -540820650 16858 +1142 1 1184001017 1184001017 -10015 +1145 1 669484010 669484010 20265 +1153 1 1646811064 1646811064 27758 +1157 1 590719541 590719541 67 +1158 1 990246086 990246086 -10972 +1165 2 477857533 1153089364 -41118 +1168 0 NULL NULL 21511 +1177 1 1182595271 1182595271 530 +1187 1 69110370 69110370 -25183 +1189 1 215508794 215508794 27636 +1198 1 -1857500489 -1857500489 -20329 +120 1 29680001 29680001 -28489 +1201 1 945911081 945911081 1773 +1217 1 -1802746460 -1802746460 6675 +1234 1 -1921909135 -1921909135 9447 +1243 1 1938788165 1938788165 -28374 +1247 1 -866304147 -866304147 -13238 +1252 1 30036142 30036142 19215 +1261 1 -343173797 -343173797 -13466 +1270 1 1969239701 1969239701 14180 +1280 1 991397535 991397535 -31765 +1282 1 -1140071443 -1140071443 -18151 +1286 1 -480058682 -480058682 -10781 +1287 1 -1362178985 -1362178985 4491 +1290 1 177837042 177837042 -7204 +1291 1 1398486099 1398486099 9110 +1299 1 765656980 765656980 -24682 +130 1 -2081501748 -2081501748 20183 +1307 1 882331889 882331889 -11015 +1312 1 742059797 742059797 101 +1316 1 997193329 997193329 -5897 +1321 1 731241198 731241198 -14652 +1337 1 -1948257321 -1948257321 23320 +1341 1 492120544 492120544 7197 +1342 1 1203482872 1203482872 18142 +1343 1 -217785690 -217785690 17164 +1345 1 -600315936 -600315936 -20262 +1346 1 -158233823 -158233823 -24801 +135 1 198017473 198017473 -6114 +1366 1 748358417 748358417 6080 +1368 2 -223311809 1650573576 41135 +1371 2 -2041825946 821316302 42813 +138 1 843282593 843282593 -7046 +1386 1 2081152819 2081152819 4939 +1398 1 955267058 955267058 -14445 +1409 1 865013617 865013617 -15389 +1422 1 -1402821064 -1402821064 NULL +1423 1 631954352 631954352 -13424 +1436 1 1765173148 1765173148 25118 +1439 1 531459992 531459992 14783 +1447 0 NULL NULL -950 +1450 1 740883263 740883263 -29171 +1454 0 NULL NULL 21904 +1458 1 -1001529082 -1001529082 7197 +1462 1 287239980 287239980 14286 +1466 1 574069547 574069547 -5267 +1470 1 1406029775 1406029775 -27871 +1477 1 -707228984 -707228984 17769 +1481 2 819875108 1022707418 -39852 +1489 1 766737781 766737781 -17697 +1493 1 557053197 557053197 -4501 +1495 1 -1222897252 -1222897252 21299 +1501 1 1081920048 1081920048 -21648 +1506 1 1893632113 1893632113 -27998 +1508 1 1632769786 1632769786 22366 +1509 2 1304812803 1920662116 -3309 +1518 1 824235855 824235855 -3360 +1520 0 NULL NULL 20391 +1521 1 -993029335 -993029335 -1443 +1524 1 -1851280202 -1851280202 6741 +1530 1 1934970004 1934970004 22013 +1537 2 -20660936 278601840 -6363 +154 2 -445353909 998793176 1960 +1541 1 -1430903652 -1430903652 -23853 +1542 0 NULL NULL 32324 +1545 1 564366133 564366133 -800 +1556 1 -1202975006 -1202975006 2295 +1559 1 -206177972 -206177972 20018 +1561 0 NULL NULL 30736 +1566 1 747122546 747122546 -23750 +1604 1 -2077771325 -2077771325 2677 +1606 1 -1901806083 -1901806083 -5259 +1608 1 142722637 142722637 -3257 +1613 1 -1422780798 -1422780798 23844 +1614 1 -296195507 -296195507 -19571 +1620 1 -1989378509 -1989378509 31374 +1638 1 92777932 92777932 -2287 +1641 0 NULL NULL 32640 +1643 1 1346627771 1346627771 -23109 +1648 1 -496870819 -496870819 -24591 +1651 1 -1575588203 -1575588203 -31335 +1667 1 -499533481 -499533481 9716 +1671 1 1504919241 1504919241 19276 +1674 1 1488440165 1488440165 -4142 +1676 1 -393723522 -393723522 -25033 +1678 1 -1104268719 -1104268719 -22163 +168 1 -53587991 -53587991 25931 +1681 1 929751599 929751599 13488 +169 1 -1759354458 -1759354458 16236 +1693 1 -1545572711 -1545572711 -2441 +1701 2 -648766606 1404346934 -7822 +1704 1 -605370177 -605370177 32309 +1719 2 -1477897348 1008698636 -13475 +1726 0 NULL NULL -4509 +1728 1 626251612 626251612 16105 +1745 1 368170021 368170021 32420 +1751 1 -667383951 -667383951 29288 +1752 1 -1538978853 -1538978853 -9094 +1769 1 805672638 805672638 30201 +1774 1 -1974777102 -1974777102 14773 +1775 1 1928365430 1928365430 -6564 +1777 1 1061638369 1061638369 3846 +1780 1 -71433796 -71433796 -9585 +1781 0 NULL NULL 22378 +1785 1 -524189419 -524189419 4319 +1786 1 -1009249550 -1009249550 -10258 +1788 1 -997463353 -997463353 NULL +1789 1 -1098379914 -1098379914 -4618 +1791 1 -1900369503 -1900369503 -25973 +1796 1 -1625062942 -1625062942 4397 +1806 1 -40284975 -40284975 NULL +181 1 1742536084 1742536084 31651 +1811 1 -922200749 -922200749 10278 +1813 1 -738157651 -738157651 -13410 +1826 1 505902480 505902480 -13623 +1827 1 -956668825 -956668825 12836 +1835 1 1768399622 1768399622 NULL +1837 1 290921475 290921475 26749 +1845 1 -909024258 -909024258 -2113 +1846 1 418182899 418182899 19513 +1856 2 -1873004551 44009986 -44928 +1862 1 674547678 674547678 -22215 +1863 1 -1017027298 -1017027298 -3318 +1864 0 NULL NULL NULL +1866 1 -400501472 -400501472 -8706 +187 1 2133950868 2133950868 10161 +1870 1 25644069 25644069 11572 +188 1 316438994 316438994 11451 +1880 1 1293876597 1293876597 -32383 +1890 1 -1660344634 -1660344634 19568 +1892 1 596595603 596595603 26298 +1899 1 734267314 734267314 30457 +19 2 -1900894010 -436386350 8094 +1906 1 1070989126 1070989126 -13 +1910 1 1978200605 1978200605 -28244 +1914 2 -1462331586 -1146055387 -21833 +1926 1 -490337498 -490337498 -16722 +1937 1 -987995271 -987995271 12954 +1940 1 950997304 950997304 -31365 +1941 1 -54793232 -54793232 -31182 +1948 3 -1446132523 735732067 -13403 +1955 1 -316678117 -316678117 7537 +1965 1 1173098061 1173098061 -13309 +1972 1 -1404921781 -1404921781 3694 +1981 1 -980869630 -980869630 6875 +1983 1 -1954890941 -1954890941 -12085 +1987 1 65956045 65956045 -6219 +1990 1 1050809633 1050809633 30090 +1995 1 1012230484 1012230484 -27401 +1999 1 -9958400 -9958400 8721 +2001 1 217476429 217476429 31795 +2002 1 1535954353 1535954353 -13847 +2004 1 1464703053 1464703053 -6073 +2009 1 -1471147786 -1471147786 -28519 +2011 1 33234633 33234633 -23671 +2013 1 1142098316 1142098316 17581 +2016 1 135341845 135341845 13078 +2017 1 44628821 44628821 -12111 +2020 2 -244778184 37730738 -7949 +2025 1 989475408 989475408 -16477 +2026 1 -1454941039 -1454941039 -9883 +2029 1 546555204 546555204 NULL +203 1 2070969353 2070969353 24819 +204 1 2018249426 2018249426 11317 +2046 1 363981930 363981930 4809 +2056 1 1941527322 1941527322 21162 +2067 0 NULL NULL 28003 +2072 1 -1652600376 -1652600376 13138 +2073 1 -856843296 -856843296 29023 +2085 1 -1179668872 -1179668872 6893 +2089 1 945683736 945683736 20014 +2092 1 1678261510 1678261510 -23540 +2105 1 1550112473 1550112473 28641 +2106 1 1597303154 1597303154 -22641 +2108 1 977292235 977292235 -10687 +213 2 -1081328752 -361944328 9690 +2131 1 -464804906 -464804906 -29895 +2138 1 -1048181367 -1048181367 15070 +2140 1 -1319686435 -1319686435 25603 +2144 1 117620760 117620760 12779 +2155 1 1126157283 1126157283 12291 +2177 1 -1960344717 -1960344717 NULL +2179 1 1394370866 1394370866 6651 +2180 1 -120704505 -120704505 -19413 +2183 1 -1947868215 -1947868215 -9196 +2186 1 -1655396452 -1655396452 -24095 +2187 1 -906986958 -906986958 26625 +2189 0 NULL NULL 26880 +2193 2 -2037628236 -598552521 7939 +2194 1 -853967587 -853967587 29892 +22 1 176792505 176792505 -22937 +2201 1 1425362689 1425362689 -26060 +2205 1 2013376408 2013376408 8929 +2214 1 1602631923 1602631923 20784 +2217 1 479566810 479566810 -25469 +2218 0 NULL NULL 16312 +2223 1 1605596441 1605596441 -6806 +2227 1 1054864168 1054864168 -26304 +2229 1 516843026 516843026 -32455 +2232 1 277582670 277582670 28606 +2241 1 810157660 810157660 -28501 +2244 1 -1699049982 -1699049982 19739 +2255 1 -1561738723 -1561738723 5014 +2262 1 1283898734 1283898734 25967 +2264 1 -425103007 -425103007 5639 +2270 1 -1429346144 -1429346144 4203 +2274 1 -1676261015 -1676261015 7474 +2277 1 -1447263708 -1447263708 26232 +2279 1 -1412187081 -1412187081 -22534 +228 1 167432368 167432368 -18533 +2283 1 530274409 530274409 11929 +2285 2 340929437 1533817551 -28395 +2295 1 -1914072976 -1914072976 NULL +2306 1 -604362582 -604362582 6900 +2320 1 -1919939921 -1919939921 32231 +2323 1 -2028355450 -2028355450 -4772 +2325 2 1471913583 1645067708 -8255 +2335 1 1281277970 1281277970 999 +2341 1 1951869763 1951869763 30376 +2348 1 -40407627 -40407627 -12880 +2358 1 -370798230 -370798230 -7058 +236 1 514833409 514833409 -11129 +2373 1 -1602792666 -1602792666 6163 +238 1 713031549 713031549 32348 +2386 1 930008274 930008274 12722 +2393 2 901084309 1852725744 28413 +2398 1 1489169773 1489169773 -26361 +2400 1 663222148 663222148 -11848 +2410 0 NULL NULL -23638 +2412 2 -1749841790 -887663189 31057 +2420 1 480849725 480849725 31706 +2426 1 62293025 62293025 -21574 +2434 1 1621606222 1621606222 9028 +244 1 860708524 860708524 12471 +2461 1 -1668974292 -1668974292 -13525 +2463 3 -655118881 2031604236 5128 +2465 1 -1819075185 -1819075185 6490 +2469 1 524808 524808 -14423 +2475 1 -1116100266 -1116100266 1100 +2476 1 -1210261177 -1210261177 -32755 +2485 2 -379643543 1594107168 -4037 +2487 0 NULL NULL -7873 +2492 1 -270683864 -270683864 21415 +2494 1 -1830870295 -1830870295 27852 +2502 1 -336625622 -336625622 1077 +2506 1 776606164 776606164 9158 +2509 1 693331761 693331761 -31537 +2512 1 -1164833898 -1164833898 17680 +2514 1 407233168 407233168 -26054 +2515 1 -601946913 -601946913 23850 +2517 1 198624903 198624903 -28784 +2524 1 -1081766449 -1081766449 10646 +2533 1 672266669 672266669 -17056 +2539 1 1090344463 1090344463 6892 +2540 1 1103878879 1103878879 8407 +255 1 -1106469823 -1106469823 -25939 +2551 1 -1762037754 -1762037754 -3286 +2553 1 1112783661 1112783661 -19479 +2560 2 -1946023520 -1493282775 23076 +2563 1 -1141652793 -1141652793 -1613 +2565 1 -1302592941 -1302592941 -9378 +2569 1 -837503491 -837503491 -17873 +2579 1 1640445482 1640445482 8410 +2580 1 1933545427 1933545427 -31881 +2587 1 -1125605439 -1125605439 -9148 +259 1 -922875124 -922875124 -30515 +2599 1 -1903090602 -1903090602 5539 +2607 0 NULL NULL NULL +2608 1 335359004 335359004 15417 +2619 2 -2019287179 1895751360 17341 +2625 1 -1897998366 -1897998366 24366 +2626 1 1620529246 1620529246 -15779 +263 2 1094778643 1807358029 -11048 +2637 1 1522208504 1522208504 -26180 +2647 1 92834720 92834720 -1223 +2649 1 659343542 659343542 21102 +2662 1 209430502 209430502 -1749 +2663 1 43983130 43983130 -16820 +2675 1 1305668933 1305668933 17014 +268 2 -203416622 860658464 -10972 +2680 1 825977391 825977391 -9845 +2682 1 -675125724 -675125724 -28867 +2688 1 -1249134513 -1249134513 -19493 +2689 1 -1343327 -1343327 6015 +2692 0 NULL NULL -31596 +2700 1 -123529324 -123529324 25454 +2712 1 -901778330 -901778330 -28146 +2714 1 1284956108 1284956108 -15341 +2715 2 962712814 1569269522 -51675 +2719 1 1516149502 1516149502 9863 +2724 1 922373046 922373046 -18269 +2725 1 257821327 257821327 11067 +2735 1 1307148254 1307148254 29834 +2745 1 1134416796 1134416796 -2410 +275 1 1517488324 1517488324 23031 +2752 1 962091264 962091264 -21268 +2762 1 314232856 314232856 -24696 +2772 1 1835749815 1835749815 -16290 +2776 1 -1801684055 -1801684055 -6046 +2786 2 -2117280385 343362793 25889 +279 1 -1709246310 -1709246310 29507 +2790 1 686081268 686081268 21792 +2791 1 -714594143 -714594143 -25692 +2803 3 493977568 923980398 2772 +2805 1 -295751373 -295751373 14041 +281 1 -42151403 -42151403 -5635 +2810 1 1844415080 1844415080 NULL +2811 1 -170643477 -170643477 22075 +2816 1 -912429611 -912429611 6226 +2821 1 829055499 829055499 1911 +2824 1 -1679120527 -1679120527 30926 +2835 1 144428297 144428297 -32688 +2842 1 889772203 889772203 5469 +2843 2 -1621721177 -887790938 6109 +2846 1 -121162464 -121162464 -27667 +2847 1 1634441052 1634441052 NULL +2848 1 -985817478 -985817478 20270 +2850 1 1618123796 1618123796 32669 +2855 2 -1770250407 1756592797 -57008 +2862 1 1956887369 1956887369 -12071 +2878 1 -906545548 -906545548 -3885 +2886 1 84231802 84231802 -32296 +289 1 -1144976744 -1144976744 -2828 +2897 2 -47662800 1211873318 13666 +2900 1 2114363167 2114363167 -26461 +2903 1 1552351592 1552351592 -14593 +2905 1 -1232183416 -1232183416 -32491 +2911 1 1483580941 1483580941 23564 +2915 1 -470798506 -470798506 20124 +2919 1 1002132158 1002132158 27039 +2933 2 -1674623501 -1484787952 12090 +2938 1 -2032576637 -2032576637 -24561 +294 1 -1817096156 -1817096156 -8927 +2941 1 -1862095575 -1862095575 11050 +2942 1 1638471881 1638471881 -26367 +296 2 -1348149160 597657990 11864 +2962 1 1042237722 1042237722 -28299 +2968 1 1556919269 1556919269 25420 +2971 1 -373541958 -373541958 4725 +2977 1 -2007662579 -2007662579 -16129 +2979 1 131031898 131031898 30056 +2984 1 1440427914 1440427914 -16815 +2986 1 -933324607 -933324607 18508 +2988 1 492639283 492639283 24600 +2991 0 NULL NULL 6451 +3002 1 -1538558250 -1538558250 2376 +3006 1 1328225044 1328225044 364 +301 1 -1924909143 -1924909143 -24092 +302 1 -1730740504 -1730740504 -31395 +3021 2 -360113158 177294487 31545 +3024 1 -891543038 -891543038 23881 +3029 1 -1198036877 -1198036877 -4676 +3031 0 NULL NULL 25683 +3036 1 -449333854 -449333854 22111 +3043 1 692666133 692666133 325 +3054 1 -973128166 -973128166 32671 +3055 1 -1198465530 -1198465530 -23194 +3058 1 -1144920802 -1144920802 21976 +3059 1 1386071996 1386071996 -11247 +3060 2 -2122509553 818313200 8398 +3067 1 1256676429 1256676429 2085 +3071 1 1129173487 1129173487 7076 +3073 1 722737062 722737062 9572 +3079 1 -882028850 -882028850 5909 +3083 1 -385247581 -385247581 6484 +3084 1 1333148555 1333148555 15532 +3089 1 584084934 584084934 -18646 +3094 1 1335803002 1335803002 -28840 +3103 1 -1622653291 -1622653291 -11956 +311 1 -1850492820 -1850492820 18430 +3111 1 -1299159155 -1299159155 -27295 +3118 0 NULL NULL 725 +3119 1 673904922 673904922 -17995 +3144 1 -758231588 -758231588 28899 +3147 1 1102069050 1102069050 -7065 +3159 2 -78240945 1127080164 45508 +3163 1 26270580 26270580 8461 +3174 1 -1871446009 -1871446009 -24248 +3183 1 1363459426 1363459426 -24763 +3190 1 297577612 297577612 NULL +3197 1 976870621 976870621 21168 +3199 1 -2086352100 -2086352100 -6306 +320 1 1198172036 1198172036 19001 +3203 1 -491377296 -491377296 -15576 +3206 1 -733756717 -733756717 -10392 +3208 1 -211669740 -211669740 -5907 +3212 1 900992177 900992177 19458 +3213 1 -1171326281 -1171326281 -31163 +3231 1 -817383093 -817383093 -705 +3232 1 1434588588 1434588588 3270 +3235 1 -287400633 -287400633 -8003 +3244 1 1303632852 1303632852 3354 +3245 1 1385883394 1385883394 18240 +3248 1 1202720813 1202720813 29434 +3249 1 206942178 206942178 NULL +3253 1 -1218871391 -1218871391 22786 +3255 1 -1212433954 -1212433954 -9368 +3263 1 -419335927 -419335927 NULL +3286 1 -1078214868 -1078214868 31688 +3300 1 1743696703 1743696703 -22858 +3307 1 -1128317466 -1128317466 -5240 +3322 1 -1544877665 -1544877665 29775 +3333 1 -462541618 -462541618 NULL +3352 1 -1621814212 -1621814212 -8532 +336 1 1376818328 1376818328 23910 +3365 1 1712411993 1712411993 -2734 +3366 1 -606214770 -606214770 21440 +3397 1 -2066134281 -2066134281 -20787 +34 1 1969650228 1969650228 7988 +3401 1 -2138343289 -2138343289 -6735 +3407 0 NULL NULL -20835 +3409 1 -337586880 -337586880 NULL +341 1 278643258 278643258 5516 +3418 2 -940504641 786565385 -8267 +342 1 -884796655 -884796655 -32403 +3421 1 -1878572820 -1878572820 -10533 +3430 1 -395499919 -395499919 29515 +3443 1 -1006768637 -1006768637 -4507 +3446 1 440393309 440393309 -11081 +345 0 NULL NULL NULL +3456 0 NULL NULL NULL +346 2 -1880877824 -938756287 -42984 +3460 1 1204325852 1204325852 5736 +3462 3 -1716506227 511836073 -31348 +3467 2 -1134786190 596802082 185 +347 1 -414207254 -414207254 5683 +3472 1 868717604 868717604 -12628 +3478 1 1772545157 1772545157 18675 +3493 1 -890552359 -890552359 -26666 +350 1 330302407 330302407 -13144 +3507 1 2032271149 2032271149 -21180 +3510 1 197056787 197056787 -3190 +3512 1 636901402 636901402 31396 +3533 1 1076088102 1076088102 NULL +3534 0 NULL NULL -26284 +3541 1 -996953616 -996953616 NULL +3542 1 459269456 459269456 -15053 +355 1 1258721737 1258721737 -24884 +3554 1 48554395 48554395 NULL +3555 2 41063276 458190500 -7242 +3563 1 1332181668 1332181668 -7533 +3566 1 -519978947 -519978947 -3883 +3567 1 410340192 410340192 11238 +3568 0 NULL NULL -10516 +3579 1 -1426893312 -1426893312 29828 +3588 2 696229550 850625480 48095 +3599 1 2069258195 2069258195 -25112 +3606 1 -1032306832 -1032306832 -11286 +3608 1 773730574 773730574 21814 +3609 1 -1380191654 -1380191654 10457 +361 1 -434747475 -434747475 24663 +3613 1 1191238870 1191238870 -25531 +3622 2 -1583445177 2057486961 -7988 +3625 1 -1656822229 -1656822229 -1433 +3630 1 693876030 693876030 27981 +3637 1 929560791 929560791 -20411 +364 1 1336365018 1336365018 4138 +3648 1 1142481557 1142481557 -17502 +3663 1 -886741158 -886741158 -1900 +3664 1 -186600427 -186600427 -10247 +367 1 -1324624386 -1324624386 22505 +3672 1 1825828852 1825828852 -27707 +3673 1 -362603422 -362603422 -10629 +3677 1 470575409 470575409 18190 +3680 1 1124269631 1124269631 -9614 +3682 1 -1718163874 -1718163874 -1510 +3690 1 1500437122 1500437122 7678 +3691 1 -664111469 -664111469 3714 +3701 1 760466914 760466914 -4059 +3702 1 -1423467446 -1423467446 4416 +3703 1 1796950944 1796950944 32096 +3707 1 1377359511 1377359511 1387 +3722 1 -1322736153 -1322736153 -5283 +3724 1 1625751062 1625751062 -7323 +3725 2 -2119539915 1911834442 26932 +3728 2 -938342473 -800799595 -45459 +3739 1 -192181579 -192181579 17242 +3747 1 1001732850 1001732850 16062 +3749 1 1027147837 1027147837 18482 +375 1 -1754347372 -1754347372 14493 +3755 1 -7929246 -7929246 NULL +3763 1 -679230165 -679230165 -909 +3764 1 -2027812975 -2027812975 27922 +3769 1 -1431196400 -1431196400 -7531 +3770 2 -1727003541 -1627366321 29421 +378 1 -1270523286 -1270523286 -20876 +3781 2 -161884324 141492068 -36249 +3789 1 -139448716 -139448716 -21281 +379 1 1625699061 1625699061 -2518 +3810 1 -1043413503 -1043413503 -30534 +3812 1 -870900240 -870900240 -31793 +3823 1 1563120121 1563120121 -32541 +3824 1 1372224352 1372224352 -260 +383 2 -191434898 1063524922 -2585 +3830 1 1443426396 1443426396 -31551 +3835 1 133276416 133276416 -3540 +3841 1 -901079162 -901079162 8466 +3848 1 1436480682 1436480682 22594 +3858 1 1925283040 1925283040 -5435 +3860 1 -423945469 -423945469 31892 +3866 2 -88576126 436093771 -7932 +3874 1 -1603071732 -1603071732 15589 +3879 1 461680901 461680901 -30818 +388 1 -66112513 -66112513 -6933 +3887 1 476919973 476919973 24715 +3901 1 -1909635960 -1909635960 -27139 +3904 1 1473503196 1473503196 -20532 +3907 1 -373038706 -373038706 -13474 +391 1 1107258026 1107258026 -9375 +3910 0 NULL NULL 26288 +3911 1 -1283465451 -1283465451 -14055 +3913 1 1506907734 1506907734 -23852 +392 1 1664736741 1664736741 -13904 +3932 1 2145269593 2145269593 -31707 +3940 1 923353533 923353533 -7024 +3941 1 -734921821 -734921821 7654 +3945 1 -1758125445 -1758125445 3891 +3946 1 523289079 523289079 8727 +3949 1 1797164732 1797164732 -28646 +3958 1 65172363 65172363 NULL +3960 1 1509573831 1509573831 -19213 +3961 1 -1955647385 -1955647385 -302 +3962 0 NULL NULL -27035 +3965 1 771827308 771827308 -10452 +3974 2 -253084551 670667262 22079 +3980 1 -564495517 -564495517 -6334 +3990 1 -1392487784 -1392487784 -15393 +4018 1 -396852483 -396852483 -12896 +4020 1 -1447140800 -1447140800 20052 +4024 1 -202035134 -202035134 -25412 +4030 1 -216495498 -216495498 -21693 +4037 1 1003667927 1003667927 2335 +4051 1 1052255272 1052255272 12642 +4054 1 1998185704 1998185704 -733 +4056 1 -1516259168 -1516259168 -23527 +4075 0 NULL NULL -18547 +4078 1 727802564 727802564 16437 +4088 1 947846543 947846543 5972 +41 1 -203911033 -203911033 31740 +412 2 -505879576 2144454927 -26499 +417 1 152891873 152891873 NULL +425 1 1336194583 1336194583 32584 +443 1 596242714 596242714 -11929 +454 1 -1227085134 -1227085134 17107 +455 1 1159353899 1159353899 -254 +462 1 1677444379 1677444379 -7871 +470 1 -181523892 -181523892 -7846 +471 1 -207899360 -207899360 -30730 +481 1 536235636 536235636 NULL +482 1 765084282 765084282 NULL +485 1 874824958 874824958 11979 +489 1 -928013434 -928013434 -21009 +49 1 1673218677 1673218677 -20729 +490 1 1229172951 1229172951 -2617 +491 1 -201554470 -201554470 4747 +5 1 -1063673827 -1063673827 -18933 +500 1 1216016081 1216016081 NULL +501 2 -1469463456 715333063 36766 +504 1 851975276 851975276 2671 +522 1 -853606287 -853606287 22074 +523 1 149701884 149701884 15923 +524 1 -1326025787 -1326025787 -29218 +530 1 -1851680302 -1851680302 -22558 +535 1 888896424 888896424 NULL +579 1 -1804244259 -1804244259 3009 +583 1 -1554325042 -1554325042 26859 +584 1 -2017279089 -2017279089 -24305 +586 1 -310343273 -310343273 5011 +587 1 1485934602 1485934602 -4799 +590 1 -186764959 -186764959 -16247 +597 1 1577999613 1577999613 -9584 +601 1 -592568201 -592568201 17086 +612 1 1131663263 1131663263 -7564 +615 1 2097519027 2097519027 23956 +618 1 -412333994 -412333994 32063 +65 1 919363072 919363072 -8685 +650 1 1222217404 1222217404 -6494 +658 1 -1254129998 -1254129998 32210 +66 1 2013444562 2013444562 -32498 +661 2 -407089271 1045719941 26557 +663 1 -1261099087 -1261099087 -4209 +664 1 899810881 899810881 24019 +677 1 -1038565721 -1038565721 -3449 +68 1 879290165 879290165 -4169 +681 1 -893863493 -893863493 -22701 +687 1 1888675011 1888675011 32124 +688 0 NULL NULL 16764 +690 1 -1112062809 -1112062809 NULL +691 1 -1156193121 -1156193121 25636 +6923604860394528768 1 -1095938490 -1095938490 -13325 +6924820982050758656 1 -1709117770 -1709117770 26324 +6926925215281774592 1 987734049 987734049 7826 +6927260280037097472 1 1668094749 1668094749 15578 +6928080429732536320 1 1300798829 1300798829 -17840 +6933001829416034304 1 2089198703 2089198703 -16998 +6933451028794925056 1 1776456512 1776456512 -16367 +6933731240564056064 1 780859673 780859673 18910 +6934570741217755136 1 491758252 491758252 -17642 +694 1 -2015780444 -2015780444 NULL +6947488599548215296 1 1141595012 1141595012 15279 +695 1 -521886983 -521886983 17132 +6960137166475911168 1 -558456218 -558456218 -11769 +6962726713896484864 1 2051470532 2051470532 -4923 +6963217546192322560 1 -1340213051 -1340213051 10083 +6964585306125008896 1 2146312499 2146312499 10544 +6967631925774639104 1 373031319 373031319 NULL +6969599299897163776 1 -2042831105 -2042831105 -5135 +6974475559697768448 1 1493555718 1493555718 -1725 +6982145326341423104 1 -941433219 -941433219 -27049 +6987889924212203520 1 -2053551539 -2053551539 25197 +6991316084916879360 1 -1345085327 -1345085327 20655 +6996686091335884800 1 -1738775004 -1738775004 -29442 +7006803044329021440 1 1614297403 1614297403 -398 +7013693841855774720 1 656187584 656187584 26158 +7014537632150224896 1 -44426049 -44426049 -4451 +7017956982081404928 1 -828724467 -828724467 -244 +7022349041913978880 1 -1096013673 -1096013673 505 +7027529814236192768 1 -1988508336 -1988508336 -4804 +7031339012080549888 1 1182390248 1182390248 -696 +7039820685967343616 1 -483740394 -483740394 -3517 +7045967493826387968 1 -1669227632 -1669227632 7066 +7049773031131283456 1 814544198 814544198 -4726 +7052226236896256000 1 1119976718 1119976718 -19270 +7054271419461812224 1 -1266138408 -1266138408 -12422 +7054938591408996352 1 -352146259 -352146259 -23137 +7060236714847412224 1 -1858443953 -1858443953 552 +7061498706968428544 1 -290558484 -290558484 29999 +7061809776248545280 1 -469870330 -469870330 28413 +7062382339142156288 1 536876888 536876888 -10513 +7062605127422894080 1 -1614194712 -1614194712 NULL +7065344324692443136 1 -1881263242 -1881263242 -18672 +7068517339681259520 1 -1871209811 -1871209811 -24186 +7069729473166090240 0 NULL NULL -20517 +707 1 1343581455 1343581455 22320 +7077311975029555200 1 1103797891 1103797891 20348 +7078641038157643776 0 NULL NULL -13499 +7080269176324218880 1 -337073639 -337073639 -19374 +7084659344078970880 1 963854010 963854010 22655 +7086206629592252416 1 -1106685577 -1106685577 21418 +7091300332052062208 0 NULL NULL 13145 +7099005292698550272 1 917891418 917891418 -10874 +71 1 -20639382 -20639382 NULL +7107604675626008576 1 1949494660 1949494660 11120 +7125231541858205696 1 -2111312205 -2111312205 -7467 +7128222874437238784 1 -283378057 -283378057 29171 +7130159794259353600 1 -837506172 -837506172 4104 +7130306447560826880 1 77063155 77063155 -7715 +7149417430082027520 1 -1352545619 -1352545619 -22915 +7153922334283776000 0 NULL NULL -17426 +7157247449513484288 1 -36038293 -36038293 NULL +7164349895861829632 1 -1153978907 -1153978907 3316 +7165364563962191872 1 -1272838092 -1272838092 -24518 +7166263463731421184 1 -1838281337 -1838281337 -15578 +7175638927948562432 1 596280431 596280431 30532 +7186401810812059648 1 1430614653 1430614653 8243 +7195454019231834112 1 -1419573027 -1419573027 25777 +7198687580227043328 1 563507584 563507584 -20192 +7199539820886958080 0 NULL NULL NULL +7204802700490858496 1 -1719427168 -1719427168 15176 +7210160489915236352 1 -1353470095 -1353470095 -12755 +7212016545671348224 1 1309976380 1309976380 NULL +7212090742612467712 1 -1067083033 -1067083033 5549 +7217123582035116032 1 -90029636 -90029636 -3165 +7220131672176058368 1 1017953606 1017953606 -25780 +7220581538170413056 1 615661052 615661052 21402 +7223569671814987776 1 -1004204053 -1004204053 -14973 +7226360892091416576 1 -935723237 -935723237 NULL +7229607057201127424 1 -1818380492 -1818380492 NULL +723 1 1616782308 1616782308 -13972 +7231399302953377792 1 1990792684 1990792684 21665 +7232273749940838400 1 -1231821948 -1231821948 -3373 +7235109456886816768 1 -2098078720 -2098078720 26181 +7237310132329488384 1 -1061859761 -1061859761 15011 +7238339720750948352 1 -1770229099 -1770229099 -12193 +724 1 -616724730 -616724730 -20663 +7242751359672631296 1 -2016985611 -2016985611 -31659 +7249443195032985600 1 -51612681 -51612681 7180 +7250237407877382144 1 -772236518 -772236518 8918 +7254710367022645248 1 1911809937 1911809937 14741 +7255302164215013376 1 1281159709 1281159709 -5118 +7259955893466931200 0 NULL NULL 21509 +7260908278294560768 1 826519029 826519029 -23250 +7265141874315517952 1 -571587579 -571587579 26910 +7266437490436341760 1 177391521 177391521 22870 +7271786885641666560 1 936752497 936752497 -19291 +7271887863395459072 1 -94709066 -94709066 -21708 +7274777328897802240 1 482977302 482977302 32611 +7291432593139507200 1 1570238232 1570238232 21529 +7295502697317097472 1 210728566 210728566 -28906 +7295926343524163584 1 1182646662 1182646662 -28366 +7296164580491075584 1 1412102605 1412102605 -797 +7299197687217856512 1 172075892 172075892 -12564 +73 1 488014426 488014426 -3405 +7304839835188609024 1 1961954939 1961954939 -25417 +7308289763456000000 1 -1423477356 -1423477356 -1335 +7309156463509061632 1 1304431147 1304431147 1211 +7310869618402910208 1 -359943425 -359943425 -16301 +7319711402123149312 1 1036391201 1036391201 31125 +7333512171174223872 1 -332125121 -332125121 -24885 +7339426767877390336 1 538268118 538268118 19302 +7343171468838567936 1 879289168 879289168 4032 +7344029858387820544 1 -1669848306 -1669848306 12263 +7345991518378442752 1 849859032 849859032 10916 +7347732772348870656 1 -1800413845 -1800413845 -670 +7348598907182800896 1 -1940205653 -1940205653 12411 +735 1 115111911 115111911 6240 +7354813692542304256 1 1426152053 1426152053 -11232 +7359004378440146944 1 1082837515 1082837515 11811 +736 1 -1183469360 -1183469360 -31514 +7368920486374989824 1 -1822850051 -1822850051 -15064 +7370078518278397952 1 -215703544 -215703544 -27284 +7370803940448305152 1 -533281137 -533281137 25621 +7375521127126089728 1 -688296901 -688296901 NULL +7376467688511455232 1 -348628614 -348628614 -6611 +7378993334503694336 1 1870464222 1870464222 -24911 +738 1 -453739759 -453739759 -14597 +7381659098423926784 1 867587289 867587289 22463 +7384150968511315968 1 1447462863 1447462863 NULL +7386087924003676160 1 2038381675 2038381675 7603 +7391208370547269632 1 -743680989 -743680989 -22217 +7393308503950548992 1 -849551464 -849551464 4400 +7394967727502467072 1 -1983567458 -1983567458 -23672 +7401968422230032384 1 -504529358 -504529358 14021 +7410096605330227200 1 1987336880 1987336880 -7948 +7410872053689794560 1 -916344293 -916344293 -15115 +7411793502161182720 1 -177025818 -177025818 -32000 +7412924364686458880 1 1817671655 1817671655 12674 +7414865343000322048 1 -829717122 -829717122 15626 +7418271723644403712 1 1202593021 1202593021 24768 +743 1 1004241194 1004241194 -10277 +7432428551399669760 1 -805288503 -805288503 -9171 +7432998950057975808 1 -434656160 -434656160 -24336 +7436133434239229952 1 203688965 203688965 -6874 +7440265908266827776 1 -1425942083 -1425942083 -6396 +7450416810848313344 1 1393262450 1393262450 29498 +7452756603516190720 1 -2009569943 -2009569943 -11008 +7454442625055145984 1 -267554590 -267554590 21377 +7454632396542074880 1 859140926 859140926 4749 +7461153404961128448 1 -23865350 -23865350 -17166 +7471208109437304832 1 -1603374745 -1603374745 18346 +7473537548003352576 1 -1439424023 -1439424023 1350 +7486884806277611520 1 1516236846 1516236846 5190 +7487338208419823616 1 1974939899 1974939899 5445 +7487538600082554880 1 2068538934 2068538934 -19330 +7490717730239250432 1 -1829691116 -1829691116 -3219 +7491898395977523200 1 1265528735 1265528735 -12811 +7492436934952574976 0 NULL NULL 20179 +7497276415392407552 1 1543611951 1543611951 -21805 +7497306924248834048 1 550594651 550594651 10807 +7500716020874674176 1 -1953605752 -1953605752 20243 +7514552840617558016 1 334208532 334208532 26338 +7517159036469575680 1 -1437126017 -1437126017 7697 +7524958388842078208 1 -664856187 -664856187 -7027 +7528074274555305984 1 550186724 550186724 27999 +7528211148397944832 1 -512198016 -512198016 -17944 +7534042483076857856 1 1645753684 1645753684 -21662 +7534145866886782976 1 -532755480 -532755480 26155 +7534549597202194432 1 2044130430 2044130430 -30163 +7545689659010949120 1 -1380678829 -1380678829 6756 +7548958830580563968 1 1836499981 1836499981 6913 +7549858023389003776 0 NULL NULL -13226 +7555301305375858688 1 1916363472 1916363472 2652 +7566273236152721408 1 881673558 881673558 12814 +7569249672628789248 1 -1952235832 -1952235832 -28689 +7570474972934488064 1 -432218419 -432218419 28118 +7573530789362262016 0 NULL NULL -12626 +7575087487730196480 1 1421779455 1421779455 -30020 +7581052107944361984 1 1493152791 1493152791 -15538 +7581614118458335232 1 -1129489281 -1129489281 -2421 +7584007864107778048 1 1410516523 1410516523 -22910 +7592440105065308160 0 NULL NULL -13713 +7593521922173419520 1 1260480653 1260480653 20023 +7596563216912211968 1 605946758 605946758 31242 +7599019810193211392 1 -2112149052 -2112149052 -11528 +7608447395949109248 1 882762933 882762933 1356 +7614435638888210432 1 735600165 735600165 17129 +7620183559667081216 1 -1967660827 -1967660827 15688 +7621013099259527168 1 -553349593 -553349593 -6927 +7625728883085025280 1 -1699044525 -1699044525 28558 +7626715182847090688 1 1905812339 1905812339 7153 +763 1 -1933374662 -1933374662 -408 +7637152193832886272 1 1880017800 1880017800 20036 +7647481735646363648 1 1164895226 1164895226 -15024 +7648729477297987584 0 NULL NULL -28551 +7652123583449161728 1 472901914 472901914 -1679 +7659279803863146496 1 1541249928 1541249928 -9609 +7662037650719850496 1 -175727228 -175727228 820 +7675009476762918912 1 522895626 522895626 -12709 +7678790769408172032 1 -1313618168 -1313618168 -19681 +7682327310082531328 1 879500678 879500678 30154 +7686992843032010752 1 -897622427 -897622427 14144 +7689489436826804224 1 -909127123 -909127123 20884 +7690986322714066944 1 -2124994385 -2124994385 276 +7691062622443044864 1 1516165279 1516165279 -17531 +7696737688942567424 1 -269702086 -269702086 20059 +7697541332524376064 1 -1070951602 -1070951602 -6950 +7700734109530767360 1 194754262 194754262 30199 +7701723309715685376 1 -1831957182 -1831957182 14261 +7705445437881278464 1 527598540 527598540 3374 +7710447533880614912 1 -583908704 -583908704 -11158 +7718825401976684544 1 -1226425562 -1226425562 10761 +7720187583697502208 1 -1366059787 -1366059787 22837 +7731443941834678272 1 -1092872261 -1092872261 31948 +7735566678126616576 1 1626868156 1626868156 -4819 +774 1 449788961 449788961 -28736 +7741854854673367040 1 -1743938290 -1743938290 27830 +7746402369011277824 1 -1735287250 -1735287250 -30748 +7747874976739016704 1 315055746 315055746 -11384 +7748799008146366464 1 -540401598 -540401598 6074 +7752740515534422016 1 1851654062 1851654062 28447 +7753359568986636288 1 -816661030 -816661030 23910 +7753882935005880320 1 1190302173 1190302173 -14888 +7761834341179375616 1 1273877405 1273877405 -30360 +7762823913046556672 1 1198701102 1198701102 16767 +7765456790394871808 1 1074488452 1074488452 -4286 +7768984605670604800 0 NULL NULL 21606 +7775034125776363520 1 -1628799508 -1628799508 11877 +7778936842502275072 1 -1702587308 -1702587308 -6502 +7779486624537370624 1 -1998652546 -1998652546 -8795 +7779735136559579136 1 -1228063838 -1228063838 -13393 +7782245855193874432 1 618991041 618991041 6320 +7784169796350730240 1 -958165276 -958165276 -11083 +7784489776013295616 1 -158848747 -158848747 26915 +779 1 -1939362279 -1939362279 -24422 +7790728456522784768 1 1575091509 1575091509 32589 +7792036342592348160 1 -538812082 -538812082 -10317 +7794244032613703680 1 1301426600 1301426600 -3222 +78 1 95356298 95356298 133 +780 1 -737624128 -737624128 -29646 +7800332581637259264 1 592011541 592011541 -17772 +7801697837312884736 1 -116484575 -116484575 -11863 +7818464507324121088 1 -2119724898 -2119724898 2833 +782 1 -1552053883 -1552053883 10702 +7823874904139849728 1 344239980 344239980 -23546 +784 1 44595790 44595790 21407 +7843804446688264192 1 -397951021 -397951021 -23124 +7844258063629852672 1 972835688 972835688 -20591 +7845953007588401152 0 NULL NULL -27232 +7857878068300898304 1 977624089 977624089 2616 +7868367829080506368 1 658008867 658008867 NULL +7870277756614623232 1 985634256 985634256 -20752 +7871189141676998656 1 1363568842 1363568842 -11006 +7871554728617025536 1 -309571354 -309571354 28146 +7874764415950176256 1 2127682701 2127682701 -11187 +7885697257930588160 1 1992977592 1992977592 -3813 +7888238729321496576 1 978044705 978044705 NULL +789 0 NULL NULL 31140 +7892026679115554816 1 626941809 626941809 -22922 +7892281003266408448 1 -371779520 -371779520 -26138 +7898670840507031552 1 776459017 776459017 -22689 +7909645665163804672 1 -1289665817 -1289665817 -20188 +7917494645725765632 1 2076370203 2076370203 20411 +7919597361814577152 1 2125311222 2125311222 6781 +7921639119138070528 1 -1030565036 -1030565036 31432 +7922443154272395264 1 -1333770335 -1333770335 -12904 +7926898770090491904 1 1582537271 1582537271 14176 +7933040277013962752 1 -1061222139 -1061222139 -30677 +7936149988210212864 1 1769324649 1769324649 -10815 +7944741547145502720 1 372099650 372099650 -12203 +7947544013461512192 1 -1184620079 -1184620079 -15501 +7948803266578161664 1 1766517223 1766517223 -28864 +7955126053367119872 1 1447438548 1447438548 -25988 +7961515985722605568 1 866084887 866084887 NULL +7961909238130270208 1 -1138530007 -1138530007 22852 +797 1 996831203 996831203 5550 +7983789401706094592 1 230954385 230954385 -29239 +7989119273552158720 0 NULL NULL -4877 +7989160253372817408 1 1848935036 1848935036 1393 +7997694023324975104 1 -1826997220 -1826997220 10216 +7998357471114969088 1 346562088 346562088 -18387 +7998687089080467456 0 NULL NULL 5591 +80 0 NULL NULL NULL +8000440057238052864 1 1251556414 1251556414 4989 +8002769767000145920 1 1668446119 1668446119 -12016 +8004633750273925120 1 -1754203978 -1754203978 21081 +8011181697250631680 1 1773417290 1773417290 -6948 +8011602724663336960 1 667283966 667283966 756 +8014986215157530624 1 -799249885 -799249885 -21922 +8017403886247927808 1 -1491722659 -1491722659 13020 +803 1 -2096425960 -2096425960 -11047 +8045070943673671680 1 435407142 435407142 30764 +8048726769133592576 1 -406264741 -406264741 -12239 +8059284960252731392 1 -251576563 -251576563 896 +8069531888205086720 1 1978171687 1978171687 9469 +8071961599867387904 1 52667480 52667480 -4218 +8073733016154431488 1 1815882183 1815882183 -22923 +8079573715140485120 1 503752931 503752931 NULL +808 1 -1836166334 -1836166334 4536 +8087737899452432384 1 -2137168636 -2137168636 18900 +809 1 -682333536 -682333536 -21506 +8091421389575282688 0 NULL NULL 22232 +8099215208813903872 1 492968645 492968645 -16680 +8100036735858401280 1 -146961490 -146961490 -30304 +8109381965028548608 1 2022944702 2022944702 -11110 +8111757081791733760 1 -234758376 -234758376 -5314 +8113585123802529792 1 129675822 129675822 -17254 +8116738401948377088 1 1914993018 1914993018 24782 +812 1 -954480325 -954480325 19874 +8120593157178228736 1 -1379039356 -1379039356 -31709 +8129551357032259584 1 323817967 323817967 26664 +8135164922674872320 1 -1459528251 -1459528251 -3436 +8142241016679735296 1 -163859725 -163859725 -5699 +8143462899383345152 1 644934949 644934949 2784 +8144552446127972352 1 2083836439 2083836439 4081 +8145745969573666816 1 467753905 467753905 -21233 +8145750910080745472 1 1275228381 1275228381 -30482 +8146288732715196416 1 -728015067 -728015067 -8293 +8146492373537660928 1 1316369941 1316369941 18535 +8148211378319933440 0 NULL NULL 26869 +815 1 1910930064 1910930064 23177 +8150115791664340992 1 793047956 793047956 -32022 +8156018594610790400 1 1384071499 1384071499 -12071 +8156782979767238656 1 -1651993300 -1651993300 2756 +8160569434550403072 1 -1808960215 -1808960215 19986 +8160662610166194176 1 -310584775 -310584775 27077 +8163948965373386752 1 1968813171 1968813171 -2835 +8168742078705262592 1 -303747347 -303747347 -8286 +8169878743136043008 1 1765874562 1765874562 -19545 +8171188598958407680 1 1996235654 1996235654 NULL +8183233196086214656 1 1450881368 1450881368 -2827 +8184799300477943808 1 -579916775 -579916775 9069 +8190539859890601984 1 1418228573 1418228573 7343 +8190967051000659968 1 604460005 604460005 -562 +8192304692696383488 1 494570380 494570380 -9528 +8195103847607967744 1 15020431 15020431 18555 +8199513544090730496 1 758926227 758926227 16693 +820 2 -409673169 746904285 47295 +8201303040648052736 1 -774406989 -774406989 -18385 +8201491077550874624 1 1677197847 1677197847 -19295 +8208354137450766336 1 1377144283 1377144283 23205 +8210813831744118784 1 139661585 139661585 31502 +8213810702473183232 1 587797446 587797446 -6513 +8219326436390821888 1 2064448036 2064448036 -17689 +8220104397160169472 1 -1274158260 -1274158260 27071 +8221561626658881536 1 -1626062014 -1626062014 -4211 +8222714144797368320 1 -318380015 -318380015 -10532 +8223732800007864320 1 -599396052 -599396052 7579 +823 1 1660088606 1660088606 NULL +8230371298967609344 1 1660278264 1660278264 24436 +8235179243092090880 1 187893585 187893585 -28932 +8244041599171862528 1 402173272 402173272 -7201 +8254763178969915392 1 658850444 658850444 18972 +8268875586442256384 1 1271280812 1271280812 6115 +8269730157217062912 1 127051381 127051381 4952 +8272001752345690112 1 3999930 3999930 22006 +8279056098670198784 1 2133492883 2133492883 -240 +8282648443538710528 1 -402441123 -402441123 -19427 +8283099811330506752 1 737149747 737149747 16195 +8286706213485297664 1 -916495008 -916495008 6587 +8287522765741301760 1 -1817564067 -1817564067 -27705 +8290014929764040704 1 -1424027104 -1424027104 -25624 +8290944180915871744 1 684561551 684561551 -24115 +8294315622451740672 1 -43858652 -43858652 29922 +8295110846998233088 1 -1945738830 -1945738830 19917 +83 1 -684022323 -684022323 -23836 +8302473563519950848 1 -1524081566 -1524081566 28358 +8316336224427483136 1 345556325 345556325 -18485 +8323460620425330688 1 -1524554771 -1524554771 24298 +8325227661920133120 1 -178568841 -178568841 28000 +8332670681629106176 1 -314935936 -314935936 21932 +8333523087360901120 1 -442732016 -442732016 NULL +8337549596011102208 1 904604938 904604938 16110 +8345435427356090368 1 323919214 323919214 198 +835 1 -1054609414 -1054609414 -4159 +8351163199364390912 1 391186487 391186487 -232 +8362046808797306880 1 89366322 89366322 -31764 +8365058996333953024 1 -2043805661 -2043805661 -14280 +8367680396909404160 1 -1269216718 -1269216718 -12517 +8368012468775608320 1 -1665164127 -1665164127 21941 +837 1 170870820 170870820 13161 +8371939471056470016 1 826143442 826143442 -22000 +8372408423196270592 1 564349193 564349193 -29468 +8372588378498777088 1 1321678350 1321678350 30936 +8374321007870836736 1 -329336519 -329336519 -15874 +8376440110255243264 1 1665724041 1665724041 3325 +8383159090746204160 1 605141554 605141554 -19276 +8388363436324085760 1 -707108808 -707108808 22678 +8391407951622815744 0 NULL NULL 19968 +8391785334471589888 1 -630900418 -630900418 -15957 +8396433451610652672 1 -180280420 -180280420 28940 +8398862954249560064 1 669871113 669871113 -22447 +8407869317250220032 1 -1240912824 -1240912824 NULL +8410599906334097408 1 -1606567895 -1606567895 17701 +8411494452500930560 1 -1568646283 -1568646283 28551 +8415171956168417280 1 541118710 541118710 19862 +8416121695917498368 1 63706286 63706286 18140 +8417381121663746048 1 1458051497 1458051497 -24267 +8419958579638157312 1 -99916247 -99916247 18690 +8424515140664360960 1 1847210729 1847210729 -20112 +8435912708683087872 1 -2081809883 -2081809883 -19028 +845 1 -1026746699 -1026746699 14234 +8451612303224520704 1 -971203543 -971203543 26241 +8454154705460666368 1 -1421396891 -1421396891 -8321 +8455496814886002688 1 107680423 107680423 6379 +8457906374051020800 1 106847364 106847364 -30244 +8461498293348065280 1 1636364987 1636364987 3186 +8463868417649524736 1 -1643714866 -1643714866 25986 +8467976965865799680 1 916057807 916057807 -23622 +8470141334513098752 0 NULL NULL 30861 +8472429318602268672 1 -308225568 -308225568 -16518 +8473699639908261888 1 -591879497 -591879497 -5829 +8487573502287478784 1 1895282160 1895282160 27787 +8489584373231919104 1 1416850873 1416850873 -18659 +8489735221193138176 1 -1124028213 -1124028213 29333 +85 1 -913906252 -913906252 -3202 +8501910015960735744 1 1579460630 1579460630 -2060 +8508401924853850112 1 -1578387726 -1578387726 -2825 +8509508263705477120 1 1107757211 1107757211 -20934 +8514851182589771776 1 415234946 415234946 -13805 +8514979402185596928 1 1902676205 1902676205 NULL +8515682078777081856 1 -1026458834 -1026458834 14331 +8518454006987948032 1 -379174037 -379174037 -22941 +8519937082746634240 1 -1745449855 -1745449855 -28566 +8523972434954510336 1 2134433675 2134433675 17720 +8524940073536954368 1 476858779 476858779 24488 +8525336514806317056 1 350802495 350802495 -14405 +8525894870444638208 1 1216287232 1216287232 -9735 +8532016240026279936 1 -1726585032 -1726585032 -7172 +8536948829863198720 1 1723691683 1723691683 -6024 +8540237852367446016 1 398960205 398960205 2728 +8543177193114779648 1 2048533360 2048533360 18637 +8547243497773457408 1 -534991774 -534991774 29721 +8551446856960942080 1 -1312782341 -1312782341 24446 +8553195689344991232 1 566646177 566646177 -9065 +8554899472487596032 1 -491882534 -491882534 -13978 +8555933456197828608 0 NULL NULL 24105 +8555948987770511360 1 107941738 107941738 18071 +8557218322962644992 1 -1210550573 -1210550573 22278 +8558000156325707776 1 -370901197 -370901197 -30638 +8560526613401714688 1 1592467112 1592467112 -16622 +8569030475428511744 1 1743671220 1743671220 -25166 +8570983266408103936 1 950545385 950545385 NULL +8571268359622172672 1 1187495452 1187495452 -6384 +8573305425181941760 1 1583280136 1583280136 14089 +8577096957495025664 0 NULL NULL 7954 +8579974641030365184 1 -1545388906 -1545388906 -3619 +8583916402383601664 1 -733239404 -733239404 8551 +8613562211893919744 1 -1109134719 -1109134719 -21357 +8625937019655200768 1 272086526 272086526 -6736 +8631515095562887168 1 -1244527286 -1244527286 -9494 +8637720762289659904 1 1669519977 1669519977 NULL +8639254009546055680 1 477584560 477584560 26952 +8641221723991433216 1 -1531040609 -1531040609 18350 +8643198489997254656 1 -1079086534 -1079086534 10273 +8644602243484803072 1 -1218592418 -1218592418 -23663 +8649296591032172544 1 -1744964279 -1744964279 -13979 +8652485812846567424 1 1372705672 1372705672 10699 +8656571350884048896 0 NULL NULL -16002 +8660248367767076864 1 1520375588 1520375588 -16872 +8665969966920990720 1 1372982791 1372982791 -25596 +8666178591503564800 1 -1565785026 -1565785026 -21025 +8677632093825916928 1 2040926345 2040926345 30632 +8677794924343164928 1 115470151 115470151 -20409 +868 1 -2133145181 -2133145181 -14644 +8682955459667951616 1 2009215103 2009215103 -25282 +8687042963221159936 1 -870624802 -870624802 3063 +8688483860094599168 1 -273937943 -273937943 -25734 +8693036785094565888 1 2090496825 2090496825 NULL +8697823501349609472 1 922553769 922553769 -14597 +8698055291501543424 1 -1755088362 -1755088362 27905 +8708232769657815040 1 6526476 6526476 31135 +8708845895460577280 1 1860113703 1860113703 -27553 +871 1 915505006 915505006 -9496 +8714829359200747520 1 672919099 672919099 23834 +8716401555586727936 1 -789126455 -789126455 8188 +8720504651219001344 1 825677248 825677248 18820 +8723248113030782976 1 144499388 144499388 NULL +873 1 842283345 842283345 NULL +8731960288562044928 1 869288953 869288953 7392 +8734584858442498048 1 -946830673 -946830673 9962 +8736061027343859712 1 -1974972123 -1974972123 -28084 +874 1 58313734 58313734 6367 +8752150411997356032 1 -1502924486 -1502924486 913 +8759089349412847616 1 1972940844 1972940844 16439 +8759184090543857664 1 435426302 435426302 -373 +8760285623204290560 1 -573787626 -573787626 -24296 +8761174805938331648 1 1205391962 1205391962 28048 +8769199243315814400 1 2100377172 2100377172 25732 +8773222500321361920 1 217823040 217823040 4261 +8775009214012456960 1 -213198503 -213198503 -29988 +8779073705407963136 1 -1979314577 -1979314577 -31967 +8779711700787298304 1 -859535015 -859535015 27960 +878 1 290601612 290601612 -21723 +8780196485890555904 1 -607285491 -607285491 -9183 +8782900615468302336 1 -1411407810 -1411407810 -12396 +8783241818558193664 1 -714270951 -714270951 NULL +8785153741735616512 1 1028092807 1028092807 15530 +8792059919353348096 1 -745678338 -745678338 -10569 +8793387410919038976 1 -1058166020 -1058166020 -1011 +8795069490394882048 1 1366402722 1366402722 -5946 +8806507556248731648 1 1190554937 1190554937 32734 +8808467247666241536 1 -1706867123 -1706867123 297 +8811693967537774592 1 1731764471 1731764471 24299 +8815398225009967104 1 -1701502632 -1701502632 NULL +8817665768680906752 1 1550375386 1550375386 -24320 +8822384228057604096 1 -1371840597 -1371840597 26579 +8825059717746376704 1 872554087 872554087 12802 +8829545979081744384 0 NULL NULL -27844 +883 1 -1554130090 -1554130090 12048 +8836228556823977984 1 1499399891 1499399891 -26061 +8837420822750314496 1 2052773366 2052773366 -29475 +8849475396952514560 1 718692886 718692886 NULL +8850055384477401088 1 1503176016 1503176016 -20657 +8853989376829833216 1 -1505397109 -1505397109 5196 +8854495099223375872 1 2065408093 2065408093 -12588 +8854677881758162944 1 1883400319 1883400319 -32263 +8854715632851345408 1 1301997393 1301997393 22511 +8856674723376668672 1 -4943292 -4943292 NULL +8868529429494071296 1 1830870769 1830870769 19003 +8871707618793996288 1 -677778959 -677778959 NULL +8875745082589929472 1 -1460613213 -1460613213 -28968 +888 1 1012696613 1012696613 15862 +8895174927321243648 1 -522450861 -522450861 30921 +8896237972875370496 1 1540680149 1540680149 -31404 +8897901899039473664 1 -535056977 -535056977 3228 +8899122608190930944 1 -2146432765 -2146432765 -1067 +8900180888218329088 1 -1058356124 -1058356124 13048 +8900351886974279680 1 1000106109 1000106109 -15497 +8900545829211299840 1 352214248 352214248 256 +8905330479248064512 0 NULL NULL 27675 +8910706980937261056 1 1166237779 1166237779 -12506 +8920344895701393408 1 -1126628450 -1126628450 7299 +8920533610804609024 1 1739911574 1739911574 7569 +8927691194719174656 1 -917062754 -917062754 5025 +8928133990107881472 1 -1511162508 -1511162508 23063 +8935252708196999168 1 1603612975 1603612975 12327 +8936639033158410240 1 -1305139473 -1305139473 21469 +8939431770838810624 1 -934008333 -934008333 -18292 +8945004737083555840 1 252169185 252169185 19887 +8945302550165004288 1 1117805438 1117805438 22118 +8962097525980225536 1 -329695030 -329695030 -26946 +8972161729142095872 1 1709983738 1709983738 NULL +8979012655944220672 1 -120692484 -120692484 -29722 +898 2 -234278308 338805871 5469 +8983857919580209152 1 1273798925 1273798925 -29285 +8983912573761167360 0 NULL NULL -17690 +8984935029383389184 1 -1565671389 -1565671389 NULL +8987827141270880256 1 -1024500955 -1024500955 -27015 +8991071342495531008 1 -574475259 -574475259 15655 +8991442360387584000 1 2081243058 2081243058 -5468 +8994608999945125888 1 -839512271 -839512271 -23323 +8995562121346260992 1 -618505946 -618505946 11664 +8996824426131390464 1 -214166042 -214166042 28774 +9000633029632499712 1 -641062448 -641062448 -10420 +9001907486943993856 1 -1974257754 -1974257754 7483 +9005866015985713152 1 652118640 652118640 -5374 +9016280522993975296 1 388707554 388707554 20794 +9020143715350814720 0 NULL NULL 16565 +9023663198045544448 1 1145627305 1145627305 22388 +9030480306789818368 1 -758973175 -758973175 NULL +9038087402564657152 0 NULL NULL -14836 +9040958359122640896 1 -1635301453 -1635301453 -30157 +9043089884440068096 1 -1527024213 -1527024213 -19020 +9048002942653710336 1 -1079231269 -1079231269 14982 +9048297564833079296 1 -1534307678 -1534307678 29851 +9050032047355125760 1 -1240048334 -1240048334 27527 +9053187076403060736 1 1075444504 1075444504 -32208 +9054887854393950208 1 -1517536924 -1517536924 13522 +9062227900376203264 1 1260101584 1260101584 4206 +9064847977742032896 1 -1849091666 -1849091666 10727 +9067985867711291392 1 43672187 43672187 NULL +9073672806863790080 1 -2144241640 -2144241640 -32119 +9075404705968840704 1 712816880 712816880 22289 +9078604269481148416 1 -298221893 -298221893 -8309 +908 1 266601601 266601601 -9102 +9083076230151864320 1 2111462911 2111462911 -23667 +9083704659251798016 1 -1359838019 -1359838019 1280 +9084402694981533696 0 NULL NULL 28570 +9085381906890203136 1 -240529113 -240529113 -11066 +9085434340468473856 1 76381404 76381404 -14551 +9086905513121890304 1 1796013407 1796013407 -4808 +9089435102788009984 1 2102440065 2102440065 -21274 +9091082386452684800 1 748185058 748185058 -25463 +9091085792947666944 1 254921167 254921167 22618 +9094945190752903168 1 2126491387 2126491387 -32480 +9096395849845194752 1 100270148 100270148 25038 +91 1 -1288198020 -1288198020 15628 +9104574294205636608 1 1257621270 1257621270 -20834 +9107991000536498176 1 -847235873 -847235873 10615 +9112400579327483904 1 1111985530 1111985530 17073 +9114850402293882880 1 1571267481 1571267481 -23153 +9116137265342169088 1 -236700442 -236700442 NULL +9117063974299148288 1 -297664578 -297664578 29954 +9119046173224370176 1 1604076720 1604076720 -6088 +9123116008004288512 1 1882932986 1882932986 -1801 +913 1 1845797092 1845797092 -25077 +9131533983989358592 1 -1234163924 -1234163924 -7178 +9132009829414584320 1 -1856034030 -1856034030 -2027 +9136234417125007360 0 NULL NULL -21820 +9136548192574529536 1 1121512594 1121512594 -19926 +9139805788041134080 1 881396599 881396599 -5338 +914 1 -1257859205 -1257859205 -7300 +9148071980848742400 1 1370723240 1370723240 30619 +9149216169284091904 1 -694520014 -694520014 -31033 +9165199002069458944 1 430686478 430686478 312 +9169248521377374208 1 1566958573 1566958573 32547 +917 1 -2076460151 -2076460151 -15493 +9174894805640142848 1 1336842978 1336842978 -30397 +918 1 1359437295 1359437295 -21292 +9180098147855769600 1 1950882901 1950882901 -6349 +9182828596851990528 1 -1012329052 -1012329052 21091 +9185458640237641728 1 -1011125931 -1011125931 31316 +9185952983951343616 1 889733679 889733679 -14315 +9188173682239275008 1 -1248781172 -1248781172 -17236 +919 1 -357680544 -357680544 30166 +9190466190353661952 1 1918230406 1918230406 18823 +9191943992860327936 1 -595769210 -595769210 -16940 +9194388393453060096 1 1002519329 1002519329 -16362 +9199741683232399360 1 -1096771844 -1096771844 22704 +9207107990561972224 1 -765190882 -765190882 13265 +9207927479837319168 1 2066707767 2066707767 18354 +9209153648361848832 1 471464395 471464395 2952 +921 1 1238986437 1238986437 -23550 +9211455920344088576 1 166320811 166320811 -15936 +922 1 932774185 932774185 -16425 +923 1 -1506324615 -1506324615 20704 +927 1 1044196568 1044196568 NULL +928 1 413090363 413090363 -11160 +939 1 -982238309 -982238309 -739 +94 0 NULL NULL -5837 +945 1 219415594 219415594 27454 +947 1 -896274896 -896274896 30237 +950 2 -2065080832 -1541281934 -20831 +958 0 NULL NULL -4910 +961 1 1805139501 1805139501 10473 +965 1 1336951982 1336951982 26292 +967 1 -1240208945 -1240208945 11843 +976 1 -1563676282 -1563676282 7058 +979 1 1022214896 1022214896 -9798 +982 1 -835198551 -835198551 -18140 +987 1 1807877618 1807877618 -19159 +997 1 -742707249 -742707249 15342 +999 1 -346607939 -346607939 11159 +NULL 80 -2069439395 2142592987 130757 +PREHOOK: query: explain vectorization detail +select b, count(b) from vectortab2korc group by b +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b, count(b) from vectortab2korc group by b +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: false + enabledConditionsNotMet: [hive.vectorized.execution.enabled IS false] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: b (type: bigint) + outputColumnNames: b + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count(b) + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: b (type: bigint) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint) + sort order: + + Map-reduce partition columns: _col0 (type: bigint) + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: KEY._col0 (type: bigint) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b, count(b) from vectortab2korc group by b +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(b) from vectortab2korc group by b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 1 +-6919476845891313664 1 +-6920172215209426944 1 +-6921654334727036928 1 +-6933565857643814912 1 +-6934304742087655424 1 +-6935038507792801792 1 +-6935548339131138048 1 +-6938706403992854528 1 +-6941777546186579968 1 +-6947955278050181120 1 +-6951350560260784128 1 +-6957946688477274112 1 +-6960947572095770624 1 +-6962271229404348416 1 +-6962292590214234112 1 +-6968771079156654080 1 +-6968892545529896960 1 +-6970396058557005824 1 +-6974654664348033024 1 +-6975459232300236800 1 +-6986178228432322560 1 +-6988811476286873600 1 +-6988970700649168896 1 +-6992217501957169152 1 +-6997233584896229376 1 +-7000925438663041024 1 +-7003696402314215424 1 +-7011425384222244864 1 +-7017212700635545600 1 +-7020852530219171840 1 +-7030489936116252672 1 +-7035132060308643840 1 +-7036607470351654912 1 +-7037375807670501376 1 +-7037638331316469760 1 +-7038455462786334720 1 +-7040248820505149440 1 +-7041362811802148864 1 +-7042183597114081280 1 +-7046180371529351168 1 +-7049618574399692800 1 +-7052619594823221248 1 +-7055619148037554176 1 +-7055760785575665664 1 +-7057750467944931328 1 +-7058986555327307776 1 +-7063777488249085952 1 +-7078068944081002496 1 +-7079898537463537664 1 +-7081500255163727872 1 +-7083646746411720704 1 +-7085247548404178944 1 +-7093825013581979648 1 +-7094189393339678720 1 +-7094827141662539776 1 +-7104310188119834624 1 +-7106210529681350656 1 +-7109790267244814336 1 +-7115054815375073280 1 +-7120456708338688000 1 +-7127548949860818944 1 +-7138415011665043456 1 +-7139677575412686848 1 +-7140008543769042944 1 +-7144791190333546496 1 +-7145585429014888448 1 +-7147490721376591872 1 +-7152177800841502720 1 +-7155539549555105792 1 +-7158472098920390656 1 +-7159700138947862528 1 +-7161165959057334272 1 +-7162299524557471744 1 +-7172594404186693632 1 +-7185369278665605120 1 +-7192529627893858304 1 +-7194281951646187520 1 +-7195217207163166720 1 +-7198372044947275776 1 +-7199983995864711168 1 +-7201085131997011968 1 +-7209060152494817280 1 +-7213775605408178176 1 +-7220731681653604352 1 +-7221474017515347968 1 +-7228589258642194432 1 +-7240213957902663680 1 +-7242345057866285056 1 +-7245872320493322240 1 +-7246123871306244096 1 +-7255010240787030016 1 +-7255686273677328384 1 +-7262049693594943488 1 +-7262384251828518912 1 +-7262798781688651776 1 +-7263060340185194496 1 +-7265998318110711808 1 +-7266719102957125632 1 +-7270034223527993344 1 +-7273590251991162880 1 +-7273694358642851840 1 +-7276111129363046400 1 +-7287583262310350848 1 +-7292078334519894016 1 +-7296096276653391872 1 +-7303847963918393344 1 +-7319315187617587200 1 +-7326863346317598720 1 +-7328087811698909184 1 +-7329767178250018816 1 +-7329807949048193024 1 +-7330203470474985472 1 +-7330413050756235264 1 +-7333278178640953344 1 +-7333362172439035904 1 +-7340231535789727744 1 +-7344146703223496704 1 +-7344947507044466688 1 +-7345562788132315136 1 +-7356685674003021824 1 +-7357888618985873408 1 +-7362189611124563968 1 +-7366430883634929664 1 +-7378096180613840896 1 +-7380731416973295616 1 +-7395343938785738752 1 +-7395553021620731904 1 +-7399631791131074560 1 +-7404052043914526720 1 +-7404057145074712576 1 +-7409317158045442048 1 +-7409653086454030336 1 +-7412431471807283200 1 +-7413317118463164416 1 +-7419068456205385728 1 +-7420448501073051648 1 +-7425160895830573056 1 +-7429331808102899712 1 +-7433265617153343488 1 +-7442593976514420736 1 +-7444070205513138176 1 +-7451660755269853184 1 +-7453525026342617088 1 +-7455898404374921216 1 +-7456869587112255488 1 +-7461750143936897024 1 +-7464270453557993472 1 +-7469660864676585472 1 +-7470307155642245120 1 +-7476082621253402624 1 +-7483435388852559872 1 +-7488345684795342848 1 +-7488415863027367936 1 +-7494411162675691520 1 +-7496839341561954304 1 +-7497303453253402624 1 +-7500200359698907136 1 +-7501803640821456896 1 +-7506254246954500096 1 +-7507424948896415744 1 +-7507578199583694848 1 +-7510418793070075904 1 +-7511202710200885248 1 +-7511952204985049088 1 +-7512289590991544320 1 +-7512297136103800832 1 +-7515996202498473984 1 +-7524170566881329152 1 +-7526793959592140800 1 +-7528526815026692096 1 +-7532751268425261056 1 +-7535857766791577600 1 +-7535958203887706112 1 +-7536330682873937920 1 +-7540104552219860992 1 +-7541860097718902784 1 +-7542857121910046720 1 +-7547245548870025216 1 +-7547432761381339136 1 +-7551394356730339328 1 +-7557017910095650816 1 +-7558524160894427136 1 +-7571293705217687552 1 +-7571957778022178816 1 +-7572262898020278272 1 +-7572962089372991488 1 +-7576194692683563008 1 +-7593363318079610880 1 +-7594824008626372608 1 +-7598782894648565760 1 +-7600138468036386816 1 +-7603467428164009984 1 +-7603569103205916672 1 +-7610137349734883328 1 +-7611584069753552896 1 +-7612455481940246528 1 +-7612466483992051712 1 +-7616522969329262592 1 +-7617860842651017216 1 +-7623047151287754752 1 +-7623359796281999360 1 +-7623405558242500608 1 +-7624057992767782912 1 +-7629401308029976576 1 +-7637494527844343808 1 +-7637755520917741568 1 +-7642381493746483200 1 +-7647020450676146176 1 +-7661192563533062144 1 +-7661250850555633664 1 +-7663293054873812992 1 +-7665186441284968448 1 +-7668388017287020544 1 +-7669169138124275712 1 +-7673901622181953536 1 +-7679894005808693248 1 +-7686220526274502656 1 +-7687052294777208832 1 +-7692192232238678016 1 +-7695491171376291840 1 +-7700203302632210432 1 +-7703540456272994304 1 +-7707242953271500800 1 +-7707867749256445952 1 +-7708932208121225216 1 +-7709958788604936192 1 +-7712425776235274240 1 +-7720966287634112512 1 +-7739424919198187520 1 +-7744462446680375296 1 +-7751265769984491520 1 +-7751427073017544704 1 +-7753051494275432448 1 +-7759238919361888256 1 +-7759425383684849664 1 +-7772064021830574080 1 +-7773957003968675840 1 +-7777884099756122112 1 +-7778829032042790912 1 +-7779270198785875968 1 +-7782344916178796544 1 +-7784419454650843136 1 +-7792903881635938304 1 +-7793447076762345472 1 +-7797149520019062784 1 +-7797151404935618560 1 +-7800879252150779904 1 +-7802538500225777664 1 +-7804116532814151680 1 +-7805985795815342080 1 +-7811060170911375360 1 +-7818454479651135488 1 +-7819437864839495680 1 +-7822452149325094912 1 +-7824788571789279232 1 +-7827420207675105280 1 +-7831320202242228224 1 +-7831595638727565312 1 +-7833618000492109824 1 +-7835907977757245440 1 +-7838598833900584960 1 +-7840338174858199040 1 +-7845896959112658944 1 +-7848043121524228096 1 +-7849504559236210688 1 +-7858505678035951616 1 +-7866079955473989632 1 +-7867219225874571264 1 +-7868306678534193152 1 +-7873753603299540992 1 +-7875953567586451456 1 +-7877598807023386624 1 +-7878145001776152576 1 +-7879864376629567488 1 +-7881262505761710080 1 +-7881351200983613440 1 +-7883252982752665600 1 +-7884460946615984128 1 +-7888051992910274560 1 +-7892780594910871552 1 +-7893577088764174336 1 +-7894382303337832448 1 +-7895991410072928256 1 +-7902517224300036096 1 +-7903158849011843072 1 +-7904188195431661568 1 +-7907355742053883904 1 +-7910019233726242816 1 +-7911421221625077760 1 +-7915999634274369536 1 +-7916510129632296960 1 +-7928062266382778368 1 +-7928440849566146560 1 +-7939634346485858304 1 +-7949309059286163456 1 +-7949445503604604928 1 +-7953426740065312768 1 +-7964801953178091520 1 +-7966960765508280320 1 +-7978782649203228672 1 +-7989766326847807488 1 +-7998947380180819968 1 +-8007017894942638080 1 +-8013397854633648128 1 +-8016589197379289088 1 +-8017791189288869888 1 +-8018511948141748224 1 +-8021859935185928192 1 +-8022573309127000064 1 +-8023708819947323392 1 +-8028275725610909696 1 +-8028910243475038208 1 +-8030058711611629568 1 +-8034414142083170304 1 +-8046189486447017984 1 +-8046238369820344320 1 +-8047774491688255488 1 +-8051395538179063808 1 +-8051587217208967168 1 +-8051871680800120832 1 +-8054581198284668928 1 +-8067243114610532352 1 +-8070535484085895168 1 +-8076479329071955968 1 +-8082793390939193344 1 +-8084716955963252736 1 +-8086577583338061824 1 +-8088337436168830976 1 +-8099313480512716800 1 +-8103788088118018048 1 +-8104684579106914304 1 +-8108693586698706944 1 +-8115963579415650304 1 +-8117838333114212352 1 +-8122639684164501504 1 +-8127494999848919040 1 +-8131997716860526592 1 +-8136227554401107968 1 +-8140349174954893312 1 +-8142667274351345664 1 +-8147405381260345344 1 +-8158011642485825536 1 +-8161047750470279168 1 +-8172827216441573376 1 +-8182421179156905984 1 +-8191825921746305024 1 +-8194062064124362752 1 +-8203008052020879360 1 +-8203075743525806080 1 +-8205148279289085952 1 +-8214462866994339840 1 +-8219876839318716416 1 +-8232763638546694144 1 +-8240034910581153792 1 +-8240684139569233920 1 +-8243487285852766208 1 +-8244116388227104768 1 +-8244657976255889408 1 +-8260340354454503424 1 +-8269917980278980608 1 +-8270479187688816640 1 +-8275337702906757120 1 +-8280276629934981120 1 +-8293833565967810560 1 +-8297230235506343936 1 +-8300526097982226432 1 +-8300764106868350976 1 +-8302817097848307712 1 +-8317591428117274624 1 +-8318886086186213376 1 +-8322751250650218496 1 +-8330233444291084288 1 +-8335810316927213568 1 +-8340523561480437760 1 +-8345065519816695808 1 +-8347088645602050048 1 +-8357136656913686528 1 +-8358130693961195520 1 +-8359839265974165504 1 +-8368269352975982592 1 +-8368487814665895936 1 +-8369487968903897088 1 +-8379109122834997248 1 +-8379964450833367040 1 +-8384695077413412864 1 +-8387347109404286976 1 +-8387536830476820480 1 +-8395998375405912064 1 +-8400045653258444800 1 +-8411282676082565120 1 +-8418913260807217152 1 +-8425998949410889728 1 +-8426531414463545344 1 +-8430283518005846016 1 +-8430370933326536704 1 +-8431492599012163584 1 +-8438554249514491904 1 +-8445801063348281344 1 +-8453491903284994048 1 +-8454143651040444416 1 +-8465978403747037184 1 +-8469607298426437632 1 +-8471480409335513088 1 +-8485389240529354752 1 +-8488247955875618816 1 +-8490382417169408000 1 +-8494118409594650624 1 +-8503342882470019072 1 +-8503573595507761152 1 +-8507279516485566464 1 +-8509547439040757760 1 +-8518060755719585792 1 +-8518258741831680000 1 +-8521578237232529408 1 +-8522878384019169280 1 +-8523434203900674048 1 +-8525212657458348032 1 +-8535957064499879936 1 +-8536369662934401024 1 +-8543982423727128576 1 +-8544299740525461504 1 +-8545239748068941824 1 +-8546758906409312256 1 +-8552393882631389184 1 +-8555709701170552832 1 +-8559008501282832384 1 +-8559252110266564608 1 +-8562524688907485184 1 +-8566856504746352640 1 +-8566940231897874432 1 +-8570933074545745920 1 +-8572823448513445888 1 +-8572949572756774912 1 +-8581765103969312768 1 +-8581979259158929408 1 +-8584520406368493568 1 +-8585134536083660800 1 +-8585966098173870080 1 +-8593419958317056000 1 +-8603817012434198528 1 +-8604758220106014720 1 +-8607195685207408640 1 +-8615168537390571520 1 +-8619303037130301440 1 +-8623238306523824128 1 +-8623965248051789824 1 +-8632237187473088512 1 +-8649711322250362880 1 +-8651641150831362048 1 +-8654433008222797824 1 +-8654797319350927360 1 +-8658387566611996672 1 +-8659643752269242368 1 +-8659692318743314432 1 +-8660149447361404928 1 +-8664374244449050624 1 +-8664806103426252800 1 +-8665218198816497664 1 +-8665764757143658496 1 +-8675661101615489024 1 +-8675892979328212992 1 +-8683802826440105984 1 +-8688153842294595584 1 +-8689606130068611072 1 +-8694818694700048384 1 +-8696162322976997376 1 +-8703026916864802816 1 +-8704234107608203264 1 +-8705403811649355776 1 +-8710298418608619520 1 +-8714995808835444736 1 +-8719510423723155456 1 +-8730803262481580032 1 +-8731068123910987776 1 +-8746702976270385152 1 +-8754966081778565120 1 +-8754992450211692544 1 +-8756989568739835904 1 +-8760655406971863040 1 +-8763062627136864256 1 +-8768744394742235136 1 +-8782213262837530624 1 +-8783777723063099392 1 +-8789178184387641344 1 +-8797972842900307968 1 +-8807361476639629312 1 +-8813211231120031744 1 +-8831091081349758976 1 +-8832750849949892608 1 +-8833019327569510400 1 +-8835408234247168000 1 +-8836899523028312064 1 +-8843859708698583040 1 +-8844949406948671488 1 +-8845239510002753536 1 +-8852770376039219200 1 +-8853553406533894144 1 +-8856151919723003904 1 +-8856821118526734336 1 +-8857335871148171264 1 +-8858063395050110976 1 +-8859107121649893376 1 +-8866442231663067136 1 +-8870186814744420352 1 +-8870673219965001728 1 +-8875546987176206336 1 +-8877053610728161280 1 +-8877431933441327104 1 +-8879742387365429248 1 +-8881446757271846912 1 +-8887058200926093312 1 +-8892963883085578240 1 +-8896045754034978816 1 +-8914039133569400832 1 +-8916987977485312000 1 +-8922409715403112448 1 +-8923529803981905920 1 +-8927968289860370432 1 +-8930307926221807616 1 +-8938849835283677184 1 +-8940944155843461120 1 +-8941201923743703040 1 +-8946656952763777024 1 +-8948335470186373120 1 +-8959796625322680320 1 +-8961059046745669632 1 +-8962547695651323904 1 +-8965578088652095488 1 +-8989473881707921408 1 +-8990843030306717696 1 +-8992599250893979648 1 +-8996954350906294272 1 +-9002912355472736256 1 +-9004892183139811328 1 +-9008631121684832256 1 +-9012093603044245504 1 +-9013952631912325120 1 +-9014145341570203648 1 +-9022154842129547264 1 +-9032650742739836928 1 +-9049720998034137088 1 +-9051477157204770816 1 +-9058029636530003968 1 +-9066993118333706240 1 +-9071565764086521856 1 +-9075302542655684608 1 +-9075486079396069376 1 +-9078662294976061440 1 +-9079801920509001728 1 +-9080568167841226752 1 +-9080956291212132352 1 +-9084940280061485056 1 +-9088239683374350336 1 +-9091113592821972992 1 +-9095689235523264512 1 +-9101953184875757568 1 +-9102482277760983040 1 +-9105358806324035584 1 +-9105701280936501248 1 +-9109392978217484288 1 +-9117959922369060864 1 +-9126793997498957824 1 +-9136398397785948160 1 +-9142610685888192512 1 +-9145593811310010368 1 +-9148197394287779840 1 +-9149719074367946752 1 +-9157613004431998976 1 +-9175038118837149696 1 +-9175279464813223936 1 +-9178166810751909888 1 +-9187662685618348032 1 +-9189155542884474880 1 +-9203804401302323200 1 +-9203942396257984512 1 +-9206329156028112896 1 +-9210275791460499456 1 +-9213132862973829120 1 +-9215144824304721920 1 +-9218875542187065344 1 +-9219066990552760320 1 +1021 1 +1030 1 +1032 1 +1039 1 +1046 1 +1048 1 +1053 1 +1055 1 +1058 1 +1065 1 +1066 1 +1074 1 +1075 3 +108 1 +1086 1 +1093 1 +1094 1 +1095 1 +1099 1 +1115 1 +112 1 +1127 1 +1128 1 +1132 1 +1134 1 +1141 1 +1142 1 +1145 1 +1153 1 +1157 1 +1158 1 +1165 2 +1168 1 +1177 1 +1187 1 +1189 1 +1198 1 +120 1 +1201 1 +1217 1 +1234 1 +1243 1 +1247 1 +1252 1 +1261 1 +1270 1 +1280 1 +1282 1 +1286 1 +1287 1 +1290 1 +1291 1 +1299 1 +130 1 +1307 1 +1312 1 +1316 1 +1321 1 +1337 1 +1341 1 +1342 1 +1343 1 +1345 1 +1346 1 +135 1 +1366 1 +1368 2 +1371 2 +138 1 +1386 1 +1398 1 +1409 1 +1422 1 +1423 1 +1436 1 +1439 1 +1447 1 +1450 1 +1454 1 +1458 1 +1462 1 +1466 1 +1470 1 +1477 1 +1481 2 +1489 1 +1493 1 +1495 1 +1501 1 +1506 1 +1508 1 +1509 2 +1518 1 +1520 1 +1521 1 +1524 1 +1530 1 +1537 2 +154 2 +1541 1 +1542 1 +1545 1 +1556 1 +1559 1 +1561 1 +1566 1 +1604 1 +1606 1 +1608 1 +1613 1 +1614 1 +1620 1 +1638 1 +1641 1 +1643 1 +1648 1 +1651 1 +1667 1 +1671 1 +1674 1 +1676 1 +1678 1 +168 1 +1681 1 +169 1 +1693 1 +1701 2 +1704 1 +1719 2 +1726 1 +1728 1 +1745 1 +1751 1 +1752 1 +1769 1 +1774 1 +1775 1 +1777 2 +1780 1 +1781 1 +1785 1 +1786 1 +1788 1 +1789 1 +1791 1 +1796 1 +1806 1 +181 1 +1811 1 +1813 1 +1826 1 +1827 1 +1835 1 +1837 1 +1845 1 +1846 1 +1856 2 +1862 1 +1863 1 +1864 1 +1866 1 +187 1 +1870 1 +188 1 +1880 1 +1890 1 +1892 1 +1899 1 +19 2 +1906 1 +1910 1 +1914 2 +1926 1 +1937 1 +1940 1 +1941 1 +1948 3 +1955 1 +1965 1 +1972 1 +1981 1 +1983 1 +1987 1 +1990 1 +1995 1 +1999 1 +2001 1 +2002 1 +2004 1 +2009 1 +2011 1 +2013 1 +2016 1 +2017 1 +2020 2 +2025 1 +2026 1 +2029 1 +203 1 +204 1 +2046 1 +2056 1 +2067 1 +2072 1 +2073 1 +2085 1 +2089 1 +2092 1 +2105 1 +2106 1 +2108 1 +213 2 +2131 1 +2138 1 +2140 1 +2144 1 +2155 1 +2177 1 +2179 1 +2180 1 +2183 1 +2186 1 +2187 1 +2189 1 +2193 2 +2194 1 +22 1 +2201 1 +2205 1 +2214 1 +2217 1 +2218 1 +2223 1 +2227 1 +2229 1 +2232 1 +2241 1 +2244 1 +2255 1 +2262 1 +2264 1 +2270 1 +2274 1 +2277 1 +2279 1 +228 1 +2283 1 +2285 2 +2295 1 +2306 1 +2320 1 +2323 1 +2325 2 +2335 1 +2341 1 +2348 1 +2358 1 +236 1 +2373 1 +238 1 +2386 1 +2393 2 +2398 1 +2400 1 +2410 1 +2412 2 +2420 1 +2426 1 +2434 1 +244 1 +2461 1 +2463 3 +2465 1 +2469 1 +2475 1 +2476 1 +2485 2 +2487 1 +2492 1 +2494 1 +2502 1 +2506 1 +2509 1 +2512 1 +2514 1 +2515 1 +2517 1 +2524 1 +2533 1 +2539 1 +2540 1 +255 1 +2551 1 +2553 1 +2560 2 +2563 1 +2565 1 +2569 1 +2579 1 +2580 1 +2587 1 +259 1 +2599 1 +2607 1 +2608 1 +2619 2 +2625 1 +2626 1 +263 2 +2637 1 +2647 1 +2649 1 +2662 1 +2663 1 +2675 1 +268 2 +2680 1 +2682 1 +2688 1 +2689 1 +2692 1 +2700 1 +2712 1 +2714 1 +2715 2 +2719 1 +2724 1 +2725 1 +2735 1 +2745 1 +275 1 +2752 1 +2762 1 +2772 1 +2776 1 +2786 2 +279 1 +2790 1 +2791 1 +2803 3 +2805 1 +281 1 +2810 1 +2811 1 +2816 1 +2821 1 +2824 1 +2835 1 +2842 1 +2843 2 +2846 1 +2847 1 +2848 1 +2850 1 +2855 2 +2862 1 +2878 1 +2886 1 +289 1 +2897 2 +2900 1 +2903 1 +2905 1 +2911 1 +2915 1 +2919 1 +2933 2 +2938 1 +294 1 +2941 1 +2942 1 +296 2 +2962 1 +2968 2 +2971 1 +2977 1 +2979 1 +2984 1 +2986 1 +2988 1 +2991 1 +3002 1 +3006 1 +301 1 +302 1 +3021 2 +3024 1 +3029 1 +3031 1 +3036 1 +3043 1 +3054 1 +3055 1 +3058 1 +3059 1 +3060 2 +3067 1 +3071 1 +3073 1 +3079 2 +3083 1 +3084 1 +3089 1 +3094 1 +3103 1 +311 1 +3111 1 +3118 1 +3119 1 +3144 1 +3147 1 +3159 2 +3163 1 +3174 1 +3183 1 +3190 1 +3197 1 +3199 1 +320 1 +3203 1 +3206 1 +3208 1 +3212 1 +3213 1 +3231 1 +3232 1 +3235 1 +3244 1 +3245 1 +3248 1 +3249 1 +3253 1 +3255 1 +3263 1 +3286 1 +3300 1 +3307 1 +3322 1 +3333 1 +3352 1 +336 1 +3365 1 +3366 1 +3397 1 +34 1 +3401 1 +3407 1 +3409 1 +341 1 +3418 2 +342 1 +3421 1 +3430 1 +3443 1 +3446 1 +345 1 +3456 1 +346 2 +3460 1 +3462 3 +3467 2 +347 1 +3472 1 +3478 1 +3493 1 +350 1 +3507 1 +3510 1 +3512 1 +3533 1 +3534 1 +3541 1 +3542 1 +355 1 +3554 1 +3555 2 +3563 1 +3566 1 +3567 1 +3568 1 +3579 1 +3588 2 +3599 1 +3606 1 +3608 1 +3609 1 +361 1 +3613 1 +3622 2 +3625 1 +3630 1 +3637 1 +364 1 +3648 1 +3663 1 +3664 1 +367 1 +3672 1 +3673 1 +3677 1 +3680 1 +3682 1 +3690 1 +3691 1 +3701 1 +3702 1 +3703 1 +3707 1 +3722 1 +3724 1 +3725 2 +3728 2 +3739 1 +3747 1 +3749 1 +375 1 +3755 1 +3763 1 +3764 1 +3769 1 +3770 2 +378 1 +3781 2 +3789 1 +379 1 +3810 1 +3812 1 +3823 1 +3824 1 +383 2 +3830 1 +3835 1 +3841 1 +3848 1 +3858 1 +3860 1 +3866 2 +3874 1 +3879 1 +388 1 +3887 1 +3901 1 +3904 1 +3907 1 +391 1 +3910 1 +3911 1 +3913 1 +392 1 +3932 1 +3940 1 +3941 1 +3945 1 +3946 1 +3949 1 +3958 1 +3960 1 +3961 1 +3962 1 +3965 1 +3974 2 +3980 1 +3990 1 +4018 1 +4020 1 +4024 1 +4030 1 +4037 1 +4051 1 +4054 1 +4056 1 +4075 1 +4078 1 +4088 1 +41 1 +412 2 +417 1 +425 1 +443 1 +454 1 +455 1 +462 1 +470 1 +471 1 +481 1 +482 1 +485 1 +489 1 +49 1 +490 1 +491 1 +5 1 +500 1 +501 2 +504 1 +522 1 +523 1 +524 1 +530 1 +535 1 +579 1 +583 1 +584 1 +586 1 +587 1 +590 1 +597 1 +601 1 +612 1 +615 1 +618 1 +65 1 +650 1 +658 1 +66 1 +661 2 +663 1 +664 1 +677 1 +68 1 +681 1 +687 1 +688 1 +690 1 +691 1 +6923604860394528768 1 +6924820982050758656 1 +6926925215281774592 1 +6927260280037097472 1 +6928080429732536320 1 +6933001829416034304 1 +6933451028794925056 1 +6933731240564056064 1 +6934570741217755136 1 +694 1 +6947488599548215296 1 +695 1 +6960137166475911168 1 +6962726713896484864 1 +6963217546192322560 1 +6964585306125008896 1 +6967631925774639104 1 +6969599299897163776 1 +6974475559697768448 1 +6982145326341423104 1 +6987889924212203520 1 +6991316084916879360 1 +6996686091335884800 1 +7006803044329021440 1 +7013693841855774720 1 +7014537632150224896 1 +7017956982081404928 1 +7022349041913978880 1 +7027529814236192768 1 +7031339012080549888 1 +7039820685967343616 1 +7045967493826387968 1 +7049773031131283456 1 +7052226236896256000 1 +7054271419461812224 1 +7054938591408996352 1 +7060236714847412224 1 +7061498706968428544 1 +7061809776248545280 1 +7062382339142156288 1 +7062605127422894080 1 +7065344324692443136 1 +7068517339681259520 1 +7069729473166090240 1 +707 1 +7077311975029555200 1 +7078641038157643776 1 +7080269176324218880 1 +7084659344078970880 1 +7086206629592252416 1 +7091300332052062208 1 +7099005292698550272 1 +71 1 +7107604675626008576 1 +7125231541858205696 1 +7128222874437238784 1 +7130159794259353600 1 +7130306447560826880 1 +7149417430082027520 1 +7153922334283776000 1 +7157247449513484288 1 +7164349895861829632 1 +7165364563962191872 1 +7166263463731421184 1 +7175638927948562432 1 +7186401810812059648 1 +7195454019231834112 1 +7198687580227043328 1 +7199539820886958080 1 +7204802700490858496 1 +7210160489915236352 1 +7212016545671348224 1 +7212090742612467712 1 +7217123582035116032 1 +7220131672176058368 1 +7220581538170413056 1 +7223569671814987776 1 +7226360892091416576 1 +7229607057201127424 1 +723 1 +7231399302953377792 1 +7232273749940838400 1 +7235109456886816768 1 +7237310132329488384 1 +7238339720750948352 1 +724 1 +7242751359672631296 1 +7249443195032985600 1 +7250237407877382144 1 +7254710367022645248 1 +7255302164215013376 1 +7259955893466931200 1 +7260908278294560768 1 +7265141874315517952 1 +7266437490436341760 1 +7271786885641666560 1 +7271887863395459072 1 +7274777328897802240 1 +7291432593139507200 1 +7295502697317097472 1 +7295926343524163584 1 +7296164580491075584 1 +7299197687217856512 1 +73 1 +7304839835188609024 1 +7308289763456000000 1 +7309156463509061632 1 +7310869618402910208 1 +7319711402123149312 1 +7333512171174223872 1 +7339426767877390336 1 +7343171468838567936 1 +7344029858387820544 1 +7345991518378442752 1 +7347732772348870656 1 +7348598907182800896 1 +735 1 +7354813692542304256 1 +7359004378440146944 1 +736 1 +7368920486374989824 1 +7370078518278397952 1 +7370803940448305152 1 +7375521127126089728 1 +7376467688511455232 1 +7378993334503694336 1 +738 1 +7381659098423926784 1 +7384150968511315968 1 +7386087924003676160 1 +7391208370547269632 1 +7393308503950548992 1 +7394967727502467072 1 +7401968422230032384 1 +7410096605330227200 1 +7410872053689794560 1 +7411793502161182720 1 +7412924364686458880 1 +7414865343000322048 1 +7418271723644403712 1 +743 1 +7432428551399669760 1 +7432998950057975808 1 +7436133434239229952 1 +7440265908266827776 1 +7450416810848313344 1 +7452756603516190720 1 +7454442625055145984 1 +7454632396542074880 1 +7461153404961128448 1 +7471208109437304832 1 +7473537548003352576 1 +7486884806277611520 1 +7487338208419823616 1 +7487538600082554880 1 +7490717730239250432 1 +7491898395977523200 1 +7492436934952574976 1 +7497276415392407552 1 +7497306924248834048 1 +7500716020874674176 1 +7514552840617558016 1 +7517159036469575680 1 +7524958388842078208 1 +7528074274555305984 1 +7528211148397944832 1 +7534042483076857856 1 +7534145866886782976 1 +7534549597202194432 1 +7545689659010949120 1 +7548958830580563968 1 +7549858023389003776 1 +7555301305375858688 1 +7566273236152721408 1 +7569249672628789248 1 +7570474972934488064 1 +7573530789362262016 1 +7575087487730196480 1 +7581052107944361984 1 +7581614118458335232 1 +7584007864107778048 1 +7592440105065308160 1 +7593521922173419520 1 +7596563216912211968 1 +7599019810193211392 1 +7608447395949109248 1 +7614435638888210432 1 +7620183559667081216 1 +7621013099259527168 1 +7625728883085025280 1 +7626715182847090688 1 +763 1 +7637152193832886272 1 +7647481735646363648 1 +7648729477297987584 1 +7652123583449161728 1 +7659279803863146496 1 +7662037650719850496 1 +7675009476762918912 1 +7678790769408172032 1 +7682327310082531328 1 +7686992843032010752 1 +7689489436826804224 1 +7690986322714066944 1 +7691062622443044864 1 +7696737688942567424 1 +7697541332524376064 1 +7700734109530767360 1 +7701723309715685376 1 +7705445437881278464 1 +7710447533880614912 1 +7718825401976684544 1 +7720187583697502208 1 +7731443941834678272 1 +7735566678126616576 1 +774 1 +7741854854673367040 1 +7746402369011277824 1 +7747874976739016704 1 +7748799008146366464 1 +7752740515534422016 1 +7753359568986636288 1 +7753882935005880320 1 +7761834341179375616 1 +7762823913046556672 1 +7765456790394871808 1 +7768984605670604800 1 +7775034125776363520 1 +7778936842502275072 1 +7779486624537370624 1 +7779735136559579136 1 +7782245855193874432 1 +7784169796350730240 1 +7784489776013295616 1 +779 1 +7790728456522784768 1 +7792036342592348160 1 +7794244032613703680 1 +78 1 +780 1 +7800332581637259264 1 +7801697837312884736 1 +7818464507324121088 1 +782 1 +7823874904139849728 1 +784 1 +7843804446688264192 1 +7844258063629852672 1 +7845953007588401152 1 +7857878068300898304 1 +7868367829080506368 1 +7870277756614623232 1 +7871189141676998656 1 +7871554728617025536 1 +7874764415950176256 1 +7885697257930588160 1 +7888238729321496576 1 +789 1 +7892026679115554816 1 +7892281003266408448 1 +7898670840507031552 1 +7909645665163804672 1 +7917494645725765632 1 +7919597361814577152 1 +7921639119138070528 1 +7922443154272395264 1 +7926898770090491904 1 +7933040277013962752 1 +7936149988210212864 1 +7944741547145502720 1 +7947544013461512192 1 +7948803266578161664 1 +7955126053367119872 1 +7961515985722605568 1 +7961909238130270208 1 +797 1 +7983789401706094592 1 +7989119273552158720 1 +7989160253372817408 1 +7997694023324975104 1 +7998357471114969088 1 +7998687089080467456 1 +80 1 +8000440057238052864 1 +8002769767000145920 1 +8004633750273925120 1 +8011181697250631680 1 +8011602724663336960 1 +8014986215157530624 1 +8017403886247927808 1 +803 1 +8045070943673671680 1 +8048726769133592576 1 +8059284960252731392 1 +8069531888205086720 1 +8071961599867387904 1 +8073733016154431488 1 +8079573715140485120 1 +808 1 +8087737899452432384 1 +809 1 +8091421389575282688 1 +8099215208813903872 1 +8100036735858401280 1 +8109381965028548608 1 +8111757081791733760 1 +8113585123802529792 1 +8116738401948377088 1 +812 1 +8120593157178228736 1 +8129551357032259584 1 +8135164922674872320 1 +8142241016679735296 1 +8143462899383345152 1 +8144552446127972352 1 +8145745969573666816 1 +8145750910080745472 1 +8146288732715196416 1 +8146492373537660928 1 +8148211378319933440 1 +815 1 +8150115791664340992 1 +8156018594610790400 1 +8156782979767238656 1 +8160569434550403072 1 +8160662610166194176 1 +8163948965373386752 1 +8168742078705262592 1 +8169878743136043008 1 +8171188598958407680 1 +8183233196086214656 1 +8184799300477943808 1 +8190539859890601984 1 +8190967051000659968 1 +8192304692696383488 1 +8195103847607967744 1 +8199513544090730496 1 +820 2 +8201303040648052736 1 +8201491077550874624 1 +8208354137450766336 1 +8210813831744118784 1 +8213810702473183232 1 +8219326436390821888 1 +8220104397160169472 1 +8221561626658881536 1 +8222714144797368320 1 +8223732800007864320 1 +823 1 +8230371298967609344 1 +8235179243092090880 1 +8244041599171862528 1 +8254763178969915392 1 +8268875586442256384 1 +8269730157217062912 1 +8272001752345690112 1 +8279056098670198784 1 +8282648443538710528 1 +8283099811330506752 1 +8286706213485297664 1 +8287522765741301760 1 +8290014929764040704 1 +8290944180915871744 1 +8294315622451740672 1 +8295110846998233088 1 +83 1 +8302473563519950848 1 +8316336224427483136 1 +8323460620425330688 1 +8325227661920133120 1 +8332670681629106176 1 +8333523087360901120 1 +8337549596011102208 1 +8345435427356090368 1 +835 1 +8351163199364390912 1 +8362046808797306880 1 +8365058996333953024 1 +8367680396909404160 1 +8368012468775608320 1 +837 1 +8371939471056470016 1 +8372408423196270592 1 +8372588378498777088 1 +8374321007870836736 1 +8376440110255243264 1 +8383159090746204160 1 +8388363436324085760 1 +8391407951622815744 1 +8391785334471589888 1 +8396433451610652672 1 +8398862954249560064 1 +8407869317250220032 1 +8410599906334097408 1 +8411494452500930560 1 +8415171956168417280 1 +8416121695917498368 1 +8417381121663746048 1 +8419958579638157312 1 +8424515140664360960 1 +8435912708683087872 1 +845 1 +8451612303224520704 1 +8454154705460666368 1 +8455496814886002688 1 +8457906374051020800 1 +8461498293348065280 1 +8463868417649524736 1 +8467976965865799680 1 +8470141334513098752 1 +8472429318602268672 1 +8473699639908261888 1 +8487573502287478784 1 +8489584373231919104 1 +8489735221193138176 1 +85 1 +8501910015960735744 1 +8508401924853850112 1 +8509508263705477120 1 +8514851182589771776 1 +8514979402185596928 1 +8515682078777081856 1 +8518454006987948032 1 +8519937082746634240 1 +8523972434954510336 1 +8524940073536954368 1 +8525336514806317056 1 +8525894870444638208 1 +8532016240026279936 1 +8536948829863198720 1 +8540237852367446016 1 +8543177193114779648 1 +8547243497773457408 1 +8551446856960942080 1 +8553195689344991232 1 +8554899472487596032 1 +8555933456197828608 1 +8555948987770511360 1 +8557218322962644992 1 +8558000156325707776 1 +8560526613401714688 1 +8569030475428511744 1 +8570983266408103936 1 +8571268359622172672 1 +8573305425181941760 1 +8577096957495025664 1 +8579974641030365184 1 +8583916402383601664 1 +8613562211893919744 1 +8625937019655200768 1 +8631515095562887168 1 +8637720762289659904 1 +8639254009546055680 1 +8641221723991433216 1 +8643198489997254656 1 +8644602243484803072 1 +8649296591032172544 1 +8652485812846567424 1 +8656571350884048896 1 +8660248367767076864 1 +8665969966920990720 1 +8666178591503564800 1 +8677632093825916928 1 +8677794924343164928 1 +868 1 +8682955459667951616 1 +8687042963221159936 1 +8688483860094599168 1 +8693036785094565888 1 +8697823501349609472 1 +8698055291501543424 1 +8708232769657815040 1 +8708845895460577280 1 +871 1 +8714829359200747520 1 +8716401555586727936 1 +8720504651219001344 1 +8723248113030782976 1 +873 1 +8731960288562044928 1 +8734584858442498048 1 +8736061027343859712 1 +874 1 +8752150411997356032 1 +8759089349412847616 1 +8759184090543857664 1 +8760285623204290560 1 +8761174805938331648 1 +8769199243315814400 1 +8773222500321361920 1 +8775009214012456960 1 +8779073705407963136 1 +8779711700787298304 1 +878 1 +8780196485890555904 1 +8782900615468302336 1 +8783241818558193664 1 +8785153741735616512 1 +8792059919353348096 1 +8793387410919038976 1 +8795069490394882048 1 +8806507556248731648 1 +8808467247666241536 1 +8811693967537774592 1 +8815398225009967104 1 +8817665768680906752 1 +8822384228057604096 1 +8825059717746376704 1 +8829545979081744384 1 +883 1 +8836228556823977984 1 +8837420822750314496 1 +8849475396952514560 1 +8850055384477401088 1 +8853989376829833216 1 +8854495099223375872 1 +8854677881758162944 1 +8854715632851345408 1 +8856674723376668672 1 +8868529429494071296 1 +8871707618793996288 1 +8875745082589929472 1 +888 1 +8895174927321243648 1 +8896237972875370496 1 +8897901899039473664 1 +8899122608190930944 1 +8900180888218329088 1 +8900351886974279680 1 +8900545829211299840 1 +8905330479248064512 1 +8910706980937261056 1 +8920344895701393408 1 +8920533610804609024 1 +8927691194719174656 1 +8928133990107881472 1 +8935252708196999168 1 +8936639033158410240 1 +8939431770838810624 1 +8945004737083555840 1 +8945302550165004288 1 +8962097525980225536 1 +8972161729142095872 1 +8979012655944220672 1 +898 2 +8983857919580209152 1 +8983912573761167360 1 +8984935029383389184 1 +8987827141270880256 1 +8991071342495531008 1 +8991442360387584000 1 +8994608999945125888 1 +8995562121346260992 1 +8996824426131390464 1 +9000633029632499712 1 +9001907486943993856 1 +9005866015985713152 1 +9016280522993975296 1 +9020143715350814720 1 +9023663198045544448 1 +9030480306789818368 1 +9038087402564657152 1 +9040958359122640896 1 +9043089884440068096 1 +9048002942653710336 1 +9048297564833079296 1 +9050032047355125760 1 +9053187076403060736 1 +9054887854393950208 1 +9062227900376203264 1 +9064847977742032896 1 +9067985867711291392 1 +9073672806863790080 1 +9075404705968840704 1 +9078604269481148416 1 +908 1 +9083076230151864320 1 +9083704659251798016 1 +9084402694981533696 1 +9085381906890203136 1 +9085434340468473856 1 +9086905513121890304 1 +9089435102788009984 1 +9091082386452684800 1 +9091085792947666944 1 +9094945190752903168 1 +9096395849845194752 1 +91 1 +9104574294205636608 1 +9107991000536498176 1 +9112400579327483904 1 +9114850402293882880 1 +9116137265342169088 1 +9117063974299148288 1 +9119046173224370176 1 +9123116008004288512 1 +913 1 +9131533983989358592 1 +9132009829414584320 1 +9136234417125007360 1 +9136548192574529536 1 +9139805788041134080 1 +914 1 +9148071980848742400 1 +9149216169284091904 1 +9165199002069458944 1 +9169248521377374208 1 +917 1 +9174894805640142848 1 +918 1 +9180098147855769600 1 +9182828596851990528 1 +9185458640237641728 1 +9185952983951343616 1 +9188173682239275008 1 +919 1 +9190466190353661952 1 +9191943992860327936 1 +9194388393453060096 1 +9199741683232399360 1 +9207107990561972224 1 +9207927479837319168 1 +9209153648361848832 1 +921 1 +9211455920344088576 1 +922 1 +923 1 +927 1 +928 1 +939 1 +94 1 +945 1 +947 1 +950 2 +958 1 +961 1 +965 1 +967 1 +976 1 +979 1 +982 1 +987 1 +997 1 +999 1 +NULL 0 +PREHOOK: query: explain vectorization detail +select b, count(i) from vectortab2korc group by b +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b, count(i) from vectortab2korc group by b +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: false + enabledConditionsNotMet: [hive.vectorized.execution.enabled IS false] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: i (type: int), b (type: bigint) + outputColumnNames: i, b + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count(i) + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: b (type: bigint) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint) + sort order: + + Map-reduce partition columns: _col0 (type: bigint) + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: KEY._col0 (type: bigint) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b, count(i) from vectortab2korc group by b +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(i) from vectortab2korc group by b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 1 +-6919476845891313664 1 +-6920172215209426944 1 +-6921654334727036928 1 +-6933565857643814912 1 +-6934304742087655424 1 +-6935038507792801792 1 +-6935548339131138048 1 +-6938706403992854528 1 +-6941777546186579968 1 +-6947955278050181120 1 +-6951350560260784128 1 +-6957946688477274112 1 +-6960947572095770624 1 +-6962271229404348416 1 +-6962292590214234112 1 +-6968771079156654080 1 +-6968892545529896960 1 +-6970396058557005824 1 +-6974654664348033024 1 +-6975459232300236800 1 +-6986178228432322560 1 +-6988811476286873600 1 +-6988970700649168896 1 +-6992217501957169152 1 +-6997233584896229376 1 +-7000925438663041024 1 +-7003696402314215424 1 +-7011425384222244864 0 +-7017212700635545600 1 +-7020852530219171840 1 +-7030489936116252672 1 +-7035132060308643840 0 +-7036607470351654912 1 +-7037375807670501376 1 +-7037638331316469760 1 +-7038455462786334720 1 +-7040248820505149440 1 +-7041362811802148864 1 +-7042183597114081280 1 +-7046180371529351168 1 +-7049618574399692800 1 +-7052619594823221248 1 +-7055619148037554176 1 +-7055760785575665664 1 +-7057750467944931328 1 +-7058986555327307776 1 +-7063777488249085952 1 +-7078068944081002496 1 +-7079898537463537664 1 +-7081500255163727872 1 +-7083646746411720704 1 +-7085247548404178944 1 +-7093825013581979648 1 +-7094189393339678720 1 +-7094827141662539776 1 +-7104310188119834624 1 +-7106210529681350656 1 +-7109790267244814336 1 +-7115054815375073280 0 +-7120456708338688000 1 +-7127548949860818944 1 +-7138415011665043456 1 +-7139677575412686848 1 +-7140008543769042944 1 +-7144791190333546496 1 +-7145585429014888448 1 +-7147490721376591872 1 +-7152177800841502720 1 +-7155539549555105792 1 +-7158472098920390656 1 +-7159700138947862528 1 +-7161165959057334272 1 +-7162299524557471744 1 +-7172594404186693632 1 +-7185369278665605120 1 +-7192529627893858304 1 +-7194281951646187520 1 +-7195217207163166720 1 +-7198372044947275776 1 +-7199983995864711168 1 +-7201085131997011968 1 +-7209060152494817280 1 +-7213775605408178176 1 +-7220731681653604352 1 +-7221474017515347968 1 +-7228589258642194432 1 +-7240213957902663680 1 +-7242345057866285056 1 +-7245872320493322240 1 +-7246123871306244096 1 +-7255010240787030016 1 +-7255686273677328384 1 +-7262049693594943488 1 +-7262384251828518912 1 +-7262798781688651776 1 +-7263060340185194496 1 +-7265998318110711808 1 +-7266719102957125632 1 +-7270034223527993344 1 +-7273590251991162880 1 +-7273694358642851840 1 +-7276111129363046400 1 +-7287583262310350848 1 +-7292078334519894016 1 +-7296096276653391872 1 +-7303847963918393344 1 +-7319315187617587200 1 +-7326863346317598720 1 +-7328087811698909184 1 +-7329767178250018816 1 +-7329807949048193024 1 +-7330203470474985472 1 +-7330413050756235264 1 +-7333278178640953344 1 +-7333362172439035904 1 +-7340231535789727744 1 +-7344146703223496704 1 +-7344947507044466688 1 +-7345562788132315136 1 +-7356685674003021824 1 +-7357888618985873408 0 +-7362189611124563968 1 +-7366430883634929664 1 +-7378096180613840896 1 +-7380731416973295616 1 +-7395343938785738752 1 +-7395553021620731904 1 +-7399631791131074560 1 +-7404052043914526720 1 +-7404057145074712576 1 +-7409317158045442048 1 +-7409653086454030336 1 +-7412431471807283200 1 +-7413317118463164416 1 +-7419068456205385728 1 +-7420448501073051648 1 +-7425160895830573056 1 +-7429331808102899712 1 +-7433265617153343488 0 +-7442593976514420736 1 +-7444070205513138176 1 +-7451660755269853184 1 +-7453525026342617088 1 +-7455898404374921216 1 +-7456869587112255488 1 +-7461750143936897024 1 +-7464270453557993472 1 +-7469660864676585472 1 +-7470307155642245120 1 +-7476082621253402624 1 +-7483435388852559872 1 +-7488345684795342848 1 +-7488415863027367936 1 +-7494411162675691520 1 +-7496839341561954304 1 +-7497303453253402624 1 +-7500200359698907136 1 +-7501803640821456896 1 +-7506254246954500096 1 +-7507424948896415744 1 +-7507578199583694848 1 +-7510418793070075904 1 +-7511202710200885248 1 +-7511952204985049088 1 +-7512289590991544320 1 +-7512297136103800832 1 +-7515996202498473984 1 +-7524170566881329152 1 +-7526793959592140800 1 +-7528526815026692096 1 +-7532751268425261056 1 +-7535857766791577600 1 +-7535958203887706112 1 +-7536330682873937920 1 +-7540104552219860992 1 +-7541860097718902784 1 +-7542857121910046720 1 +-7547245548870025216 1 +-7547432761381339136 1 +-7551394356730339328 1 +-7557017910095650816 1 +-7558524160894427136 1 +-7571293705217687552 1 +-7571957778022178816 1 +-7572262898020278272 1 +-7572962089372991488 1 +-7576194692683563008 1 +-7593363318079610880 1 +-7594824008626372608 1 +-7598782894648565760 1 +-7600138468036386816 1 +-7603467428164009984 1 +-7603569103205916672 1 +-7610137349734883328 1 +-7611584069753552896 1 +-7612455481940246528 0 +-7612466483992051712 1 +-7616522969329262592 1 +-7617860842651017216 1 +-7623047151287754752 1 +-7623359796281999360 1 +-7623405558242500608 1 +-7624057992767782912 1 +-7629401308029976576 1 +-7637494527844343808 1 +-7637755520917741568 1 +-7642381493746483200 1 +-7647020450676146176 1 +-7661192563533062144 1 +-7661250850555633664 1 +-7663293054873812992 1 +-7665186441284968448 1 +-7668388017287020544 0 +-7669169138124275712 1 +-7673901622181953536 1 +-7679894005808693248 1 +-7686220526274502656 1 +-7687052294777208832 1 +-7692192232238678016 1 +-7695491171376291840 1 +-7700203302632210432 1 +-7703540456272994304 1 +-7707242953271500800 1 +-7707867749256445952 1 +-7708932208121225216 1 +-7709958788604936192 1 +-7712425776235274240 1 +-7720966287634112512 0 +-7739424919198187520 1 +-7744462446680375296 1 +-7751265769984491520 1 +-7751427073017544704 1 +-7753051494275432448 1 +-7759238919361888256 1 +-7759425383684849664 1 +-7772064021830574080 1 +-7773957003968675840 1 +-7777884099756122112 1 +-7778829032042790912 1 +-7779270198785875968 1 +-7782344916178796544 1 +-7784419454650843136 1 +-7792903881635938304 1 +-7793447076762345472 1 +-7797149520019062784 1 +-7797151404935618560 1 +-7800879252150779904 1 +-7802538500225777664 1 +-7804116532814151680 1 +-7805985795815342080 1 +-7811060170911375360 1 +-7818454479651135488 1 +-7819437864839495680 1 +-7822452149325094912 1 +-7824788571789279232 1 +-7827420207675105280 1 +-7831320202242228224 1 +-7831595638727565312 1 +-7833618000492109824 1 +-7835907977757245440 1 +-7838598833900584960 1 +-7840338174858199040 1 +-7845896959112658944 1 +-7848043121524228096 1 +-7849504559236210688 1 +-7858505678035951616 0 +-7866079955473989632 1 +-7867219225874571264 1 +-7868306678534193152 1 +-7873753603299540992 1 +-7875953567586451456 1 +-7877598807023386624 1 +-7878145001776152576 1 +-7879864376629567488 1 +-7881262505761710080 1 +-7881351200983613440 1 +-7883252982752665600 1 +-7884460946615984128 1 +-7888051992910274560 1 +-7892780594910871552 1 +-7893577088764174336 1 +-7894382303337832448 1 +-7895991410072928256 1 +-7902517224300036096 1 +-7903158849011843072 1 +-7904188195431661568 1 +-7907355742053883904 1 +-7910019233726242816 1 +-7911421221625077760 1 +-7915999634274369536 1 +-7916510129632296960 1 +-7928062266382778368 1 +-7928440849566146560 1 +-7939634346485858304 1 +-7949309059286163456 1 +-7949445503604604928 1 +-7953426740065312768 1 +-7964801953178091520 1 +-7966960765508280320 1 +-7978782649203228672 1 +-7989766326847807488 1 +-7998947380180819968 1 +-8007017894942638080 1 +-8013397854633648128 1 +-8016589197379289088 1 +-8017791189288869888 1 +-8018511948141748224 1 +-8021859935185928192 1 +-8022573309127000064 1 +-8023708819947323392 1 +-8028275725610909696 1 +-8028910243475038208 1 +-8030058711611629568 1 +-8034414142083170304 1 +-8046189486447017984 1 +-8046238369820344320 1 +-8047774491688255488 1 +-8051395538179063808 1 +-8051587217208967168 1 +-8051871680800120832 0 +-8054581198284668928 1 +-8067243114610532352 1 +-8070535484085895168 1 +-8076479329071955968 1 +-8082793390939193344 1 +-8084716955963252736 1 +-8086577583338061824 1 +-8088337436168830976 1 +-8099313480512716800 1 +-8103788088118018048 1 +-8104684579106914304 1 +-8108693586698706944 1 +-8115963579415650304 1 +-8117838333114212352 1 +-8122639684164501504 1 +-8127494999848919040 1 +-8131997716860526592 1 +-8136227554401107968 1 +-8140349174954893312 0 +-8142667274351345664 1 +-8147405381260345344 1 +-8158011642485825536 0 +-8161047750470279168 1 +-8172827216441573376 1 +-8182421179156905984 1 +-8191825921746305024 1 +-8194062064124362752 1 +-8203008052020879360 1 +-8203075743525806080 1 +-8205148279289085952 1 +-8214462866994339840 0 +-8219876839318716416 1 +-8232763638546694144 1 +-8240034910581153792 1 +-8240684139569233920 1 +-8243487285852766208 1 +-8244116388227104768 1 +-8244657976255889408 1 +-8260340354454503424 1 +-8269917980278980608 1 +-8270479187688816640 1 +-8275337702906757120 1 +-8280276629934981120 1 +-8293833565967810560 1 +-8297230235506343936 1 +-8300526097982226432 1 +-8300764106868350976 1 +-8302817097848307712 1 +-8317591428117274624 1 +-8318886086186213376 1 +-8322751250650218496 1 +-8330233444291084288 1 +-8335810316927213568 1 +-8340523561480437760 1 +-8345065519816695808 1 +-8347088645602050048 1 +-8357136656913686528 1 +-8358130693961195520 1 +-8359839265974165504 1 +-8368269352975982592 0 +-8368487814665895936 1 +-8369487968903897088 1 +-8379109122834997248 1 +-8379964450833367040 1 +-8384695077413412864 1 +-8387347109404286976 1 +-8387536830476820480 1 +-8395998375405912064 1 +-8400045653258444800 1 +-8411282676082565120 1 +-8418913260807217152 1 +-8425998949410889728 1 +-8426531414463545344 1 +-8430283518005846016 1 +-8430370933326536704 0 +-8431492599012163584 1 +-8438554249514491904 1 +-8445801063348281344 1 +-8453491903284994048 1 +-8454143651040444416 1 +-8465978403747037184 1 +-8469607298426437632 1 +-8471480409335513088 1 +-8485389240529354752 1 +-8488247955875618816 1 +-8490382417169408000 1 +-8494118409594650624 1 +-8503342882470019072 1 +-8503573595507761152 1 +-8507279516485566464 1 +-8509547439040757760 1 +-8518060755719585792 1 +-8518258741831680000 1 +-8521578237232529408 1 +-8522878384019169280 1 +-8523434203900674048 1 +-8525212657458348032 1 +-8535957064499879936 1 +-8536369662934401024 1 +-8543982423727128576 1 +-8544299740525461504 1 +-8545239748068941824 1 +-8546758906409312256 1 +-8552393882631389184 1 +-8555709701170552832 1 +-8559008501282832384 1 +-8559252110266564608 1 +-8562524688907485184 1 +-8566856504746352640 1 +-8566940231897874432 1 +-8570933074545745920 1 +-8572823448513445888 1 +-8572949572756774912 1 +-8581765103969312768 1 +-8581979259158929408 1 +-8584520406368493568 1 +-8585134536083660800 1 +-8585966098173870080 1 +-8593419958317056000 1 +-8603817012434198528 1 +-8604758220106014720 1 +-8607195685207408640 1 +-8615168537390571520 1 +-8619303037130301440 1 +-8623238306523824128 1 +-8623965248051789824 1 +-8632237187473088512 0 +-8649711322250362880 1 +-8651641150831362048 1 +-8654433008222797824 1 +-8654797319350927360 1 +-8658387566611996672 0 +-8659643752269242368 1 +-8659692318743314432 1 +-8660149447361404928 1 +-8664374244449050624 1 +-8664806103426252800 1 +-8665218198816497664 1 +-8665764757143658496 1 +-8675661101615489024 1 +-8675892979328212992 1 +-8683802826440105984 1 +-8688153842294595584 1 +-8689606130068611072 1 +-8694818694700048384 1 +-8696162322976997376 1 +-8703026916864802816 1 +-8704234107608203264 1 +-8705403811649355776 1 +-8710298418608619520 1 +-8714995808835444736 1 +-8719510423723155456 1 +-8730803262481580032 0 +-8731068123910987776 1 +-8746702976270385152 1 +-8754966081778565120 1 +-8754992450211692544 1 +-8756989568739835904 1 +-8760655406971863040 1 +-8763062627136864256 1 +-8768744394742235136 1 +-8782213262837530624 1 +-8783777723063099392 1 +-8789178184387641344 1 +-8797972842900307968 1 +-8807361476639629312 0 +-8813211231120031744 1 +-8831091081349758976 1 +-8832750849949892608 1 +-8833019327569510400 1 +-8835408234247168000 1 +-8836899523028312064 1 +-8843859708698583040 1 +-8844949406948671488 1 +-8845239510002753536 1 +-8852770376039219200 1 +-8853553406533894144 1 +-8856151919723003904 1 +-8856821118526734336 1 +-8857335871148171264 1 +-8858063395050110976 1 +-8859107121649893376 1 +-8866442231663067136 1 +-8870186814744420352 0 +-8870673219965001728 1 +-8875546987176206336 1 +-8877053610728161280 1 +-8877431933441327104 1 +-8879742387365429248 1 +-8881446757271846912 1 +-8887058200926093312 1 +-8892963883085578240 1 +-8896045754034978816 1 +-8914039133569400832 1 +-8916987977485312000 1 +-8922409715403112448 1 +-8923529803981905920 1 +-8927968289860370432 1 +-8930307926221807616 1 +-8938849835283677184 1 +-8940944155843461120 1 +-8941201923743703040 0 +-8946656952763777024 1 +-8948335470186373120 1 +-8959796625322680320 1 +-8961059046745669632 1 +-8962547695651323904 1 +-8965578088652095488 1 +-8989473881707921408 1 +-8990843030306717696 1 +-8992599250893979648 1 +-8996954350906294272 1 +-9002912355472736256 1 +-9004892183139811328 1 +-9008631121684832256 1 +-9012093603044245504 1 +-9013952631912325120 1 +-9014145341570203648 1 +-9022154842129547264 1 +-9032650742739836928 1 +-9049720998034137088 1 +-9051477157204770816 1 +-9058029636530003968 1 +-9066993118333706240 1 +-9071565764086521856 1 +-9075302542655684608 1 +-9075486079396069376 1 +-9078662294976061440 1 +-9079801920509001728 1 +-9080568167841226752 1 +-9080956291212132352 1 +-9084940280061485056 1 +-9088239683374350336 1 +-9091113592821972992 1 +-9095689235523264512 1 +-9101953184875757568 1 +-9102482277760983040 1 +-9105358806324035584 1 +-9105701280936501248 1 +-9109392978217484288 1 +-9117959922369060864 1 +-9126793997498957824 1 +-9136398397785948160 1 +-9142610685888192512 1 +-9145593811310010368 1 +-9148197394287779840 1 +-9149719074367946752 1 +-9157613004431998976 1 +-9175038118837149696 1 +-9175279464813223936 1 +-9178166810751909888 1 +-9187662685618348032 0 +-9189155542884474880 1 +-9203804401302323200 1 +-9203942396257984512 1 +-9206329156028112896 1 +-9210275791460499456 1 +-9213132862973829120 1 +-9215144824304721920 1 +-9218875542187065344 1 +-9219066990552760320 1 +1021 1 +1030 1 +1032 1 +1039 1 +1046 1 +1048 1 +1053 1 +1055 1 +1058 1 +1065 1 +1066 1 +1074 1 +1075 2 +108 1 +1086 1 +1093 0 +1094 1 +1095 1 +1099 1 +1115 1 +112 1 +1127 1 +1128 1 +1132 1 +1134 1 +1141 1 +1142 1 +1145 1 +1153 1 +1157 1 +1158 1 +1165 2 +1168 0 +1177 1 +1187 1 +1189 1 +1198 1 +120 1 +1201 1 +1217 1 +1234 1 +1243 1 +1247 1 +1252 1 +1261 1 +1270 1 +1280 1 +1282 1 +1286 1 +1287 1 +1290 1 +1291 1 +1299 1 +130 1 +1307 1 +1312 1 +1316 1 +1321 1 +1337 1 +1341 1 +1342 1 +1343 1 +1345 1 +1346 1 +135 1 +1366 1 +1368 2 +1371 2 +138 1 +1386 1 +1398 1 +1409 1 +1422 1 +1423 1 +1436 1 +1439 1 +1447 0 +1450 1 +1454 0 +1458 1 +1462 1 +1466 1 +1470 1 +1477 1 +1481 2 +1489 1 +1493 1 +1495 1 +1501 1 +1506 1 +1508 1 +1509 2 +1518 1 +1520 0 +1521 1 +1524 1 +1530 1 +1537 2 +154 2 +1541 1 +1542 0 +1545 1 +1556 1 +1559 1 +1561 0 +1566 1 +1604 1 +1606 1 +1608 1 +1613 1 +1614 1 +1620 1 +1638 1 +1641 0 +1643 1 +1648 1 +1651 1 +1667 1 +1671 1 +1674 1 +1676 1 +1678 1 +168 1 +1681 1 +169 1 +1693 1 +1701 2 +1704 1 +1719 2 +1726 0 +1728 1 +1745 1 +1751 1 +1752 1 +1769 1 +1774 1 +1775 1 +1777 1 +1780 1 +1781 0 +1785 1 +1786 1 +1788 1 +1789 1 +1791 1 +1796 1 +1806 1 +181 1 +1811 1 +1813 1 +1826 1 +1827 1 +1835 1 +1837 1 +1845 1 +1846 1 +1856 2 +1862 1 +1863 1 +1864 0 +1866 1 +187 1 +1870 1 +188 1 +1880 1 +1890 1 +1892 1 +1899 1 +19 2 +1906 1 +1910 1 +1914 2 +1926 1 +1937 1 +1940 1 +1941 1 +1948 3 +1955 1 +1965 1 +1972 1 +1981 1 +1983 1 +1987 1 +1990 1 +1995 1 +1999 1 +2001 1 +2002 1 +2004 1 +2009 1 +2011 1 +2013 1 +2016 1 +2017 1 +2020 2 +2025 1 +2026 1 +2029 1 +203 1 +204 1 +2046 1 +2056 1 +2067 0 +2072 1 +2073 1 +2085 1 +2089 1 +2092 1 +2105 1 +2106 1 +2108 1 +213 2 +2131 1 +2138 1 +2140 1 +2144 1 +2155 1 +2177 1 +2179 1 +2180 1 +2183 1 +2186 1 +2187 1 +2189 0 +2193 2 +2194 1 +22 1 +2201 1 +2205 1 +2214 1 +2217 1 +2218 0 +2223 1 +2227 1 +2229 1 +2232 1 +2241 1 +2244 1 +2255 1 +2262 1 +2264 1 +2270 1 +2274 1 +2277 1 +2279 1 +228 1 +2283 1 +2285 2 +2295 1 +2306 1 +2320 1 +2323 1 +2325 2 +2335 1 +2341 1 +2348 1 +2358 1 +236 1 +2373 1 +238 1 +2386 1 +2393 2 +2398 1 +2400 1 +2410 0 +2412 2 +2420 1 +2426 1 +2434 1 +244 1 +2461 1 +2463 3 +2465 1 +2469 1 +2475 1 +2476 1 +2485 2 +2487 0 +2492 1 +2494 1 +2502 1 +2506 1 +2509 1 +2512 1 +2514 1 +2515 1 +2517 1 +2524 1 +2533 1 +2539 1 +2540 1 +255 1 +2551 1 +2553 1 +2560 2 +2563 1 +2565 1 +2569 1 +2579 1 +2580 1 +2587 1 +259 1 +2599 1 +2607 0 +2608 1 +2619 2 +2625 1 +2626 1 +263 2 +2637 1 +2647 1 +2649 1 +2662 1 +2663 1 +2675 1 +268 2 +2680 1 +2682 1 +2688 1 +2689 1 +2692 0 +2700 1 +2712 1 +2714 1 +2715 2 +2719 1 +2724 1 +2725 1 +2735 1 +2745 1 +275 1 +2752 1 +2762 1 +2772 1 +2776 1 +2786 2 +279 1 +2790 1 +2791 1 +2803 3 +2805 1 +281 1 +2810 1 +2811 1 +2816 1 +2821 1 +2824 1 +2835 1 +2842 1 +2843 2 +2846 1 +2847 1 +2848 1 +2850 1 +2855 2 +2862 1 +2878 1 +2886 1 +289 1 +2897 2 +2900 1 +2903 1 +2905 1 +2911 1 +2915 1 +2919 1 +2933 2 +2938 1 +294 1 +2941 1 +2942 1 +296 2 +2962 1 +2968 1 +2971 1 +2977 1 +2979 1 +2984 1 +2986 1 +2988 1 +2991 0 +3002 1 +3006 1 +301 1 +302 1 +3021 2 +3024 1 +3029 1 +3031 0 +3036 1 +3043 1 +3054 1 +3055 1 +3058 1 +3059 1 +3060 2 +3067 1 +3071 1 +3073 1 +3079 1 +3083 1 +3084 1 +3089 1 +3094 1 +3103 1 +311 1 +3111 1 +3118 0 +3119 1 +3144 1 +3147 1 +3159 2 +3163 1 +3174 1 +3183 1 +3190 1 +3197 1 +3199 1 +320 1 +3203 1 +3206 1 +3208 1 +3212 1 +3213 1 +3231 1 +3232 1 +3235 1 +3244 1 +3245 1 +3248 1 +3249 1 +3253 1 +3255 1 +3263 1 +3286 1 +3300 1 +3307 1 +3322 1 +3333 1 +3352 1 +336 1 +3365 1 +3366 1 +3397 1 +34 1 +3401 1 +3407 0 +3409 1 +341 1 +3418 2 +342 1 +3421 1 +3430 1 +3443 1 +3446 1 +345 0 +3456 0 +346 2 +3460 1 +3462 3 +3467 2 +347 1 +3472 1 +3478 1 +3493 1 +350 1 +3507 1 +3510 1 +3512 1 +3533 1 +3534 0 +3541 1 +3542 1 +355 1 +3554 1 +3555 2 +3563 1 +3566 1 +3567 1 +3568 0 +3579 1 +3588 2 +3599 1 +3606 1 +3608 1 +3609 1 +361 1 +3613 1 +3622 2 +3625 1 +3630 1 +3637 1 +364 1 +3648 1 +3663 1 +3664 1 +367 1 +3672 1 +3673 1 +3677 1 +3680 1 +3682 1 +3690 1 +3691 1 +3701 1 +3702 1 +3703 1 +3707 1 +3722 1 +3724 1 +3725 2 +3728 2 +3739 1 +3747 1 +3749 1 +375 1 +3755 1 +3763 1 +3764 1 +3769 1 +3770 2 +378 1 +3781 2 +3789 1 +379 1 +3810 1 +3812 1 +3823 1 +3824 1 +383 2 +3830 1 +3835 1 +3841 1 +3848 1 +3858 1 +3860 1 +3866 2 +3874 1 +3879 1 +388 1 +3887 1 +3901 1 +3904 1 +3907 1 +391 1 +3910 0 +3911 1 +3913 1 +392 1 +3932 1 +3940 1 +3941 1 +3945 1 +3946 1 +3949 1 +3958 1 +3960 1 +3961 1 +3962 0 +3965 1 +3974 2 +3980 1 +3990 1 +4018 1 +4020 1 +4024 1 +4030 1 +4037 1 +4051 1 +4054 1 +4056 1 +4075 0 +4078 1 +4088 1 +41 1 +412 2 +417 1 +425 1 +443 1 +454 1 +455 1 +462 1 +470 1 +471 1 +481 1 +482 1 +485 1 +489 1 +49 1 +490 1 +491 1 +5 1 +500 1 +501 2 +504 1 +522 1 +523 1 +524 1 +530 1 +535 1 +579 1 +583 1 +584 1 +586 1 +587 1 +590 1 +597 1 +601 1 +612 1 +615 1 +618 1 +65 1 +650 1 +658 1 +66 1 +661 2 +663 1 +664 1 +677 1 +68 1 +681 1 +687 1 +688 0 +690 1 +691 1 +6923604860394528768 1 +6924820982050758656 1 +6926925215281774592 1 +6927260280037097472 1 +6928080429732536320 1 +6933001829416034304 1 +6933451028794925056 1 +6933731240564056064 1 +6934570741217755136 1 +694 1 +6947488599548215296 1 +695 1 +6960137166475911168 1 +6962726713896484864 1 +6963217546192322560 1 +6964585306125008896 1 +6967631925774639104 1 +6969599299897163776 1 +6974475559697768448 1 +6982145326341423104 1 +6987889924212203520 1 +6991316084916879360 1 +6996686091335884800 1 +7006803044329021440 1 +7013693841855774720 1 +7014537632150224896 1 +7017956982081404928 1 +7022349041913978880 1 +7027529814236192768 1 +7031339012080549888 1 +7039820685967343616 1 +7045967493826387968 1 +7049773031131283456 1 +7052226236896256000 1 +7054271419461812224 1 +7054938591408996352 1 +7060236714847412224 1 +7061498706968428544 1 +7061809776248545280 1 +7062382339142156288 1 +7062605127422894080 1 +7065344324692443136 1 +7068517339681259520 1 +7069729473166090240 0 +707 1 +7077311975029555200 1 +7078641038157643776 0 +7080269176324218880 1 +7084659344078970880 1 +7086206629592252416 1 +7091300332052062208 0 +7099005292698550272 1 +71 1 +7107604675626008576 1 +7125231541858205696 1 +7128222874437238784 1 +7130159794259353600 1 +7130306447560826880 1 +7149417430082027520 1 +7153922334283776000 0 +7157247449513484288 1 +7164349895861829632 1 +7165364563962191872 1 +7166263463731421184 1 +7175638927948562432 1 +7186401810812059648 1 +7195454019231834112 1 +7198687580227043328 1 +7199539820886958080 0 +7204802700490858496 1 +7210160489915236352 1 +7212016545671348224 1 +7212090742612467712 1 +7217123582035116032 1 +7220131672176058368 1 +7220581538170413056 1 +7223569671814987776 1 +7226360892091416576 1 +7229607057201127424 1 +723 1 +7231399302953377792 1 +7232273749940838400 1 +7235109456886816768 1 +7237310132329488384 1 +7238339720750948352 1 +724 1 +7242751359672631296 1 +7249443195032985600 1 +7250237407877382144 1 +7254710367022645248 1 +7255302164215013376 1 +7259955893466931200 0 +7260908278294560768 1 +7265141874315517952 1 +7266437490436341760 1 +7271786885641666560 1 +7271887863395459072 1 +7274777328897802240 1 +7291432593139507200 1 +7295502697317097472 1 +7295926343524163584 1 +7296164580491075584 1 +7299197687217856512 1 +73 1 +7304839835188609024 1 +7308289763456000000 1 +7309156463509061632 1 +7310869618402910208 1 +7319711402123149312 1 +7333512171174223872 1 +7339426767877390336 1 +7343171468838567936 1 +7344029858387820544 1 +7345991518378442752 1 +7347732772348870656 1 +7348598907182800896 1 +735 1 +7354813692542304256 1 +7359004378440146944 1 +736 1 +7368920486374989824 1 +7370078518278397952 1 +7370803940448305152 1 +7375521127126089728 1 +7376467688511455232 1 +7378993334503694336 1 +738 1 +7381659098423926784 1 +7384150968511315968 1 +7386087924003676160 1 +7391208370547269632 1 +7393308503950548992 1 +7394967727502467072 1 +7401968422230032384 1 +7410096605330227200 1 +7410872053689794560 1 +7411793502161182720 1 +7412924364686458880 1 +7414865343000322048 1 +7418271723644403712 1 +743 1 +7432428551399669760 1 +7432998950057975808 1 +7436133434239229952 1 +7440265908266827776 1 +7450416810848313344 1 +7452756603516190720 1 +7454442625055145984 1 +7454632396542074880 1 +7461153404961128448 1 +7471208109437304832 1 +7473537548003352576 1 +7486884806277611520 1 +7487338208419823616 1 +7487538600082554880 1 +7490717730239250432 1 +7491898395977523200 1 +7492436934952574976 0 +7497276415392407552 1 +7497306924248834048 1 +7500716020874674176 1 +7514552840617558016 1 +7517159036469575680 1 +7524958388842078208 1 +7528074274555305984 1 +7528211148397944832 1 +7534042483076857856 1 +7534145866886782976 1 +7534549597202194432 1 +7545689659010949120 1 +7548958830580563968 1 +7549858023389003776 0 +7555301305375858688 1 +7566273236152721408 1 +7569249672628789248 1 +7570474972934488064 1 +7573530789362262016 0 +7575087487730196480 1 +7581052107944361984 1 +7581614118458335232 1 +7584007864107778048 1 +7592440105065308160 0 +7593521922173419520 1 +7596563216912211968 1 +7599019810193211392 1 +7608447395949109248 1 +7614435638888210432 1 +7620183559667081216 1 +7621013099259527168 1 +7625728883085025280 1 +7626715182847090688 1 +763 1 +7637152193832886272 1 +7647481735646363648 1 +7648729477297987584 0 +7652123583449161728 1 +7659279803863146496 1 +7662037650719850496 1 +7675009476762918912 1 +7678790769408172032 1 +7682327310082531328 1 +7686992843032010752 1 +7689489436826804224 1 +7690986322714066944 1 +7691062622443044864 1 +7696737688942567424 1 +7697541332524376064 1 +7700734109530767360 1 +7701723309715685376 1 +7705445437881278464 1 +7710447533880614912 1 +7718825401976684544 1 +7720187583697502208 1 +7731443941834678272 1 +7735566678126616576 1 +774 1 +7741854854673367040 1 +7746402369011277824 1 +7747874976739016704 1 +7748799008146366464 1 +7752740515534422016 1 +7753359568986636288 1 +7753882935005880320 1 +7761834341179375616 1 +7762823913046556672 1 +7765456790394871808 1 +7768984605670604800 0 +7775034125776363520 1 +7778936842502275072 1 +7779486624537370624 1 +7779735136559579136 1 +7782245855193874432 1 +7784169796350730240 1 +7784489776013295616 1 +779 1 +7790728456522784768 1 +7792036342592348160 1 +7794244032613703680 1 +78 1 +780 1 +7800332581637259264 1 +7801697837312884736 1 +7818464507324121088 1 +782 1 +7823874904139849728 1 +784 1 +7843804446688264192 1 +7844258063629852672 1 +7845953007588401152 0 +7857878068300898304 1 +7868367829080506368 1 +7870277756614623232 1 +7871189141676998656 1 +7871554728617025536 1 +7874764415950176256 1 +7885697257930588160 1 +7888238729321496576 1 +789 0 +7892026679115554816 1 +7892281003266408448 1 +7898670840507031552 1 +7909645665163804672 1 +7917494645725765632 1 +7919597361814577152 1 +7921639119138070528 1 +7922443154272395264 1 +7926898770090491904 1 +7933040277013962752 1 +7936149988210212864 1 +7944741547145502720 1 +7947544013461512192 1 +7948803266578161664 1 +7955126053367119872 1 +7961515985722605568 1 +7961909238130270208 1 +797 1 +7983789401706094592 1 +7989119273552158720 0 +7989160253372817408 1 +7997694023324975104 1 +7998357471114969088 1 +7998687089080467456 0 +80 0 +8000440057238052864 1 +8002769767000145920 1 +8004633750273925120 1 +8011181697250631680 1 +8011602724663336960 1 +8014986215157530624 1 +8017403886247927808 1 +803 1 +8045070943673671680 1 +8048726769133592576 1 +8059284960252731392 1 +8069531888205086720 1 +8071961599867387904 1 +8073733016154431488 1 +8079573715140485120 1 +808 1 +8087737899452432384 1 +809 1 +8091421389575282688 0 +8099215208813903872 1 +8100036735858401280 1 +8109381965028548608 1 +8111757081791733760 1 +8113585123802529792 1 +8116738401948377088 1 +812 1 +8120593157178228736 1 +8129551357032259584 1 +8135164922674872320 1 +8142241016679735296 1 +8143462899383345152 1 +8144552446127972352 1 +8145745969573666816 1 +8145750910080745472 1 +8146288732715196416 1 +8146492373537660928 1 +8148211378319933440 0 +815 1 +8150115791664340992 1 +8156018594610790400 1 +8156782979767238656 1 +8160569434550403072 1 +8160662610166194176 1 +8163948965373386752 1 +8168742078705262592 1 +8169878743136043008 1 +8171188598958407680 1 +8183233196086214656 1 +8184799300477943808 1 +8190539859890601984 1 +8190967051000659968 1 +8192304692696383488 1 +8195103847607967744 1 +8199513544090730496 1 +820 2 +8201303040648052736 1 +8201491077550874624 1 +8208354137450766336 1 +8210813831744118784 1 +8213810702473183232 1 +8219326436390821888 1 +8220104397160169472 1 +8221561626658881536 1 +8222714144797368320 1 +8223732800007864320 1 +823 1 +8230371298967609344 1 +8235179243092090880 1 +8244041599171862528 1 +8254763178969915392 1 +8268875586442256384 1 +8269730157217062912 1 +8272001752345690112 1 +8279056098670198784 1 +8282648443538710528 1 +8283099811330506752 1 +8286706213485297664 1 +8287522765741301760 1 +8290014929764040704 1 +8290944180915871744 1 +8294315622451740672 1 +8295110846998233088 1 +83 1 +8302473563519950848 1 +8316336224427483136 1 +8323460620425330688 1 +8325227661920133120 1 +8332670681629106176 1 +8333523087360901120 1 +8337549596011102208 1 +8345435427356090368 1 +835 1 +8351163199364390912 1 +8362046808797306880 1 +8365058996333953024 1 +8367680396909404160 1 +8368012468775608320 1 +837 1 +8371939471056470016 1 +8372408423196270592 1 +8372588378498777088 1 +8374321007870836736 1 +8376440110255243264 1 +8383159090746204160 1 +8388363436324085760 1 +8391407951622815744 0 +8391785334471589888 1 +8396433451610652672 1 +8398862954249560064 1 +8407869317250220032 1 +8410599906334097408 1 +8411494452500930560 1 +8415171956168417280 1 +8416121695917498368 1 +8417381121663746048 1 +8419958579638157312 1 +8424515140664360960 1 +8435912708683087872 1 +845 1 +8451612303224520704 1 +8454154705460666368 1 +8455496814886002688 1 +8457906374051020800 1 +8461498293348065280 1 +8463868417649524736 1 +8467976965865799680 1 +8470141334513098752 0 +8472429318602268672 1 +8473699639908261888 1 +8487573502287478784 1 +8489584373231919104 1 +8489735221193138176 1 +85 1 +8501910015960735744 1 +8508401924853850112 1 +8509508263705477120 1 +8514851182589771776 1 +8514979402185596928 1 +8515682078777081856 1 +8518454006987948032 1 +8519937082746634240 1 +8523972434954510336 1 +8524940073536954368 1 +8525336514806317056 1 +8525894870444638208 1 +8532016240026279936 1 +8536948829863198720 1 +8540237852367446016 1 +8543177193114779648 1 +8547243497773457408 1 +8551446856960942080 1 +8553195689344991232 1 +8554899472487596032 1 +8555933456197828608 0 +8555948987770511360 1 +8557218322962644992 1 +8558000156325707776 1 +8560526613401714688 1 +8569030475428511744 1 +8570983266408103936 1 +8571268359622172672 1 +8573305425181941760 1 +8577096957495025664 0 +8579974641030365184 1 +8583916402383601664 1 +8613562211893919744 1 +8625937019655200768 1 +8631515095562887168 1 +8637720762289659904 1 +8639254009546055680 1 +8641221723991433216 1 +8643198489997254656 1 +8644602243484803072 1 +8649296591032172544 1 +8652485812846567424 1 +8656571350884048896 0 +8660248367767076864 1 +8665969966920990720 1 +8666178591503564800 1 +8677632093825916928 1 +8677794924343164928 1 +868 1 +8682955459667951616 1 +8687042963221159936 1 +8688483860094599168 1 +8693036785094565888 1 +8697823501349609472 1 +8698055291501543424 1 +8708232769657815040 1 +8708845895460577280 1 +871 1 +8714829359200747520 1 +8716401555586727936 1 +8720504651219001344 1 +8723248113030782976 1 +873 1 +8731960288562044928 1 +8734584858442498048 1 +8736061027343859712 1 +874 1 +8752150411997356032 1 +8759089349412847616 1 +8759184090543857664 1 +8760285623204290560 1 +8761174805938331648 1 +8769199243315814400 1 +8773222500321361920 1 +8775009214012456960 1 +8779073705407963136 1 +8779711700787298304 1 +878 1 +8780196485890555904 1 +8782900615468302336 1 +8783241818558193664 1 +8785153741735616512 1 +8792059919353348096 1 +8793387410919038976 1 +8795069490394882048 1 +8806507556248731648 1 +8808467247666241536 1 +8811693967537774592 1 +8815398225009967104 1 +8817665768680906752 1 +8822384228057604096 1 +8825059717746376704 1 +8829545979081744384 0 +883 1 +8836228556823977984 1 +8837420822750314496 1 +8849475396952514560 1 +8850055384477401088 1 +8853989376829833216 1 +8854495099223375872 1 +8854677881758162944 1 +8854715632851345408 1 +8856674723376668672 1 +8868529429494071296 1 +8871707618793996288 1 +8875745082589929472 1 +888 1 +8895174927321243648 1 +8896237972875370496 1 +8897901899039473664 1 +8899122608190930944 1 +8900180888218329088 1 +8900351886974279680 1 +8900545829211299840 1 +8905330479248064512 0 +8910706980937261056 1 +8920344895701393408 1 +8920533610804609024 1 +8927691194719174656 1 +8928133990107881472 1 +8935252708196999168 1 +8936639033158410240 1 +8939431770838810624 1 +8945004737083555840 1 +8945302550165004288 1 +8962097525980225536 1 +8972161729142095872 1 +8979012655944220672 1 +898 2 +8983857919580209152 1 +8983912573761167360 0 +8984935029383389184 1 +8987827141270880256 1 +8991071342495531008 1 +8991442360387584000 1 +8994608999945125888 1 +8995562121346260992 1 +8996824426131390464 1 +9000633029632499712 1 +9001907486943993856 1 +9005866015985713152 1 +9016280522993975296 1 +9020143715350814720 0 +9023663198045544448 1 +9030480306789818368 1 +9038087402564657152 0 +9040958359122640896 1 +9043089884440068096 1 +9048002942653710336 1 +9048297564833079296 1 +9050032047355125760 1 +9053187076403060736 1 +9054887854393950208 1 +9062227900376203264 1 +9064847977742032896 1 +9067985867711291392 1 +9073672806863790080 1 +9075404705968840704 1 +9078604269481148416 1 +908 1 +9083076230151864320 1 +9083704659251798016 1 +9084402694981533696 0 +9085381906890203136 1 +9085434340468473856 1 +9086905513121890304 1 +9089435102788009984 1 +9091082386452684800 1 +9091085792947666944 1 +9094945190752903168 1 +9096395849845194752 1 +91 1 +9104574294205636608 1 +9107991000536498176 1 +9112400579327483904 1 +9114850402293882880 1 +9116137265342169088 1 +9117063974299148288 1 +9119046173224370176 1 +9123116008004288512 1 +913 1 +9131533983989358592 1 +9132009829414584320 1 +9136234417125007360 0 +9136548192574529536 1 +9139805788041134080 1 +914 1 +9148071980848742400 1 +9149216169284091904 1 +9165199002069458944 1 +9169248521377374208 1 +917 1 +9174894805640142848 1 +918 1 +9180098147855769600 1 +9182828596851990528 1 +9185458640237641728 1 +9185952983951343616 1 +9188173682239275008 1 +919 1 +9190466190353661952 1 +9191943992860327936 1 +9194388393453060096 1 +9199741683232399360 1 +9207107990561972224 1 +9207927479837319168 1 +9209153648361848832 1 +921 1 +9211455920344088576 1 +922 1 +923 1 +927 1 +928 1 +939 1 +94 0 +945 1 +947 1 +950 2 +958 0 +961 1 +965 1 +967 1 +976 1 +979 1 +982 1 +987 1 +997 1 +999 1 +NULL 80 +PREHOOK: query: explain vectorization detail +select b, count(*) from vectortab2korc group by b +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b, count(*) from vectortab2korc group by b +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: false + enabledConditionsNotMet: [hive.vectorized.execution.enabled IS false] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: b (type: bigint) + outputColumnNames: b + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count() + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: b (type: bigint) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint) + sort order: + + Map-reduce partition columns: _col0 (type: bigint) + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: KEY._col0 (type: bigint) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1000 Data size: 459356 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b, count(*) from vectortab2korc group by b +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(*) from vectortab2korc group by b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 1 +-6919476845891313664 1 +-6920172215209426944 1 +-6921654334727036928 1 +-6933565857643814912 1 +-6934304742087655424 1 +-6935038507792801792 1 +-6935548339131138048 1 +-6938706403992854528 1 +-6941777546186579968 1 +-6947955278050181120 1 +-6951350560260784128 1 +-6957946688477274112 1 +-6960947572095770624 1 +-6962271229404348416 1 +-6962292590214234112 1 +-6968771079156654080 1 +-6968892545529896960 1 +-6970396058557005824 1 +-6974654664348033024 1 +-6975459232300236800 1 +-6986178228432322560 1 +-6988811476286873600 1 +-6988970700649168896 1 +-6992217501957169152 1 +-6997233584896229376 1 +-7000925438663041024 1 +-7003696402314215424 1 +-7011425384222244864 1 +-7017212700635545600 1 +-7020852530219171840 1 +-7030489936116252672 1 +-7035132060308643840 1 +-7036607470351654912 1 +-7037375807670501376 1 +-7037638331316469760 1 +-7038455462786334720 1 +-7040248820505149440 1 +-7041362811802148864 1 +-7042183597114081280 1 +-7046180371529351168 1 +-7049618574399692800 1 +-7052619594823221248 1 +-7055619148037554176 1 +-7055760785575665664 1 +-7057750467944931328 1 +-7058986555327307776 1 +-7063777488249085952 1 +-7078068944081002496 1 +-7079898537463537664 1 +-7081500255163727872 1 +-7083646746411720704 1 +-7085247548404178944 1 +-7093825013581979648 1 +-7094189393339678720 1 +-7094827141662539776 1 +-7104310188119834624 1 +-7106210529681350656 1 +-7109790267244814336 1 +-7115054815375073280 1 +-7120456708338688000 1 +-7127548949860818944 1 +-7138415011665043456 1 +-7139677575412686848 1 +-7140008543769042944 1 +-7144791190333546496 1 +-7145585429014888448 1 +-7147490721376591872 1 +-7152177800841502720 1 +-7155539549555105792 1 +-7158472098920390656 1 +-7159700138947862528 1 +-7161165959057334272 1 +-7162299524557471744 1 +-7172594404186693632 1 +-7185369278665605120 1 +-7192529627893858304 1 +-7194281951646187520 1 +-7195217207163166720 1 +-7198372044947275776 1 +-7199983995864711168 1 +-7201085131997011968 1 +-7209060152494817280 1 +-7213775605408178176 1 +-7220731681653604352 1 +-7221474017515347968 1 +-7228589258642194432 1 +-7240213957902663680 1 +-7242345057866285056 1 +-7245872320493322240 1 +-7246123871306244096 1 +-7255010240787030016 1 +-7255686273677328384 1 +-7262049693594943488 1 +-7262384251828518912 1 +-7262798781688651776 1 +-7263060340185194496 1 +-7265998318110711808 1 +-7266719102957125632 1 +-7270034223527993344 1 +-7273590251991162880 1 +-7273694358642851840 1 +-7276111129363046400 1 +-7287583262310350848 1 +-7292078334519894016 1 +-7296096276653391872 1 +-7303847963918393344 1 +-7319315187617587200 1 +-7326863346317598720 1 +-7328087811698909184 1 +-7329767178250018816 1 +-7329807949048193024 1 +-7330203470474985472 1 +-7330413050756235264 1 +-7333278178640953344 1 +-7333362172439035904 1 +-7340231535789727744 1 +-7344146703223496704 1 +-7344947507044466688 1 +-7345562788132315136 1 +-7356685674003021824 1 +-7357888618985873408 1 +-7362189611124563968 1 +-7366430883634929664 1 +-7378096180613840896 1 +-7380731416973295616 1 +-7395343938785738752 1 +-7395553021620731904 1 +-7399631791131074560 1 +-7404052043914526720 1 +-7404057145074712576 1 +-7409317158045442048 1 +-7409653086454030336 1 +-7412431471807283200 1 +-7413317118463164416 1 +-7419068456205385728 1 +-7420448501073051648 1 +-7425160895830573056 1 +-7429331808102899712 1 +-7433265617153343488 1 +-7442593976514420736 1 +-7444070205513138176 1 +-7451660755269853184 1 +-7453525026342617088 1 +-7455898404374921216 1 +-7456869587112255488 1 +-7461750143936897024 1 +-7464270453557993472 1 +-7469660864676585472 1 +-7470307155642245120 1 +-7476082621253402624 1 +-7483435388852559872 1 +-7488345684795342848 1 +-7488415863027367936 1 +-7494411162675691520 1 +-7496839341561954304 1 +-7497303453253402624 1 +-7500200359698907136 1 +-7501803640821456896 1 +-7506254246954500096 1 +-7507424948896415744 1 +-7507578199583694848 1 +-7510418793070075904 1 +-7511202710200885248 1 +-7511952204985049088 1 +-7512289590991544320 1 +-7512297136103800832 1 +-7515996202498473984 1 +-7524170566881329152 1 +-7526793959592140800 1 +-7528526815026692096 1 +-7532751268425261056 1 +-7535857766791577600 1 +-7535958203887706112 1 +-7536330682873937920 1 +-7540104552219860992 1 +-7541860097718902784 1 +-7542857121910046720 1 +-7547245548870025216 1 +-7547432761381339136 1 +-7551394356730339328 1 +-7557017910095650816 1 +-7558524160894427136 1 +-7571293705217687552 1 +-7571957778022178816 1 +-7572262898020278272 1 +-7572962089372991488 1 +-7576194692683563008 1 +-7593363318079610880 1 +-7594824008626372608 1 +-7598782894648565760 1 +-7600138468036386816 1 +-7603467428164009984 1 +-7603569103205916672 1 +-7610137349734883328 1 +-7611584069753552896 1 +-7612455481940246528 1 +-7612466483992051712 1 +-7616522969329262592 1 +-7617860842651017216 1 +-7623047151287754752 1 +-7623359796281999360 1 +-7623405558242500608 1 +-7624057992767782912 1 +-7629401308029976576 1 +-7637494527844343808 1 +-7637755520917741568 1 +-7642381493746483200 1 +-7647020450676146176 1 +-7661192563533062144 1 +-7661250850555633664 1 +-7663293054873812992 1 +-7665186441284968448 1 +-7668388017287020544 1 +-7669169138124275712 1 +-7673901622181953536 1 +-7679894005808693248 1 +-7686220526274502656 1 +-7687052294777208832 1 +-7692192232238678016 1 +-7695491171376291840 1 +-7700203302632210432 1 +-7703540456272994304 1 +-7707242953271500800 1 +-7707867749256445952 1 +-7708932208121225216 1 +-7709958788604936192 1 +-7712425776235274240 1 +-7720966287634112512 1 +-7739424919198187520 1 +-7744462446680375296 1 +-7751265769984491520 1 +-7751427073017544704 1 +-7753051494275432448 1 +-7759238919361888256 1 +-7759425383684849664 1 +-7772064021830574080 1 +-7773957003968675840 1 +-7777884099756122112 1 +-7778829032042790912 1 +-7779270198785875968 1 +-7782344916178796544 1 +-7784419454650843136 1 +-7792903881635938304 1 +-7793447076762345472 1 +-7797149520019062784 1 +-7797151404935618560 1 +-7800879252150779904 1 +-7802538500225777664 1 +-7804116532814151680 1 +-7805985795815342080 1 +-7811060170911375360 1 +-7818454479651135488 1 +-7819437864839495680 1 +-7822452149325094912 1 +-7824788571789279232 1 +-7827420207675105280 1 +-7831320202242228224 1 +-7831595638727565312 1 +-7833618000492109824 1 +-7835907977757245440 1 +-7838598833900584960 1 +-7840338174858199040 1 +-7845896959112658944 1 +-7848043121524228096 1 +-7849504559236210688 1 +-7858505678035951616 1 +-7866079955473989632 1 +-7867219225874571264 1 +-7868306678534193152 1 +-7873753603299540992 1 +-7875953567586451456 1 +-7877598807023386624 1 +-7878145001776152576 1 +-7879864376629567488 1 +-7881262505761710080 1 +-7881351200983613440 1 +-7883252982752665600 1 +-7884460946615984128 1 +-7888051992910274560 1 +-7892780594910871552 1 +-7893577088764174336 1 +-7894382303337832448 1 +-7895991410072928256 1 +-7902517224300036096 1 +-7903158849011843072 1 +-7904188195431661568 1 +-7907355742053883904 1 +-7910019233726242816 1 +-7911421221625077760 1 +-7915999634274369536 1 +-7916510129632296960 1 +-7928062266382778368 1 +-7928440849566146560 1 +-7939634346485858304 1 +-7949309059286163456 1 +-7949445503604604928 1 +-7953426740065312768 1 +-7964801953178091520 1 +-7966960765508280320 1 +-7978782649203228672 1 +-7989766326847807488 1 +-7998947380180819968 1 +-8007017894942638080 1 +-8013397854633648128 1 +-8016589197379289088 1 +-8017791189288869888 1 +-8018511948141748224 1 +-8021859935185928192 1 +-8022573309127000064 1 +-8023708819947323392 1 +-8028275725610909696 1 +-8028910243475038208 1 +-8030058711611629568 1 +-8034414142083170304 1 +-8046189486447017984 1 +-8046238369820344320 1 +-8047774491688255488 1 +-8051395538179063808 1 +-8051587217208967168 1 +-8051871680800120832 1 +-8054581198284668928 1 +-8067243114610532352 1 +-8070535484085895168 1 +-8076479329071955968 1 +-8082793390939193344 1 +-8084716955963252736 1 +-8086577583338061824 1 +-8088337436168830976 1 +-8099313480512716800 1 +-8103788088118018048 1 +-8104684579106914304 1 +-8108693586698706944 1 +-8115963579415650304 1 +-8117838333114212352 1 +-8122639684164501504 1 +-8127494999848919040 1 +-8131997716860526592 1 +-8136227554401107968 1 +-8140349174954893312 1 +-8142667274351345664 1 +-8147405381260345344 1 +-8158011642485825536 1 +-8161047750470279168 1 +-8172827216441573376 1 +-8182421179156905984 1 +-8191825921746305024 1 +-8194062064124362752 1 +-8203008052020879360 1 +-8203075743525806080 1 +-8205148279289085952 1 +-8214462866994339840 1 +-8219876839318716416 1 +-8232763638546694144 1 +-8240034910581153792 1 +-8240684139569233920 1 +-8243487285852766208 1 +-8244116388227104768 1 +-8244657976255889408 1 +-8260340354454503424 1 +-8269917980278980608 1 +-8270479187688816640 1 +-8275337702906757120 1 +-8280276629934981120 1 +-8293833565967810560 1 +-8297230235506343936 1 +-8300526097982226432 1 +-8300764106868350976 1 +-8302817097848307712 1 +-8317591428117274624 1 +-8318886086186213376 1 +-8322751250650218496 1 +-8330233444291084288 1 +-8335810316927213568 1 +-8340523561480437760 1 +-8345065519816695808 1 +-8347088645602050048 1 +-8357136656913686528 1 +-8358130693961195520 1 +-8359839265974165504 1 +-8368269352975982592 1 +-8368487814665895936 1 +-8369487968903897088 1 +-8379109122834997248 1 +-8379964450833367040 1 +-8384695077413412864 1 +-8387347109404286976 1 +-8387536830476820480 1 +-8395998375405912064 1 +-8400045653258444800 1 +-8411282676082565120 1 +-8418913260807217152 1 +-8425998949410889728 1 +-8426531414463545344 1 +-8430283518005846016 1 +-8430370933326536704 1 +-8431492599012163584 1 +-8438554249514491904 1 +-8445801063348281344 1 +-8453491903284994048 1 +-8454143651040444416 1 +-8465978403747037184 1 +-8469607298426437632 1 +-8471480409335513088 1 +-8485389240529354752 1 +-8488247955875618816 1 +-8490382417169408000 1 +-8494118409594650624 1 +-8503342882470019072 1 +-8503573595507761152 1 +-8507279516485566464 1 +-8509547439040757760 1 +-8518060755719585792 1 +-8518258741831680000 1 +-8521578237232529408 1 +-8522878384019169280 1 +-8523434203900674048 1 +-8525212657458348032 1 +-8535957064499879936 1 +-8536369662934401024 1 +-8543982423727128576 1 +-8544299740525461504 1 +-8545239748068941824 1 +-8546758906409312256 1 +-8552393882631389184 1 +-8555709701170552832 1 +-8559008501282832384 1 +-8559252110266564608 1 +-8562524688907485184 1 +-8566856504746352640 1 +-8566940231897874432 1 +-8570933074545745920 1 +-8572823448513445888 1 +-8572949572756774912 1 +-8581765103969312768 1 +-8581979259158929408 1 +-8584520406368493568 1 +-8585134536083660800 1 +-8585966098173870080 1 +-8593419958317056000 1 +-8603817012434198528 1 +-8604758220106014720 1 +-8607195685207408640 1 +-8615168537390571520 1 +-8619303037130301440 1 +-8623238306523824128 1 +-8623965248051789824 1 +-8632237187473088512 1 +-8649711322250362880 1 +-8651641150831362048 1 +-8654433008222797824 1 +-8654797319350927360 1 +-8658387566611996672 1 +-8659643752269242368 1 +-8659692318743314432 1 +-8660149447361404928 1 +-8664374244449050624 1 +-8664806103426252800 1 +-8665218198816497664 1 +-8665764757143658496 1 +-8675661101615489024 1 +-8675892979328212992 1 +-8683802826440105984 1 +-8688153842294595584 1 +-8689606130068611072 1 +-8694818694700048384 1 +-8696162322976997376 1 +-8703026916864802816 1 +-8704234107608203264 1 +-8705403811649355776 1 +-8710298418608619520 1 +-8714995808835444736 1 +-8719510423723155456 1 +-8730803262481580032 1 +-8731068123910987776 1 +-8746702976270385152 1 +-8754966081778565120 1 +-8754992450211692544 1 +-8756989568739835904 1 +-8760655406971863040 1 +-8763062627136864256 1 +-8768744394742235136 1 +-8782213262837530624 1 +-8783777723063099392 1 +-8789178184387641344 1 +-8797972842900307968 1 +-8807361476639629312 1 +-8813211231120031744 1 +-8831091081349758976 1 +-8832750849949892608 1 +-8833019327569510400 1 +-8835408234247168000 1 +-8836899523028312064 1 +-8843859708698583040 1 +-8844949406948671488 1 +-8845239510002753536 1 +-8852770376039219200 1 +-8853553406533894144 1 +-8856151919723003904 1 +-8856821118526734336 1 +-8857335871148171264 1 +-8858063395050110976 1 +-8859107121649893376 1 +-8866442231663067136 1 +-8870186814744420352 1 +-8870673219965001728 1 +-8875546987176206336 1 +-8877053610728161280 1 +-8877431933441327104 1 +-8879742387365429248 1 +-8881446757271846912 1 +-8887058200926093312 1 +-8892963883085578240 1 +-8896045754034978816 1 +-8914039133569400832 1 +-8916987977485312000 1 +-8922409715403112448 1 +-8923529803981905920 1 +-8927968289860370432 1 +-8930307926221807616 1 +-8938849835283677184 1 +-8940944155843461120 1 +-8941201923743703040 1 +-8946656952763777024 1 +-8948335470186373120 1 +-8959796625322680320 1 +-8961059046745669632 1 +-8962547695651323904 1 +-8965578088652095488 1 +-8989473881707921408 1 +-8990843030306717696 1 +-8992599250893979648 1 +-8996954350906294272 1 +-9002912355472736256 1 +-9004892183139811328 1 +-9008631121684832256 1 +-9012093603044245504 1 +-9013952631912325120 1 +-9014145341570203648 1 +-9022154842129547264 1 +-9032650742739836928 1 +-9049720998034137088 1 +-9051477157204770816 1 +-9058029636530003968 1 +-9066993118333706240 1 +-9071565764086521856 1 +-9075302542655684608 1 +-9075486079396069376 1 +-9078662294976061440 1 +-9079801920509001728 1 +-9080568167841226752 1 +-9080956291212132352 1 +-9084940280061485056 1 +-9088239683374350336 1 +-9091113592821972992 1 +-9095689235523264512 1 +-9101953184875757568 1 +-9102482277760983040 1 +-9105358806324035584 1 +-9105701280936501248 1 +-9109392978217484288 1 +-9117959922369060864 1 +-9126793997498957824 1 +-9136398397785948160 1 +-9142610685888192512 1 +-9145593811310010368 1 +-9148197394287779840 1 +-9149719074367946752 1 +-9157613004431998976 1 +-9175038118837149696 1 +-9175279464813223936 1 +-9178166810751909888 1 +-9187662685618348032 1 +-9189155542884474880 1 +-9203804401302323200 1 +-9203942396257984512 1 +-9206329156028112896 1 +-9210275791460499456 1 +-9213132862973829120 1 +-9215144824304721920 1 +-9218875542187065344 1 +-9219066990552760320 1 +1021 1 +1030 1 +1032 1 +1039 1 +1046 1 +1048 1 +1053 1 +1055 1 +1058 1 +1065 1 +1066 1 +1074 1 +1075 3 +108 1 +1086 1 +1093 1 +1094 1 +1095 1 +1099 1 +1115 1 +112 1 +1127 1 +1128 1 +1132 1 +1134 1 +1141 1 +1142 1 +1145 1 +1153 1 +1157 1 +1158 1 +1165 2 +1168 1 +1177 1 +1187 1 +1189 1 +1198 1 +120 1 +1201 1 +1217 1 +1234 1 +1243 1 +1247 1 +1252 1 +1261 1 +1270 1 +1280 1 +1282 1 +1286 1 +1287 1 +1290 1 +1291 1 +1299 1 +130 1 +1307 1 +1312 1 +1316 1 +1321 1 +1337 1 +1341 1 +1342 1 +1343 1 +1345 1 +1346 1 +135 1 +1366 1 +1368 2 +1371 2 +138 1 +1386 1 +1398 1 +1409 1 +1422 1 +1423 1 +1436 1 +1439 1 +1447 1 +1450 1 +1454 1 +1458 1 +1462 1 +1466 1 +1470 1 +1477 1 +1481 2 +1489 1 +1493 1 +1495 1 +1501 1 +1506 1 +1508 1 +1509 2 +1518 1 +1520 1 +1521 1 +1524 1 +1530 1 +1537 2 +154 2 +1541 1 +1542 1 +1545 1 +1556 1 +1559 1 +1561 1 +1566 1 +1604 1 +1606 1 +1608 1 +1613 1 +1614 1 +1620 1 +1638 1 +1641 1 +1643 1 +1648 1 +1651 1 +1667 1 +1671 1 +1674 1 +1676 1 +1678 1 +168 1 +1681 1 +169 1 +1693 1 +1701 2 +1704 1 +1719 2 +1726 1 +1728 1 +1745 1 +1751 1 +1752 1 +1769 1 +1774 1 +1775 1 +1777 2 +1780 1 +1781 1 +1785 1 +1786 1 +1788 1 +1789 1 +1791 1 +1796 1 +1806 1 +181 1 +1811 1 +1813 1 +1826 1 +1827 1 +1835 1 +1837 1 +1845 1 +1846 1 +1856 2 +1862 1 +1863 1 +1864 1 +1866 1 +187 1 +1870 1 +188 1 +1880 1 +1890 1 +1892 1 +1899 1 +19 2 +1906 1 +1910 1 +1914 2 +1926 1 +1937 1 +1940 1 +1941 1 +1948 3 +1955 1 +1965 1 +1972 1 +1981 1 +1983 1 +1987 1 +1990 1 +1995 1 +1999 1 +2001 1 +2002 1 +2004 1 +2009 1 +2011 1 +2013 1 +2016 1 +2017 1 +2020 2 +2025 1 +2026 1 +2029 1 +203 1 +204 1 +2046 1 +2056 1 +2067 1 +2072 1 +2073 1 +2085 1 +2089 1 +2092 1 +2105 1 +2106 1 +2108 1 +213 2 +2131 1 +2138 1 +2140 1 +2144 1 +2155 1 +2177 1 +2179 1 +2180 1 +2183 1 +2186 1 +2187 1 +2189 1 +2193 2 +2194 1 +22 1 +2201 1 +2205 1 +2214 1 +2217 1 +2218 1 +2223 1 +2227 1 +2229 1 +2232 1 +2241 1 +2244 1 +2255 1 +2262 1 +2264 1 +2270 1 +2274 1 +2277 1 +2279 1 +228 1 +2283 1 +2285 2 +2295 1 +2306 1 +2320 1 +2323 1 +2325 2 +2335 1 +2341 1 +2348 1 +2358 1 +236 1 +2373 1 +238 1 +2386 1 +2393 2 +2398 1 +2400 1 +2410 1 +2412 2 +2420 1 +2426 1 +2434 1 +244 1 +2461 1 +2463 3 +2465 1 +2469 1 +2475 1 +2476 1 +2485 2 +2487 1 +2492 1 +2494 1 +2502 1 +2506 1 +2509 1 +2512 1 +2514 1 +2515 1 +2517 1 +2524 1 +2533 1 +2539 1 +2540 1 +255 1 +2551 1 +2553 1 +2560 2 +2563 1 +2565 1 +2569 1 +2579 1 +2580 1 +2587 1 +259 1 +2599 1 +2607 1 +2608 1 +2619 2 +2625 1 +2626 1 +263 2 +2637 1 +2647 1 +2649 1 +2662 1 +2663 1 +2675 1 +268 2 +2680 1 +2682 1 +2688 1 +2689 1 +2692 1 +2700 1 +2712 1 +2714 1 +2715 2 +2719 1 +2724 1 +2725 1 +2735 1 +2745 1 +275 1 +2752 1 +2762 1 +2772 1 +2776 1 +2786 2 +279 1 +2790 1 +2791 1 +2803 3 +2805 1 +281 1 +2810 1 +2811 1 +2816 1 +2821 1 +2824 1 +2835 1 +2842 1 +2843 2 +2846 1 +2847 1 +2848 1 +2850 1 +2855 2 +2862 1 +2878 1 +2886 1 +289 1 +2897 2 +2900 1 +2903 1 +2905 1 +2911 1 +2915 1 +2919 1 +2933 2 +2938 1 +294 1 +2941 1 +2942 1 +296 2 +2962 1 +2968 2 +2971 1 +2977 1 +2979 1 +2984 1 +2986 1 +2988 1 +2991 1 +3002 1 +3006 1 +301 1 +302 1 +3021 2 +3024 1 +3029 1 +3031 1 +3036 1 +3043 1 +3054 1 +3055 1 +3058 1 +3059 1 +3060 2 +3067 1 +3071 1 +3073 1 +3079 2 +3083 1 +3084 1 +3089 1 +3094 1 +3103 1 +311 1 +3111 1 +3118 1 +3119 1 +3144 1 +3147 1 +3159 2 +3163 1 +3174 1 +3183 1 +3190 1 +3197 1 +3199 1 +320 1 +3203 1 +3206 1 +3208 1 +3212 1 +3213 1 +3231 1 +3232 1 +3235 1 +3244 1 +3245 1 +3248 1 +3249 1 +3253 1 +3255 1 +3263 1 +3286 1 +3300 1 +3307 1 +3322 1 +3333 1 +3352 1 +336 1 +3365 1 +3366 1 +3397 1 +34 1 +3401 1 +3407 1 +3409 1 +341 1 +3418 2 +342 1 +3421 1 +3430 1 +3443 1 +3446 1 +345 1 +3456 1 +346 2 +3460 1 +3462 3 +3467 2 +347 1 +3472 1 +3478 1 +3493 1 +350 1 +3507 1 +3510 1 +3512 1 +3533 1 +3534 1 +3541 1 +3542 1 +355 1 +3554 1 +3555 2 +3563 1 +3566 1 +3567 1 +3568 1 +3579 1 +3588 2 +3599 1 +3606 1 +3608 1 +3609 1 +361 1 +3613 1 +3622 2 +3625 1 +3630 1 +3637 1 +364 1 +3648 1 +3663 1 +3664 1 +367 1 +3672 1 +3673 1 +3677 1 +3680 1 +3682 1 +3690 1 +3691 1 +3701 1 +3702 1 +3703 1 +3707 1 +3722 1 +3724 1 +3725 2 +3728 2 +3739 1 +3747 1 +3749 1 +375 1 +3755 1 +3763 1 +3764 1 +3769 1 +3770 2 +378 1 +3781 2 +3789 1 +379 1 +3810 1 +3812 1 +3823 1 +3824 1 +383 2 +3830 1 +3835 1 +3841 1 +3848 1 +3858 1 +3860 1 +3866 2 +3874 1 +3879 1 +388 1 +3887 1 +3901 1 +3904 1 +3907 1 +391 1 +3910 1 +3911 1 +3913 1 +392 1 +3932 1 +3940 1 +3941 1 +3945 1 +3946 1 +3949 1 +3958 1 +3960 1 +3961 1 +3962 1 +3965 1 +3974 2 +3980 1 +3990 1 +4018 1 +4020 1 +4024 1 +4030 1 +4037 1 +4051 1 +4054 1 +4056 1 +4075 1 +4078 1 +4088 1 +41 1 +412 2 +417 1 +425 1 +443 1 +454 1 +455 1 +462 1 +470 1 +471 1 +481 1 +482 1 +485 1 +489 1 +49 1 +490 1 +491 1 +5 1 +500 1 +501 2 +504 1 +522 1 +523 1 +524 1 +530 1 +535 1 +579 1 +583 1 +584 1 +586 1 +587 1 +590 1 +597 1 +601 1 +612 1 +615 1 +618 1 +65 1 +650 1 +658 1 +66 1 +661 2 +663 1 +664 1 +677 1 +68 1 +681 1 +687 1 +688 1 +690 1 +691 1 +6923604860394528768 1 +6924820982050758656 1 +6926925215281774592 1 +6927260280037097472 1 +6928080429732536320 1 +6933001829416034304 1 +6933451028794925056 1 +6933731240564056064 1 +6934570741217755136 1 +694 1 +6947488599548215296 1 +695 1 +6960137166475911168 1 +6962726713896484864 1 +6963217546192322560 1 +6964585306125008896 1 +6967631925774639104 1 +6969599299897163776 1 +6974475559697768448 1 +6982145326341423104 1 +6987889924212203520 1 +6991316084916879360 1 +6996686091335884800 1 +7006803044329021440 1 +7013693841855774720 1 +7014537632150224896 1 +7017956982081404928 1 +7022349041913978880 1 +7027529814236192768 1 +7031339012080549888 1 +7039820685967343616 1 +7045967493826387968 1 +7049773031131283456 1 +7052226236896256000 1 +7054271419461812224 1 +7054938591408996352 1 +7060236714847412224 1 +7061498706968428544 1 +7061809776248545280 1 +7062382339142156288 1 +7062605127422894080 1 +7065344324692443136 1 +7068517339681259520 1 +7069729473166090240 1 +707 1 +7077311975029555200 1 +7078641038157643776 1 +7080269176324218880 1 +7084659344078970880 1 +7086206629592252416 1 +7091300332052062208 1 +7099005292698550272 1 +71 1 +7107604675626008576 1 +7125231541858205696 1 +7128222874437238784 1 +7130159794259353600 1 +7130306447560826880 1 +7149417430082027520 1 +7153922334283776000 1 +7157247449513484288 1 +7164349895861829632 1 +7165364563962191872 1 +7166263463731421184 1 +7175638927948562432 1 +7186401810812059648 1 +7195454019231834112 1 +7198687580227043328 1 +7199539820886958080 1 +7204802700490858496 1 +7210160489915236352 1 +7212016545671348224 1 +7212090742612467712 1 +7217123582035116032 1 +7220131672176058368 1 +7220581538170413056 1 +7223569671814987776 1 +7226360892091416576 1 +7229607057201127424 1 +723 1 +7231399302953377792 1 +7232273749940838400 1 +7235109456886816768 1 +7237310132329488384 1 +7238339720750948352 1 +724 1 +7242751359672631296 1 +7249443195032985600 1 +7250237407877382144 1 +7254710367022645248 1 +7255302164215013376 1 +7259955893466931200 1 +7260908278294560768 1 +7265141874315517952 1 +7266437490436341760 1 +7271786885641666560 1 +7271887863395459072 1 +7274777328897802240 1 +7291432593139507200 1 +7295502697317097472 1 +7295926343524163584 1 +7296164580491075584 1 +7299197687217856512 1 +73 1 +7304839835188609024 1 +7308289763456000000 1 +7309156463509061632 1 +7310869618402910208 1 +7319711402123149312 1 +7333512171174223872 1 +7339426767877390336 1 +7343171468838567936 1 +7344029858387820544 1 +7345991518378442752 1 +7347732772348870656 1 +7348598907182800896 1 +735 1 +7354813692542304256 1 +7359004378440146944 1 +736 1 +7368920486374989824 1 +7370078518278397952 1 +7370803940448305152 1 +7375521127126089728 1 +7376467688511455232 1 +7378993334503694336 1 +738 1 +7381659098423926784 1 +7384150968511315968 1 +7386087924003676160 1 +7391208370547269632 1 +7393308503950548992 1 +7394967727502467072 1 +7401968422230032384 1 +7410096605330227200 1 +7410872053689794560 1 +7411793502161182720 1 +7412924364686458880 1 +7414865343000322048 1 +7418271723644403712 1 +743 1 +7432428551399669760 1 +7432998950057975808 1 +7436133434239229952 1 +7440265908266827776 1 +7450416810848313344 1 +7452756603516190720 1 +7454442625055145984 1 +7454632396542074880 1 +7461153404961128448 1 +7471208109437304832 1 +7473537548003352576 1 +7486884806277611520 1 +7487338208419823616 1 +7487538600082554880 1 +7490717730239250432 1 +7491898395977523200 1 +7492436934952574976 1 +7497276415392407552 1 +7497306924248834048 1 +7500716020874674176 1 +7514552840617558016 1 +7517159036469575680 1 +7524958388842078208 1 +7528074274555305984 1 +7528211148397944832 1 +7534042483076857856 1 +7534145866886782976 1 +7534549597202194432 1 +7545689659010949120 1 +7548958830580563968 1 +7549858023389003776 1 +7555301305375858688 1 +7566273236152721408 1 +7569249672628789248 1 +7570474972934488064 1 +7573530789362262016 1 +7575087487730196480 1 +7581052107944361984 1 +7581614118458335232 1 +7584007864107778048 1 +7592440105065308160 1 +7593521922173419520 1 +7596563216912211968 1 +7599019810193211392 1 +7608447395949109248 1 +7614435638888210432 1 +7620183559667081216 1 +7621013099259527168 1 +7625728883085025280 1 +7626715182847090688 1 +763 1 +7637152193832886272 1 +7647481735646363648 1 +7648729477297987584 1 +7652123583449161728 1 +7659279803863146496 1 +7662037650719850496 1 +7675009476762918912 1 +7678790769408172032 1 +7682327310082531328 1 +7686992843032010752 1 +7689489436826804224 1 +7690986322714066944 1 +7691062622443044864 1 +7696737688942567424 1 +7697541332524376064 1 +7700734109530767360 1 +7701723309715685376 1 +7705445437881278464 1 +7710447533880614912 1 +7718825401976684544 1 +7720187583697502208 1 +7731443941834678272 1 +7735566678126616576 1 +774 1 +7741854854673367040 1 +7746402369011277824 1 +7747874976739016704 1 +7748799008146366464 1 +7752740515534422016 1 +7753359568986636288 1 +7753882935005880320 1 +7761834341179375616 1 +7762823913046556672 1 +7765456790394871808 1 +7768984605670604800 1 +7775034125776363520 1 +7778936842502275072 1 +7779486624537370624 1 +7779735136559579136 1 +7782245855193874432 1 +7784169796350730240 1 +7784489776013295616 1 +779 1 +7790728456522784768 1 +7792036342592348160 1 +7794244032613703680 1 +78 1 +780 1 +7800332581637259264 1 +7801697837312884736 1 +7818464507324121088 1 +782 1 +7823874904139849728 1 +784 1 +7843804446688264192 1 +7844258063629852672 1 +7845953007588401152 1 +7857878068300898304 1 +7868367829080506368 1 +7870277756614623232 1 +7871189141676998656 1 +7871554728617025536 1 +7874764415950176256 1 +7885697257930588160 1 +7888238729321496576 1 +789 1 +7892026679115554816 1 +7892281003266408448 1 +7898670840507031552 1 +7909645665163804672 1 +7917494645725765632 1 +7919597361814577152 1 +7921639119138070528 1 +7922443154272395264 1 +7926898770090491904 1 +7933040277013962752 1 +7936149988210212864 1 +7944741547145502720 1 +7947544013461512192 1 +7948803266578161664 1 +7955126053367119872 1 +7961515985722605568 1 +7961909238130270208 1 +797 1 +7983789401706094592 1 +7989119273552158720 1 +7989160253372817408 1 +7997694023324975104 1 +7998357471114969088 1 +7998687089080467456 1 +80 1 +8000440057238052864 1 +8002769767000145920 1 +8004633750273925120 1 +8011181697250631680 1 +8011602724663336960 1 +8014986215157530624 1 +8017403886247927808 1 +803 1 +8045070943673671680 1 +8048726769133592576 1 +8059284960252731392 1 +8069531888205086720 1 +8071961599867387904 1 +8073733016154431488 1 +8079573715140485120 1 +808 1 +8087737899452432384 1 +809 1 +8091421389575282688 1 +8099215208813903872 1 +8100036735858401280 1 +8109381965028548608 1 +8111757081791733760 1 +8113585123802529792 1 +8116738401948377088 1 +812 1 +8120593157178228736 1 +8129551357032259584 1 +8135164922674872320 1 +8142241016679735296 1 +8143462899383345152 1 +8144552446127972352 1 +8145745969573666816 1 +8145750910080745472 1 +8146288732715196416 1 +8146492373537660928 1 +8148211378319933440 1 +815 1 +8150115791664340992 1 +8156018594610790400 1 +8156782979767238656 1 +8160569434550403072 1 +8160662610166194176 1 +8163948965373386752 1 +8168742078705262592 1 +8169878743136043008 1 +8171188598958407680 1 +8183233196086214656 1 +8184799300477943808 1 +8190539859890601984 1 +8190967051000659968 1 +8192304692696383488 1 +8195103847607967744 1 +8199513544090730496 1 +820 2 +8201303040648052736 1 +8201491077550874624 1 +8208354137450766336 1 +8210813831744118784 1 +8213810702473183232 1 +8219326436390821888 1 +8220104397160169472 1 +8221561626658881536 1 +8222714144797368320 1 +8223732800007864320 1 +823 1 +8230371298967609344 1 +8235179243092090880 1 +8244041599171862528 1 +8254763178969915392 1 +8268875586442256384 1 +8269730157217062912 1 +8272001752345690112 1 +8279056098670198784 1 +8282648443538710528 1 +8283099811330506752 1 +8286706213485297664 1 +8287522765741301760 1 +8290014929764040704 1 +8290944180915871744 1 +8294315622451740672 1 +8295110846998233088 1 +83 1 +8302473563519950848 1 +8316336224427483136 1 +8323460620425330688 1 +8325227661920133120 1 +8332670681629106176 1 +8333523087360901120 1 +8337549596011102208 1 +8345435427356090368 1 +835 1 +8351163199364390912 1 +8362046808797306880 1 +8365058996333953024 1 +8367680396909404160 1 +8368012468775608320 1 +837 1 +8371939471056470016 1 +8372408423196270592 1 +8372588378498777088 1 +8374321007870836736 1 +8376440110255243264 1 +8383159090746204160 1 +8388363436324085760 1 +8391407951622815744 1 +8391785334471589888 1 +8396433451610652672 1 +8398862954249560064 1 +8407869317250220032 1 +8410599906334097408 1 +8411494452500930560 1 +8415171956168417280 1 +8416121695917498368 1 +8417381121663746048 1 +8419958579638157312 1 +8424515140664360960 1 +8435912708683087872 1 +845 1 +8451612303224520704 1 +8454154705460666368 1 +8455496814886002688 1 +8457906374051020800 1 +8461498293348065280 1 +8463868417649524736 1 +8467976965865799680 1 +8470141334513098752 1 +8472429318602268672 1 +8473699639908261888 1 +8487573502287478784 1 +8489584373231919104 1 +8489735221193138176 1 +85 1 +8501910015960735744 1 +8508401924853850112 1 +8509508263705477120 1 +8514851182589771776 1 +8514979402185596928 1 +8515682078777081856 1 +8518454006987948032 1 +8519937082746634240 1 +8523972434954510336 1 +8524940073536954368 1 +8525336514806317056 1 +8525894870444638208 1 +8532016240026279936 1 +8536948829863198720 1 +8540237852367446016 1 +8543177193114779648 1 +8547243497773457408 1 +8551446856960942080 1 +8553195689344991232 1 +8554899472487596032 1 +8555933456197828608 1 +8555948987770511360 1 +8557218322962644992 1 +8558000156325707776 1 +8560526613401714688 1 +8569030475428511744 1 +8570983266408103936 1 +8571268359622172672 1 +8573305425181941760 1 +8577096957495025664 1 +8579974641030365184 1 +8583916402383601664 1 +8613562211893919744 1 +8625937019655200768 1 +8631515095562887168 1 +8637720762289659904 1 +8639254009546055680 1 +8641221723991433216 1 +8643198489997254656 1 +8644602243484803072 1 +8649296591032172544 1 +8652485812846567424 1 +8656571350884048896 1 +8660248367767076864 1 +8665969966920990720 1 +8666178591503564800 1 +8677632093825916928 1 +8677794924343164928 1 +868 1 +8682955459667951616 1 +8687042963221159936 1 +8688483860094599168 1 +8693036785094565888 1 +8697823501349609472 1 +8698055291501543424 1 +8708232769657815040 1 +8708845895460577280 1 +871 1 +8714829359200747520 1 +8716401555586727936 1 +8720504651219001344 1 +8723248113030782976 1 +873 1 +8731960288562044928 1 +8734584858442498048 1 +8736061027343859712 1 +874 1 +8752150411997356032 1 +8759089349412847616 1 +8759184090543857664 1 +8760285623204290560 1 +8761174805938331648 1 +8769199243315814400 1 +8773222500321361920 1 +8775009214012456960 1 +8779073705407963136 1 +8779711700787298304 1 +878 1 +8780196485890555904 1 +8782900615468302336 1 +8783241818558193664 1 +8785153741735616512 1 +8792059919353348096 1 +8793387410919038976 1 +8795069490394882048 1 +8806507556248731648 1 +8808467247666241536 1 +8811693967537774592 1 +8815398225009967104 1 +8817665768680906752 1 +8822384228057604096 1 +8825059717746376704 1 +8829545979081744384 1 +883 1 +8836228556823977984 1 +8837420822750314496 1 +8849475396952514560 1 +8850055384477401088 1 +8853989376829833216 1 +8854495099223375872 1 +8854677881758162944 1 +8854715632851345408 1 +8856674723376668672 1 +8868529429494071296 1 +8871707618793996288 1 +8875745082589929472 1 +888 1 +8895174927321243648 1 +8896237972875370496 1 +8897901899039473664 1 +8899122608190930944 1 +8900180888218329088 1 +8900351886974279680 1 +8900545829211299840 1 +8905330479248064512 1 +8910706980937261056 1 +8920344895701393408 1 +8920533610804609024 1 +8927691194719174656 1 +8928133990107881472 1 +8935252708196999168 1 +8936639033158410240 1 +8939431770838810624 1 +8945004737083555840 1 +8945302550165004288 1 +8962097525980225536 1 +8972161729142095872 1 +8979012655944220672 1 +898 2 +8983857919580209152 1 +8983912573761167360 1 +8984935029383389184 1 +8987827141270880256 1 +8991071342495531008 1 +8991442360387584000 1 +8994608999945125888 1 +8995562121346260992 1 +8996824426131390464 1 +9000633029632499712 1 +9001907486943993856 1 +9005866015985713152 1 +9016280522993975296 1 +9020143715350814720 1 +9023663198045544448 1 +9030480306789818368 1 +9038087402564657152 1 +9040958359122640896 1 +9043089884440068096 1 +9048002942653710336 1 +9048297564833079296 1 +9050032047355125760 1 +9053187076403060736 1 +9054887854393950208 1 +9062227900376203264 1 +9064847977742032896 1 +9067985867711291392 1 +9073672806863790080 1 +9075404705968840704 1 +9078604269481148416 1 +908 1 +9083076230151864320 1 +9083704659251798016 1 +9084402694981533696 1 +9085381906890203136 1 +9085434340468473856 1 +9086905513121890304 1 +9089435102788009984 1 +9091082386452684800 1 +9091085792947666944 1 +9094945190752903168 1 +9096395849845194752 1 +91 1 +9104574294205636608 1 +9107991000536498176 1 +9112400579327483904 1 +9114850402293882880 1 +9116137265342169088 1 +9117063974299148288 1 +9119046173224370176 1 +9123116008004288512 1 +913 1 +9131533983989358592 1 +9132009829414584320 1 +9136234417125007360 1 +9136548192574529536 1 +9139805788041134080 1 +914 1 +9148071980848742400 1 +9149216169284091904 1 +9165199002069458944 1 +9169248521377374208 1 +917 1 +9174894805640142848 1 +918 1 +9180098147855769600 1 +9182828596851990528 1 +9185458640237641728 1 +9185952983951343616 1 +9188173682239275008 1 +919 1 +9190466190353661952 1 +9191943992860327936 1 +9194388393453060096 1 +9199741683232399360 1 +9207107990561972224 1 +9207927479837319168 1 +9209153648361848832 1 +921 1 +9211455920344088576 1 +922 1 +923 1 +927 1 +928 1 +939 1 +94 1 +945 1 +947 1 +950 2 +958 1 +961 1 +965 1 +967 1 +976 1 +979 1 +982 1 +987 1 +997 1 +999 1 +NULL 83 +PREHOOK: query: explain vectorization detail +select b from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: false + enabledConditionsNotMet: [hive.vectorized.execution.enabled IS false] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: b (type: bigint) + outputColumnNames: b + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: b (type: bigint), 0 (type: int) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint), _col1 (type: int) + sort order: ++ + Map-reduce partition columns: _col0 (type: bigint), _col1 (type: int) + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + Reduce Operator Tree: + Group By Operator + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: KEY._col0 (type: bigint), KEY._col1 (type: int) + mode: mergepartial + outputColumnNames: _col0 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + pruneGroupingSetId: true + File Output Operator + compressed: false + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 +-6919476845891313664 +-6920172215209426944 +-6921654334727036928 +-6933565857643814912 +-6934304742087655424 +-6935038507792801792 +-6935548339131138048 +-6938706403992854528 +-6941777546186579968 +-6947955278050181120 +-6951350560260784128 +-6957946688477274112 +-6960947572095770624 +-6962271229404348416 +-6962292590214234112 +-6968771079156654080 +-6968892545529896960 +-6970396058557005824 +-6974654664348033024 +-6975459232300236800 +-6986178228432322560 +-6988811476286873600 +-6988970700649168896 +-6992217501957169152 +-6997233584896229376 +-7000925438663041024 +-7003696402314215424 +-7011425384222244864 +-7017212700635545600 +-7020852530219171840 +-7030489936116252672 +-7035132060308643840 +-7036607470351654912 +-7037375807670501376 +-7037638331316469760 +-7038455462786334720 +-7040248820505149440 +-7041362811802148864 +-7042183597114081280 +-7046180371529351168 +-7049618574399692800 +-7052619594823221248 +-7055619148037554176 +-7055760785575665664 +-7057750467944931328 +-7058986555327307776 +-7063777488249085952 +-7078068944081002496 +-7079898537463537664 +-7081500255163727872 +-7083646746411720704 +-7085247548404178944 +-7093825013581979648 +-7094189393339678720 +-7094827141662539776 +-7104310188119834624 +-7106210529681350656 +-7109790267244814336 +-7115054815375073280 +-7120456708338688000 +-7127548949860818944 +-7138415011665043456 +-7139677575412686848 +-7140008543769042944 +-7144791190333546496 +-7145585429014888448 +-7147490721376591872 +-7152177800841502720 +-7155539549555105792 +-7158472098920390656 +-7159700138947862528 +-7161165959057334272 +-7162299524557471744 +-7172594404186693632 +-7185369278665605120 +-7192529627893858304 +-7194281951646187520 +-7195217207163166720 +-7198372044947275776 +-7199983995864711168 +-7201085131997011968 +-7209060152494817280 +-7213775605408178176 +-7220731681653604352 +-7221474017515347968 +-7228589258642194432 +-7240213957902663680 +-7242345057866285056 +-7245872320493322240 +-7246123871306244096 +-7255010240787030016 +-7255686273677328384 +-7262049693594943488 +-7262384251828518912 +-7262798781688651776 +-7263060340185194496 +-7265998318110711808 +-7266719102957125632 +-7270034223527993344 +-7273590251991162880 +-7273694358642851840 +-7276111129363046400 +-7287583262310350848 +-7292078334519894016 +-7296096276653391872 +-7303847963918393344 +-7319315187617587200 +-7326863346317598720 +-7328087811698909184 +-7329767178250018816 +-7329807949048193024 +-7330203470474985472 +-7330413050756235264 +-7333278178640953344 +-7333362172439035904 +-7340231535789727744 +-7344146703223496704 +-7344947507044466688 +-7345562788132315136 +-7356685674003021824 +-7357888618985873408 +-7362189611124563968 +-7366430883634929664 +-7378096180613840896 +-7380731416973295616 +-7395343938785738752 +-7395553021620731904 +-7399631791131074560 +-7404052043914526720 +-7404057145074712576 +-7409317158045442048 +-7409653086454030336 +-7412431471807283200 +-7413317118463164416 +-7419068456205385728 +-7420448501073051648 +-7425160895830573056 +-7429331808102899712 +-7433265617153343488 +-7442593976514420736 +-7444070205513138176 +-7451660755269853184 +-7453525026342617088 +-7455898404374921216 +-7456869587112255488 +-7461750143936897024 +-7464270453557993472 +-7469660864676585472 +-7470307155642245120 +-7476082621253402624 +-7483435388852559872 +-7488345684795342848 +-7488415863027367936 +-7494411162675691520 +-7496839341561954304 +-7497303453253402624 +-7500200359698907136 +-7501803640821456896 +-7506254246954500096 +-7507424948896415744 +-7507578199583694848 +-7510418793070075904 +-7511202710200885248 +-7511952204985049088 +-7512289590991544320 +-7512297136103800832 +-7515996202498473984 +-7524170566881329152 +-7526793959592140800 +-7528526815026692096 +-7532751268425261056 +-7535857766791577600 +-7535958203887706112 +-7536330682873937920 +-7540104552219860992 +-7541860097718902784 +-7542857121910046720 +-7547245548870025216 +-7547432761381339136 +-7551394356730339328 +-7557017910095650816 +-7558524160894427136 +-7571293705217687552 +-7571957778022178816 +-7572262898020278272 +-7572962089372991488 +-7576194692683563008 +-7593363318079610880 +-7594824008626372608 +-7598782894648565760 +-7600138468036386816 +-7603467428164009984 +-7603569103205916672 +-7610137349734883328 +-7611584069753552896 +-7612455481940246528 +-7612466483992051712 +-7616522969329262592 +-7617860842651017216 +-7623047151287754752 +-7623359796281999360 +-7623405558242500608 +-7624057992767782912 +-7629401308029976576 +-7637494527844343808 +-7637755520917741568 +-7642381493746483200 +-7647020450676146176 +-7661192563533062144 +-7661250850555633664 +-7663293054873812992 +-7665186441284968448 +-7668388017287020544 +-7669169138124275712 +-7673901622181953536 +-7679894005808693248 +-7686220526274502656 +-7687052294777208832 +-7692192232238678016 +-7695491171376291840 +-7700203302632210432 +-7703540456272994304 +-7707242953271500800 +-7707867749256445952 +-7708932208121225216 +-7709958788604936192 +-7712425776235274240 +-7720966287634112512 +-7739424919198187520 +-7744462446680375296 +-7751265769984491520 +-7751427073017544704 +-7753051494275432448 +-7759238919361888256 +-7759425383684849664 +-7772064021830574080 +-7773957003968675840 +-7777884099756122112 +-7778829032042790912 +-7779270198785875968 +-7782344916178796544 +-7784419454650843136 +-7792903881635938304 +-7793447076762345472 +-7797149520019062784 +-7797151404935618560 +-7800879252150779904 +-7802538500225777664 +-7804116532814151680 +-7805985795815342080 +-7811060170911375360 +-7818454479651135488 +-7819437864839495680 +-7822452149325094912 +-7824788571789279232 +-7827420207675105280 +-7831320202242228224 +-7831595638727565312 +-7833618000492109824 +-7835907977757245440 +-7838598833900584960 +-7840338174858199040 +-7845896959112658944 +-7848043121524228096 +-7849504559236210688 +-7858505678035951616 +-7866079955473989632 +-7867219225874571264 +-7868306678534193152 +-7873753603299540992 +-7875953567586451456 +-7877598807023386624 +-7878145001776152576 +-7879864376629567488 +-7881262505761710080 +-7881351200983613440 +-7883252982752665600 +-7884460946615984128 +-7888051992910274560 +-7892780594910871552 +-7893577088764174336 +-7894382303337832448 +-7895991410072928256 +-7902517224300036096 +-7903158849011843072 +-7904188195431661568 +-7907355742053883904 +-7910019233726242816 +-7911421221625077760 +-7915999634274369536 +-7916510129632296960 +-7928062266382778368 +-7928440849566146560 +-7939634346485858304 +-7949309059286163456 +-7949445503604604928 +-7953426740065312768 +-7964801953178091520 +-7966960765508280320 +-7978782649203228672 +-7989766326847807488 +-7998947380180819968 +-8007017894942638080 +-8013397854633648128 +-8016589197379289088 +-8017791189288869888 +-8018511948141748224 +-8021859935185928192 +-8022573309127000064 +-8023708819947323392 +-8028275725610909696 +-8028910243475038208 +-8030058711611629568 +-8034414142083170304 +-8046189486447017984 +-8046238369820344320 +-8047774491688255488 +-8051395538179063808 +-8051587217208967168 +-8051871680800120832 +-8054581198284668928 +-8067243114610532352 +-8070535484085895168 +-8076479329071955968 +-8082793390939193344 +-8084716955963252736 +-8086577583338061824 +-8088337436168830976 +-8099313480512716800 +-8103788088118018048 +-8104684579106914304 +-8108693586698706944 +-8115963579415650304 +-8117838333114212352 +-8122639684164501504 +-8127494999848919040 +-8131997716860526592 +-8136227554401107968 +-8140349174954893312 +-8142667274351345664 +-8147405381260345344 +-8158011642485825536 +-8161047750470279168 +-8172827216441573376 +-8182421179156905984 +-8191825921746305024 +-8194062064124362752 +-8203008052020879360 +-8203075743525806080 +-8205148279289085952 +-8214462866994339840 +-8219876839318716416 +-8232763638546694144 +-8240034910581153792 +-8240684139569233920 +-8243487285852766208 +-8244116388227104768 +-8244657976255889408 +-8260340354454503424 +-8269917980278980608 +-8270479187688816640 +-8275337702906757120 +-8280276629934981120 +-8293833565967810560 +-8297230235506343936 +-8300526097982226432 +-8300764106868350976 +-8302817097848307712 +-8317591428117274624 +-8318886086186213376 +-8322751250650218496 +-8330233444291084288 +-8335810316927213568 +-8340523561480437760 +-8345065519816695808 +-8347088645602050048 +-8357136656913686528 +-8358130693961195520 +-8359839265974165504 +-8368269352975982592 +-8368487814665895936 +-8369487968903897088 +-8379109122834997248 +-8379964450833367040 +-8384695077413412864 +-8387347109404286976 +-8387536830476820480 +-8395998375405912064 +-8400045653258444800 +-8411282676082565120 +-8418913260807217152 +-8425998949410889728 +-8426531414463545344 +-8430283518005846016 +-8430370933326536704 +-8431492599012163584 +-8438554249514491904 +-8445801063348281344 +-8453491903284994048 +-8454143651040444416 +-8465978403747037184 +-8469607298426437632 +-8471480409335513088 +-8485389240529354752 +-8488247955875618816 +-8490382417169408000 +-8494118409594650624 +-8503342882470019072 +-8503573595507761152 +-8507279516485566464 +-8509547439040757760 +-8518060755719585792 +-8518258741831680000 +-8521578237232529408 +-8522878384019169280 +-8523434203900674048 +-8525212657458348032 +-8535957064499879936 +-8536369662934401024 +-8543982423727128576 +-8544299740525461504 +-8545239748068941824 +-8546758906409312256 +-8552393882631389184 +-8555709701170552832 +-8559008501282832384 +-8559252110266564608 +-8562524688907485184 +-8566856504746352640 +-8566940231897874432 +-8570933074545745920 +-8572823448513445888 +-8572949572756774912 +-8581765103969312768 +-8581979259158929408 +-8584520406368493568 +-8585134536083660800 +-8585966098173870080 +-8593419958317056000 +-8603817012434198528 +-8604758220106014720 +-8607195685207408640 +-8615168537390571520 +-8619303037130301440 +-8623238306523824128 +-8623965248051789824 +-8632237187473088512 +-8649711322250362880 +-8651641150831362048 +-8654433008222797824 +-8654797319350927360 +-8658387566611996672 +-8659643752269242368 +-8659692318743314432 +-8660149447361404928 +-8664374244449050624 +-8664806103426252800 +-8665218198816497664 +-8665764757143658496 +-8675661101615489024 +-8675892979328212992 +-8683802826440105984 +-8688153842294595584 +-8689606130068611072 +-8694818694700048384 +-8696162322976997376 +-8703026916864802816 +-8704234107608203264 +-8705403811649355776 +-8710298418608619520 +-8714995808835444736 +-8719510423723155456 +-8730803262481580032 +-8731068123910987776 +-8746702976270385152 +-8754966081778565120 +-8754992450211692544 +-8756989568739835904 +-8760655406971863040 +-8763062627136864256 +-8768744394742235136 +-8782213262837530624 +-8783777723063099392 +-8789178184387641344 +-8797972842900307968 +-8807361476639629312 +-8813211231120031744 +-8831091081349758976 +-8832750849949892608 +-8833019327569510400 +-8835408234247168000 +-8836899523028312064 +-8843859708698583040 +-8844949406948671488 +-8845239510002753536 +-8852770376039219200 +-8853553406533894144 +-8856151919723003904 +-8856821118526734336 +-8857335871148171264 +-8858063395050110976 +-8859107121649893376 +-8866442231663067136 +-8870186814744420352 +-8870673219965001728 +-8875546987176206336 +-8877053610728161280 +-8877431933441327104 +-8879742387365429248 +-8881446757271846912 +-8887058200926093312 +-8892963883085578240 +-8896045754034978816 +-8914039133569400832 +-8916987977485312000 +-8922409715403112448 +-8923529803981905920 +-8927968289860370432 +-8930307926221807616 +-8938849835283677184 +-8940944155843461120 +-8941201923743703040 +-8946656952763777024 +-8948335470186373120 +-8959796625322680320 +-8961059046745669632 +-8962547695651323904 +-8965578088652095488 +-8989473881707921408 +-8990843030306717696 +-8992599250893979648 +-8996954350906294272 +-9002912355472736256 +-9004892183139811328 +-9008631121684832256 +-9012093603044245504 +-9013952631912325120 +-9014145341570203648 +-9022154842129547264 +-9032650742739836928 +-9049720998034137088 +-9051477157204770816 +-9058029636530003968 +-9066993118333706240 +-9071565764086521856 +-9075302542655684608 +-9075486079396069376 +-9078662294976061440 +-9079801920509001728 +-9080568167841226752 +-9080956291212132352 +-9084940280061485056 +-9088239683374350336 +-9091113592821972992 +-9095689235523264512 +-9101953184875757568 +-9102482277760983040 +-9105358806324035584 +-9105701280936501248 +-9109392978217484288 +-9117959922369060864 +-9126793997498957824 +-9136398397785948160 +-9142610685888192512 +-9145593811310010368 +-9148197394287779840 +-9149719074367946752 +-9157613004431998976 +-9175038118837149696 +-9175279464813223936 +-9178166810751909888 +-9187662685618348032 +-9189155542884474880 +-9203804401302323200 +-9203942396257984512 +-9206329156028112896 +-9210275791460499456 +-9213132862973829120 +-9215144824304721920 +-9218875542187065344 +-9219066990552760320 +1021 +1030 +1032 +1039 +1046 +1048 +1053 +1055 +1058 +1065 +1066 +1074 +1075 +108 +1086 +1093 +1094 +1095 +1099 +1115 +112 +1127 +1128 +1132 +1134 +1141 +1142 +1145 +1153 +1157 +1158 +1165 +1168 +1177 +1187 +1189 +1198 +120 +1201 +1217 +1234 +1243 +1247 +1252 +1261 +1270 +1280 +1282 +1286 +1287 +1290 +1291 +1299 +130 +1307 +1312 +1316 +1321 +1337 +1341 +1342 +1343 +1345 +1346 +135 +1366 +1368 +1371 +138 +1386 +1398 +1409 +1422 +1423 +1436 +1439 +1447 +1450 +1454 +1458 +1462 +1466 +1470 +1477 +1481 +1489 +1493 +1495 +1501 +1506 +1508 +1509 +1518 +1520 +1521 +1524 +1530 +1537 +154 +1541 +1542 +1545 +1556 +1559 +1561 +1566 +1604 +1606 +1608 +1613 +1614 +1620 +1638 +1641 +1643 +1648 +1651 +1667 +1671 +1674 +1676 +1678 +168 +1681 +169 +1693 +1701 +1704 +1719 +1726 +1728 +1745 +1751 +1752 +1769 +1774 +1775 +1777 +1780 +1781 +1785 +1786 +1788 +1789 +1791 +1796 +1806 +181 +1811 +1813 +1826 +1827 +1835 +1837 +1845 +1846 +1856 +1862 +1863 +1864 +1866 +187 +1870 +188 +1880 +1890 +1892 +1899 +19 +1906 +1910 +1914 +1926 +1937 +1940 +1941 +1948 +1955 +1965 +1972 +1981 +1983 +1987 +1990 +1995 +1999 +2001 +2002 +2004 +2009 +2011 +2013 +2016 +2017 +2020 +2025 +2026 +2029 +203 +204 +2046 +2056 +2067 +2072 +2073 +2085 +2089 +2092 +2105 +2106 +2108 +213 +2131 +2138 +2140 +2144 +2155 +2177 +2179 +2180 +2183 +2186 +2187 +2189 +2193 +2194 +22 +2201 +2205 +2214 +2217 +2218 +2223 +2227 +2229 +2232 +2241 +2244 +2255 +2262 +2264 +2270 +2274 +2277 +2279 +228 +2283 +2285 +2295 +2306 +2320 +2323 +2325 +2335 +2341 +2348 +2358 +236 +2373 +238 +2386 +2393 +2398 +2400 +2410 +2412 +2420 +2426 +2434 +244 +2461 +2463 +2465 +2469 +2475 +2476 +2485 +2487 +2492 +2494 +2502 +2506 +2509 +2512 +2514 +2515 +2517 +2524 +2533 +2539 +2540 +255 +2551 +2553 +2560 +2563 +2565 +2569 +2579 +2580 +2587 +259 +2599 +2607 +2608 +2619 +2625 +2626 +263 +2637 +2647 +2649 +2662 +2663 +2675 +268 +2680 +2682 +2688 +2689 +2692 +2700 +2712 +2714 +2715 +2719 +2724 +2725 +2735 +2745 +275 +2752 +2762 +2772 +2776 +2786 +279 +2790 +2791 +2803 +2805 +281 +2810 +2811 +2816 +2821 +2824 +2835 +2842 +2843 +2846 +2847 +2848 +2850 +2855 +2862 +2878 +2886 +289 +2897 +2900 +2903 +2905 +2911 +2915 +2919 +2933 +2938 +294 +2941 +2942 +296 +2962 +2968 +2971 +2977 +2979 +2984 +2986 +2988 +2991 +3002 +3006 +301 +302 +3021 +3024 +3029 +3031 +3036 +3043 +3054 +3055 +3058 +3059 +3060 +3067 +3071 +3073 +3079 +3083 +3084 +3089 +3094 +3103 +311 +3111 +3118 +3119 +3144 +3147 +3159 +3163 +3174 +3183 +3190 +3197 +3199 +320 +3203 +3206 +3208 +3212 +3213 +3231 +3232 +3235 +3244 +3245 +3248 +3249 +3253 +3255 +3263 +3286 +3300 +3307 +3322 +3333 +3352 +336 +3365 +3366 +3397 +34 +3401 +3407 +3409 +341 +3418 +342 +3421 +3430 +3443 +3446 +345 +3456 +346 +3460 +3462 +3467 +347 +3472 +3478 +3493 +350 +3507 +3510 +3512 +3533 +3534 +3541 +3542 +355 +3554 +3555 +3563 +3566 +3567 +3568 +3579 +3588 +3599 +3606 +3608 +3609 +361 +3613 +3622 +3625 +3630 +3637 +364 +3648 +3663 +3664 +367 +3672 +3673 +3677 +3680 +3682 +3690 +3691 +3701 +3702 +3703 +3707 +3722 +3724 +3725 +3728 +3739 +3747 +3749 +375 +3755 +3763 +3764 +3769 +3770 +378 +3781 +3789 +379 +3810 +3812 +3823 +3824 +383 +3830 +3835 +3841 +3848 +3858 +3860 +3866 +3874 +3879 +388 +3887 +3901 +3904 +3907 +391 +3910 +3911 +3913 +392 +3932 +3940 +3941 +3945 +3946 +3949 +3958 +3960 +3961 +3962 +3965 +3974 +3980 +3990 +4018 +4020 +4024 +4030 +4037 +4051 +4054 +4056 +4075 +4078 +4088 +41 +412 +417 +425 +443 +454 +455 +462 +470 +471 +481 +482 +485 +489 +49 +490 +491 +5 +500 +501 +504 +522 +523 +524 +530 +535 +579 +583 +584 +586 +587 +590 +597 +601 +612 +615 +618 +65 +650 +658 +66 +661 +663 +664 +677 +68 +681 +687 +688 +690 +691 +6923604860394528768 +6924820982050758656 +6926925215281774592 +6927260280037097472 +6928080429732536320 +6933001829416034304 +6933451028794925056 +6933731240564056064 +6934570741217755136 +694 +6947488599548215296 +695 +6960137166475911168 +6962726713896484864 +6963217546192322560 +6964585306125008896 +6967631925774639104 +6969599299897163776 +6974475559697768448 +6982145326341423104 +6987889924212203520 +6991316084916879360 +6996686091335884800 +7006803044329021440 +7013693841855774720 +7014537632150224896 +7017956982081404928 +7022349041913978880 +7027529814236192768 +7031339012080549888 +7039820685967343616 +7045967493826387968 +7049773031131283456 +7052226236896256000 +7054271419461812224 +7054938591408996352 +7060236714847412224 +7061498706968428544 +7061809776248545280 +7062382339142156288 +7062605127422894080 +7065344324692443136 +7068517339681259520 +7069729473166090240 +707 +7077311975029555200 +7078641038157643776 +7080269176324218880 +7084659344078970880 +7086206629592252416 +7091300332052062208 +7099005292698550272 +71 +7107604675626008576 +7125231541858205696 +7128222874437238784 +7130159794259353600 +7130306447560826880 +7149417430082027520 +7153922334283776000 +7157247449513484288 +7164349895861829632 +7165364563962191872 +7166263463731421184 +7175638927948562432 +7186401810812059648 +7195454019231834112 +7198687580227043328 +7199539820886958080 +7204802700490858496 +7210160489915236352 +7212016545671348224 +7212090742612467712 +7217123582035116032 +7220131672176058368 +7220581538170413056 +7223569671814987776 +7226360892091416576 +7229607057201127424 +723 +7231399302953377792 +7232273749940838400 +7235109456886816768 +7237310132329488384 +7238339720750948352 +724 +7242751359672631296 +7249443195032985600 +7250237407877382144 +7254710367022645248 +7255302164215013376 +7259955893466931200 +7260908278294560768 +7265141874315517952 +7266437490436341760 +7271786885641666560 +7271887863395459072 +7274777328897802240 +7291432593139507200 +7295502697317097472 +7295926343524163584 +7296164580491075584 +7299197687217856512 +73 +7304839835188609024 +7308289763456000000 +7309156463509061632 +7310869618402910208 +7319711402123149312 +7333512171174223872 +7339426767877390336 +7343171468838567936 +7344029858387820544 +7345991518378442752 +7347732772348870656 +7348598907182800896 +735 +7354813692542304256 +7359004378440146944 +736 +7368920486374989824 +7370078518278397952 +7370803940448305152 +7375521127126089728 +7376467688511455232 +7378993334503694336 +738 +7381659098423926784 +7384150968511315968 +7386087924003676160 +7391208370547269632 +7393308503950548992 +7394967727502467072 +7401968422230032384 +7410096605330227200 +7410872053689794560 +7411793502161182720 +7412924364686458880 +7414865343000322048 +7418271723644403712 +743 +7432428551399669760 +7432998950057975808 +7436133434239229952 +7440265908266827776 +7450416810848313344 +7452756603516190720 +7454442625055145984 +7454632396542074880 +7461153404961128448 +7471208109437304832 +7473537548003352576 +7486884806277611520 +7487338208419823616 +7487538600082554880 +7490717730239250432 +7491898395977523200 +7492436934952574976 +7497276415392407552 +7497306924248834048 +7500716020874674176 +7514552840617558016 +7517159036469575680 +7524958388842078208 +7528074274555305984 +7528211148397944832 +7534042483076857856 +7534145866886782976 +7534549597202194432 +7545689659010949120 +7548958830580563968 +7549858023389003776 +7555301305375858688 +7566273236152721408 +7569249672628789248 +7570474972934488064 +7573530789362262016 +7575087487730196480 +7581052107944361984 +7581614118458335232 +7584007864107778048 +7592440105065308160 +7593521922173419520 +7596563216912211968 +7599019810193211392 +7608447395949109248 +7614435638888210432 +7620183559667081216 +7621013099259527168 +7625728883085025280 +7626715182847090688 +763 +7637152193832886272 +7647481735646363648 +7648729477297987584 +7652123583449161728 +7659279803863146496 +7662037650719850496 +7675009476762918912 +7678790769408172032 +7682327310082531328 +7686992843032010752 +7689489436826804224 +7690986322714066944 +7691062622443044864 +7696737688942567424 +7697541332524376064 +7700734109530767360 +7701723309715685376 +7705445437881278464 +7710447533880614912 +7718825401976684544 +7720187583697502208 +7731443941834678272 +7735566678126616576 +774 +7741854854673367040 +7746402369011277824 +7747874976739016704 +7748799008146366464 +7752740515534422016 +7753359568986636288 +7753882935005880320 +7761834341179375616 +7762823913046556672 +7765456790394871808 +7768984605670604800 +7775034125776363520 +7778936842502275072 +7779486624537370624 +7779735136559579136 +7782245855193874432 +7784169796350730240 +7784489776013295616 +779 +7790728456522784768 +7792036342592348160 +7794244032613703680 +78 +780 +7800332581637259264 +7801697837312884736 +7818464507324121088 +782 +7823874904139849728 +784 +7843804446688264192 +7844258063629852672 +7845953007588401152 +7857878068300898304 +7868367829080506368 +7870277756614623232 +7871189141676998656 +7871554728617025536 +7874764415950176256 +7885697257930588160 +7888238729321496576 +789 +7892026679115554816 +7892281003266408448 +7898670840507031552 +7909645665163804672 +7917494645725765632 +7919597361814577152 +7921639119138070528 +7922443154272395264 +7926898770090491904 +7933040277013962752 +7936149988210212864 +7944741547145502720 +7947544013461512192 +7948803266578161664 +7955126053367119872 +7961515985722605568 +7961909238130270208 +797 +7983789401706094592 +7989119273552158720 +7989160253372817408 +7997694023324975104 +7998357471114969088 +7998687089080467456 +80 +8000440057238052864 +8002769767000145920 +8004633750273925120 +8011181697250631680 +8011602724663336960 +8014986215157530624 +8017403886247927808 +803 +8045070943673671680 +8048726769133592576 +8059284960252731392 +8069531888205086720 +8071961599867387904 +8073733016154431488 +8079573715140485120 +808 +8087737899452432384 +809 +8091421389575282688 +8099215208813903872 +8100036735858401280 +8109381965028548608 +8111757081791733760 +8113585123802529792 +8116738401948377088 +812 +8120593157178228736 +8129551357032259584 +8135164922674872320 +8142241016679735296 +8143462899383345152 +8144552446127972352 +8145745969573666816 +8145750910080745472 +8146288732715196416 +8146492373537660928 +8148211378319933440 +815 +8150115791664340992 +8156018594610790400 +8156782979767238656 +8160569434550403072 +8160662610166194176 +8163948965373386752 +8168742078705262592 +8169878743136043008 +8171188598958407680 +8183233196086214656 +8184799300477943808 +8190539859890601984 +8190967051000659968 +8192304692696383488 +8195103847607967744 +8199513544090730496 +820 +8201303040648052736 +8201491077550874624 +8208354137450766336 +8210813831744118784 +8213810702473183232 +8219326436390821888 +8220104397160169472 +8221561626658881536 +8222714144797368320 +8223732800007864320 +823 +8230371298967609344 +8235179243092090880 +8244041599171862528 +8254763178969915392 +8268875586442256384 +8269730157217062912 +8272001752345690112 +8279056098670198784 +8282648443538710528 +8283099811330506752 +8286706213485297664 +8287522765741301760 +8290014929764040704 +8290944180915871744 +8294315622451740672 +8295110846998233088 +83 +8302473563519950848 +8316336224427483136 +8323460620425330688 +8325227661920133120 +8332670681629106176 +8333523087360901120 +8337549596011102208 +8345435427356090368 +835 +8351163199364390912 +8362046808797306880 +8365058996333953024 +8367680396909404160 +8368012468775608320 +837 +8371939471056470016 +8372408423196270592 +8372588378498777088 +8374321007870836736 +8376440110255243264 +8383159090746204160 +8388363436324085760 +8391407951622815744 +8391785334471589888 +8396433451610652672 +8398862954249560064 +8407869317250220032 +8410599906334097408 +8411494452500930560 +8415171956168417280 +8416121695917498368 +8417381121663746048 +8419958579638157312 +8424515140664360960 +8435912708683087872 +845 +8451612303224520704 +8454154705460666368 +8455496814886002688 +8457906374051020800 +8461498293348065280 +8463868417649524736 +8467976965865799680 +8470141334513098752 +8472429318602268672 +8473699639908261888 +8487573502287478784 +8489584373231919104 +8489735221193138176 +85 +8501910015960735744 +8508401924853850112 +8509508263705477120 +8514851182589771776 +8514979402185596928 +8515682078777081856 +8518454006987948032 +8519937082746634240 +8523972434954510336 +8524940073536954368 +8525336514806317056 +8525894870444638208 +8532016240026279936 +8536948829863198720 +8540237852367446016 +8543177193114779648 +8547243497773457408 +8551446856960942080 +8553195689344991232 +8554899472487596032 +8555933456197828608 +8555948987770511360 +8557218322962644992 +8558000156325707776 +8560526613401714688 +8569030475428511744 +8570983266408103936 +8571268359622172672 +8573305425181941760 +8577096957495025664 +8579974641030365184 +8583916402383601664 +8613562211893919744 +8625937019655200768 +8631515095562887168 +8637720762289659904 +8639254009546055680 +8641221723991433216 +8643198489997254656 +8644602243484803072 +8649296591032172544 +8652485812846567424 +8656571350884048896 +8660248367767076864 +8665969966920990720 +8666178591503564800 +8677632093825916928 +8677794924343164928 +868 +8682955459667951616 +8687042963221159936 +8688483860094599168 +8693036785094565888 +8697823501349609472 +8698055291501543424 +8708232769657815040 +8708845895460577280 +871 +8714829359200747520 +8716401555586727936 +8720504651219001344 +8723248113030782976 +873 +8731960288562044928 +8734584858442498048 +8736061027343859712 +874 +8752150411997356032 +8759089349412847616 +8759184090543857664 +8760285623204290560 +8761174805938331648 +8769199243315814400 +8773222500321361920 +8775009214012456960 +8779073705407963136 +8779711700787298304 +878 +8780196485890555904 +8782900615468302336 +8783241818558193664 +8785153741735616512 +8792059919353348096 +8793387410919038976 +8795069490394882048 +8806507556248731648 +8808467247666241536 +8811693967537774592 +8815398225009967104 +8817665768680906752 +8822384228057604096 +8825059717746376704 +8829545979081744384 +883 +8836228556823977984 +8837420822750314496 +8849475396952514560 +8850055384477401088 +8853989376829833216 +8854495099223375872 +8854677881758162944 +8854715632851345408 +8856674723376668672 +8868529429494071296 +8871707618793996288 +8875745082589929472 +888 +8895174927321243648 +8896237972875370496 +8897901899039473664 +8899122608190930944 +8900180888218329088 +8900351886974279680 +8900545829211299840 +8905330479248064512 +8910706980937261056 +8920344895701393408 +8920533610804609024 +8927691194719174656 +8928133990107881472 +8935252708196999168 +8936639033158410240 +8939431770838810624 +8945004737083555840 +8945302550165004288 +8962097525980225536 +8972161729142095872 +8979012655944220672 +898 +8983857919580209152 +8983912573761167360 +8984935029383389184 +8987827141270880256 +8991071342495531008 +8991442360387584000 +8994608999945125888 +8995562121346260992 +8996824426131390464 +9000633029632499712 +9001907486943993856 +9005866015985713152 +9016280522993975296 +9020143715350814720 +9023663198045544448 +9030480306789818368 +9038087402564657152 +9040958359122640896 +9043089884440068096 +9048002942653710336 +9048297564833079296 +9050032047355125760 +9053187076403060736 +9054887854393950208 +9062227900376203264 +9064847977742032896 +9067985867711291392 +9073672806863790080 +9075404705968840704 +9078604269481148416 +908 +9083076230151864320 +9083704659251798016 +9084402694981533696 +9085381906890203136 +9085434340468473856 +9086905513121890304 +9089435102788009984 +9091082386452684800 +9091085792947666944 +9094945190752903168 +9096395849845194752 +91 +9104574294205636608 +9107991000536498176 +9112400579327483904 +9114850402293882880 +9116137265342169088 +9117063974299148288 +9119046173224370176 +9123116008004288512 +913 +9131533983989358592 +9132009829414584320 +9136234417125007360 +9136548192574529536 +9139805788041134080 +914 +9148071980848742400 +9149216169284091904 +9165199002069458944 +9169248521377374208 +917 +9174894805640142848 +918 +9180098147855769600 +9182828596851990528 +9185458640237641728 +9185952983951343616 +9188173682239275008 +919 +9190466190353661952 +9191943992860327936 +9194388393453060096 +9199741683232399360 +9207107990561972224 +9207927479837319168 +9209153648361848832 +921 +9211455920344088576 +922 +923 +927 +928 +939 +94 +945 +947 +950 +958 +961 +965 +967 +976 +979 +982 +987 +997 +999 +NULL +NULL +PREHOOK: query: explain vectorization detail +select b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: false + enabledConditionsNotMet: [hive.vectorized.execution.enabled IS false] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: b (type: bigint) + outputColumnNames: b + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count() + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: b (type: bigint), 0 (type: int) + mode: hash + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint), _col1 (type: int) + sort order: ++ + Map-reduce partition columns: _col0 (type: bigint), _col1 (type: int) + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + value expressions: _col2 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: KEY._col0 (type: bigint), KEY._col1 (type: int) + mode: mergepartial + outputColumnNames: _col0, _col2 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + pruneGroupingSetId: true + Select Operator + expressions: _col0 (type: bigint), _col2 (type: bigint) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 1 +-6919476845891313664 1 +-6920172215209426944 1 +-6921654334727036928 1 +-6933565857643814912 1 +-6934304742087655424 1 +-6935038507792801792 1 +-6935548339131138048 1 +-6938706403992854528 1 +-6941777546186579968 1 +-6947955278050181120 1 +-6951350560260784128 1 +-6957946688477274112 1 +-6960947572095770624 1 +-6962271229404348416 1 +-6962292590214234112 1 +-6968771079156654080 1 +-6968892545529896960 1 +-6970396058557005824 1 +-6974654664348033024 1 +-6975459232300236800 1 +-6986178228432322560 1 +-6988811476286873600 1 +-6988970700649168896 1 +-6992217501957169152 1 +-6997233584896229376 1 +-7000925438663041024 1 +-7003696402314215424 1 +-7011425384222244864 1 +-7017212700635545600 1 +-7020852530219171840 1 +-7030489936116252672 1 +-7035132060308643840 1 +-7036607470351654912 1 +-7037375807670501376 1 +-7037638331316469760 1 +-7038455462786334720 1 +-7040248820505149440 1 +-7041362811802148864 1 +-7042183597114081280 1 +-7046180371529351168 1 +-7049618574399692800 1 +-7052619594823221248 1 +-7055619148037554176 1 +-7055760785575665664 1 +-7057750467944931328 1 +-7058986555327307776 1 +-7063777488249085952 1 +-7078068944081002496 1 +-7079898537463537664 1 +-7081500255163727872 1 +-7083646746411720704 1 +-7085247548404178944 1 +-7093825013581979648 1 +-7094189393339678720 1 +-7094827141662539776 1 +-7104310188119834624 1 +-7106210529681350656 1 +-7109790267244814336 1 +-7115054815375073280 1 +-7120456708338688000 1 +-7127548949860818944 1 +-7138415011665043456 1 +-7139677575412686848 1 +-7140008543769042944 1 +-7144791190333546496 1 +-7145585429014888448 1 +-7147490721376591872 1 +-7152177800841502720 1 +-7155539549555105792 1 +-7158472098920390656 1 +-7159700138947862528 1 +-7161165959057334272 1 +-7162299524557471744 1 +-7172594404186693632 1 +-7185369278665605120 1 +-7192529627893858304 1 +-7194281951646187520 1 +-7195217207163166720 1 +-7198372044947275776 1 +-7199983995864711168 1 +-7201085131997011968 1 +-7209060152494817280 1 +-7213775605408178176 1 +-7220731681653604352 1 +-7221474017515347968 1 +-7228589258642194432 1 +-7240213957902663680 1 +-7242345057866285056 1 +-7245872320493322240 1 +-7246123871306244096 1 +-7255010240787030016 1 +-7255686273677328384 1 +-7262049693594943488 1 +-7262384251828518912 1 +-7262798781688651776 1 +-7263060340185194496 1 +-7265998318110711808 1 +-7266719102957125632 1 +-7270034223527993344 1 +-7273590251991162880 1 +-7273694358642851840 1 +-7276111129363046400 1 +-7287583262310350848 1 +-7292078334519894016 1 +-7296096276653391872 1 +-7303847963918393344 1 +-7319315187617587200 1 +-7326863346317598720 1 +-7328087811698909184 1 +-7329767178250018816 1 +-7329807949048193024 1 +-7330203470474985472 1 +-7330413050756235264 1 +-7333278178640953344 1 +-7333362172439035904 1 +-7340231535789727744 1 +-7344146703223496704 1 +-7344947507044466688 1 +-7345562788132315136 1 +-7356685674003021824 1 +-7357888618985873408 1 +-7362189611124563968 1 +-7366430883634929664 1 +-7378096180613840896 1 +-7380731416973295616 1 +-7395343938785738752 1 +-7395553021620731904 1 +-7399631791131074560 1 +-7404052043914526720 1 +-7404057145074712576 1 +-7409317158045442048 1 +-7409653086454030336 1 +-7412431471807283200 1 +-7413317118463164416 1 +-7419068456205385728 1 +-7420448501073051648 1 +-7425160895830573056 1 +-7429331808102899712 1 +-7433265617153343488 1 +-7442593976514420736 1 +-7444070205513138176 1 +-7451660755269853184 1 +-7453525026342617088 1 +-7455898404374921216 1 +-7456869587112255488 1 +-7461750143936897024 1 +-7464270453557993472 1 +-7469660864676585472 1 +-7470307155642245120 1 +-7476082621253402624 1 +-7483435388852559872 1 +-7488345684795342848 1 +-7488415863027367936 1 +-7494411162675691520 1 +-7496839341561954304 1 +-7497303453253402624 1 +-7500200359698907136 1 +-7501803640821456896 1 +-7506254246954500096 1 +-7507424948896415744 1 +-7507578199583694848 1 +-7510418793070075904 1 +-7511202710200885248 1 +-7511952204985049088 1 +-7512289590991544320 1 +-7512297136103800832 1 +-7515996202498473984 1 +-7524170566881329152 1 +-7526793959592140800 1 +-7528526815026692096 1 +-7532751268425261056 1 +-7535857766791577600 1 +-7535958203887706112 1 +-7536330682873937920 1 +-7540104552219860992 1 +-7541860097718902784 1 +-7542857121910046720 1 +-7547245548870025216 1 +-7547432761381339136 1 +-7551394356730339328 1 +-7557017910095650816 1 +-7558524160894427136 1 +-7571293705217687552 1 +-7571957778022178816 1 +-7572262898020278272 1 +-7572962089372991488 1 +-7576194692683563008 1 +-7593363318079610880 1 +-7594824008626372608 1 +-7598782894648565760 1 +-7600138468036386816 1 +-7603467428164009984 1 +-7603569103205916672 1 +-7610137349734883328 1 +-7611584069753552896 1 +-7612455481940246528 1 +-7612466483992051712 1 +-7616522969329262592 1 +-7617860842651017216 1 +-7623047151287754752 1 +-7623359796281999360 1 +-7623405558242500608 1 +-7624057992767782912 1 +-7629401308029976576 1 +-7637494527844343808 1 +-7637755520917741568 1 +-7642381493746483200 1 +-7647020450676146176 1 +-7661192563533062144 1 +-7661250850555633664 1 +-7663293054873812992 1 +-7665186441284968448 1 +-7668388017287020544 1 +-7669169138124275712 1 +-7673901622181953536 1 +-7679894005808693248 1 +-7686220526274502656 1 +-7687052294777208832 1 +-7692192232238678016 1 +-7695491171376291840 1 +-7700203302632210432 1 +-7703540456272994304 1 +-7707242953271500800 1 +-7707867749256445952 1 +-7708932208121225216 1 +-7709958788604936192 1 +-7712425776235274240 1 +-7720966287634112512 1 +-7739424919198187520 1 +-7744462446680375296 1 +-7751265769984491520 1 +-7751427073017544704 1 +-7753051494275432448 1 +-7759238919361888256 1 +-7759425383684849664 1 +-7772064021830574080 1 +-7773957003968675840 1 +-7777884099756122112 1 +-7778829032042790912 1 +-7779270198785875968 1 +-7782344916178796544 1 +-7784419454650843136 1 +-7792903881635938304 1 +-7793447076762345472 1 +-7797149520019062784 1 +-7797151404935618560 1 +-7800879252150779904 1 +-7802538500225777664 1 +-7804116532814151680 1 +-7805985795815342080 1 +-7811060170911375360 1 +-7818454479651135488 1 +-7819437864839495680 1 +-7822452149325094912 1 +-7824788571789279232 1 +-7827420207675105280 1 +-7831320202242228224 1 +-7831595638727565312 1 +-7833618000492109824 1 +-7835907977757245440 1 +-7838598833900584960 1 +-7840338174858199040 1 +-7845896959112658944 1 +-7848043121524228096 1 +-7849504559236210688 1 +-7858505678035951616 1 +-7866079955473989632 1 +-7867219225874571264 1 +-7868306678534193152 1 +-7873753603299540992 1 +-7875953567586451456 1 +-7877598807023386624 1 +-7878145001776152576 1 +-7879864376629567488 1 +-7881262505761710080 1 +-7881351200983613440 1 +-7883252982752665600 1 +-7884460946615984128 1 +-7888051992910274560 1 +-7892780594910871552 1 +-7893577088764174336 1 +-7894382303337832448 1 +-7895991410072928256 1 +-7902517224300036096 1 +-7903158849011843072 1 +-7904188195431661568 1 +-7907355742053883904 1 +-7910019233726242816 1 +-7911421221625077760 1 +-7915999634274369536 1 +-7916510129632296960 1 +-7928062266382778368 1 +-7928440849566146560 1 +-7939634346485858304 1 +-7949309059286163456 1 +-7949445503604604928 1 +-7953426740065312768 1 +-7964801953178091520 1 +-7966960765508280320 1 +-7978782649203228672 1 +-7989766326847807488 1 +-7998947380180819968 1 +-8007017894942638080 1 +-8013397854633648128 1 +-8016589197379289088 1 +-8017791189288869888 1 +-8018511948141748224 1 +-8021859935185928192 1 +-8022573309127000064 1 +-8023708819947323392 1 +-8028275725610909696 1 +-8028910243475038208 1 +-8030058711611629568 1 +-8034414142083170304 1 +-8046189486447017984 1 +-8046238369820344320 1 +-8047774491688255488 1 +-8051395538179063808 1 +-8051587217208967168 1 +-8051871680800120832 1 +-8054581198284668928 1 +-8067243114610532352 1 +-8070535484085895168 1 +-8076479329071955968 1 +-8082793390939193344 1 +-8084716955963252736 1 +-8086577583338061824 1 +-8088337436168830976 1 +-8099313480512716800 1 +-8103788088118018048 1 +-8104684579106914304 1 +-8108693586698706944 1 +-8115963579415650304 1 +-8117838333114212352 1 +-8122639684164501504 1 +-8127494999848919040 1 +-8131997716860526592 1 +-8136227554401107968 1 +-8140349174954893312 1 +-8142667274351345664 1 +-8147405381260345344 1 +-8158011642485825536 1 +-8161047750470279168 1 +-8172827216441573376 1 +-8182421179156905984 1 +-8191825921746305024 1 +-8194062064124362752 1 +-8203008052020879360 1 +-8203075743525806080 1 +-8205148279289085952 1 +-8214462866994339840 1 +-8219876839318716416 1 +-8232763638546694144 1 +-8240034910581153792 1 +-8240684139569233920 1 +-8243487285852766208 1 +-8244116388227104768 1 +-8244657976255889408 1 +-8260340354454503424 1 +-8269917980278980608 1 +-8270479187688816640 1 +-8275337702906757120 1 +-8280276629934981120 1 +-8293833565967810560 1 +-8297230235506343936 1 +-8300526097982226432 1 +-8300764106868350976 1 +-8302817097848307712 1 +-8317591428117274624 1 +-8318886086186213376 1 +-8322751250650218496 1 +-8330233444291084288 1 +-8335810316927213568 1 +-8340523561480437760 1 +-8345065519816695808 1 +-8347088645602050048 1 +-8357136656913686528 1 +-8358130693961195520 1 +-8359839265974165504 1 +-8368269352975982592 1 +-8368487814665895936 1 +-8369487968903897088 1 +-8379109122834997248 1 +-8379964450833367040 1 +-8384695077413412864 1 +-8387347109404286976 1 +-8387536830476820480 1 +-8395998375405912064 1 +-8400045653258444800 1 +-8411282676082565120 1 +-8418913260807217152 1 +-8425998949410889728 1 +-8426531414463545344 1 +-8430283518005846016 1 +-8430370933326536704 1 +-8431492599012163584 1 +-8438554249514491904 1 +-8445801063348281344 1 +-8453491903284994048 1 +-8454143651040444416 1 +-8465978403747037184 1 +-8469607298426437632 1 +-8471480409335513088 1 +-8485389240529354752 1 +-8488247955875618816 1 +-8490382417169408000 1 +-8494118409594650624 1 +-8503342882470019072 1 +-8503573595507761152 1 +-8507279516485566464 1 +-8509547439040757760 1 +-8518060755719585792 1 +-8518258741831680000 1 +-8521578237232529408 1 +-8522878384019169280 1 +-8523434203900674048 1 +-8525212657458348032 1 +-8535957064499879936 1 +-8536369662934401024 1 +-8543982423727128576 1 +-8544299740525461504 1 +-8545239748068941824 1 +-8546758906409312256 1 +-8552393882631389184 1 +-8555709701170552832 1 +-8559008501282832384 1 +-8559252110266564608 1 +-8562524688907485184 1 +-8566856504746352640 1 +-8566940231897874432 1 +-8570933074545745920 1 +-8572823448513445888 1 +-8572949572756774912 1 +-8581765103969312768 1 +-8581979259158929408 1 +-8584520406368493568 1 +-8585134536083660800 1 +-8585966098173870080 1 +-8593419958317056000 1 +-8603817012434198528 1 +-8604758220106014720 1 +-8607195685207408640 1 +-8615168537390571520 1 +-8619303037130301440 1 +-8623238306523824128 1 +-8623965248051789824 1 +-8632237187473088512 1 +-8649711322250362880 1 +-8651641150831362048 1 +-8654433008222797824 1 +-8654797319350927360 1 +-8658387566611996672 1 +-8659643752269242368 1 +-8659692318743314432 1 +-8660149447361404928 1 +-8664374244449050624 1 +-8664806103426252800 1 +-8665218198816497664 1 +-8665764757143658496 1 +-8675661101615489024 1 +-8675892979328212992 1 +-8683802826440105984 1 +-8688153842294595584 1 +-8689606130068611072 1 +-8694818694700048384 1 +-8696162322976997376 1 +-8703026916864802816 1 +-8704234107608203264 1 +-8705403811649355776 1 +-8710298418608619520 1 +-8714995808835444736 1 +-8719510423723155456 1 +-8730803262481580032 1 +-8731068123910987776 1 +-8746702976270385152 1 +-8754966081778565120 1 +-8754992450211692544 1 +-8756989568739835904 1 +-8760655406971863040 1 +-8763062627136864256 1 +-8768744394742235136 1 +-8782213262837530624 1 +-8783777723063099392 1 +-8789178184387641344 1 +-8797972842900307968 1 +-8807361476639629312 1 +-8813211231120031744 1 +-8831091081349758976 1 +-8832750849949892608 1 +-8833019327569510400 1 +-8835408234247168000 1 +-8836899523028312064 1 +-8843859708698583040 1 +-8844949406948671488 1 +-8845239510002753536 1 +-8852770376039219200 1 +-8853553406533894144 1 +-8856151919723003904 1 +-8856821118526734336 1 +-8857335871148171264 1 +-8858063395050110976 1 +-8859107121649893376 1 +-8866442231663067136 1 +-8870186814744420352 1 +-8870673219965001728 1 +-8875546987176206336 1 +-8877053610728161280 1 +-8877431933441327104 1 +-8879742387365429248 1 +-8881446757271846912 1 +-8887058200926093312 1 +-8892963883085578240 1 +-8896045754034978816 1 +-8914039133569400832 1 +-8916987977485312000 1 +-8922409715403112448 1 +-8923529803981905920 1 +-8927968289860370432 1 +-8930307926221807616 1 +-8938849835283677184 1 +-8940944155843461120 1 +-8941201923743703040 1 +-8946656952763777024 1 +-8948335470186373120 1 +-8959796625322680320 1 +-8961059046745669632 1 +-8962547695651323904 1 +-8965578088652095488 1 +-8989473881707921408 1 +-8990843030306717696 1 +-8992599250893979648 1 +-8996954350906294272 1 +-9002912355472736256 1 +-9004892183139811328 1 +-9008631121684832256 1 +-9012093603044245504 1 +-9013952631912325120 1 +-9014145341570203648 1 +-9022154842129547264 1 +-9032650742739836928 1 +-9049720998034137088 1 +-9051477157204770816 1 +-9058029636530003968 1 +-9066993118333706240 1 +-9071565764086521856 1 +-9075302542655684608 1 +-9075486079396069376 1 +-9078662294976061440 1 +-9079801920509001728 1 +-9080568167841226752 1 +-9080956291212132352 1 +-9084940280061485056 1 +-9088239683374350336 1 +-9091113592821972992 1 +-9095689235523264512 1 +-9101953184875757568 1 +-9102482277760983040 1 +-9105358806324035584 1 +-9105701280936501248 1 +-9109392978217484288 1 +-9117959922369060864 1 +-9126793997498957824 1 +-9136398397785948160 1 +-9142610685888192512 1 +-9145593811310010368 1 +-9148197394287779840 1 +-9149719074367946752 1 +-9157613004431998976 1 +-9175038118837149696 1 +-9175279464813223936 1 +-9178166810751909888 1 +-9187662685618348032 1 +-9189155542884474880 1 +-9203804401302323200 1 +-9203942396257984512 1 +-9206329156028112896 1 +-9210275791460499456 1 +-9213132862973829120 1 +-9215144824304721920 1 +-9218875542187065344 1 +-9219066990552760320 1 +1021 1 +1030 1 +1032 1 +1039 1 +1046 1 +1048 1 +1053 1 +1055 1 +1058 1 +1065 1 +1066 1 +1074 1 +1075 3 +108 1 +1086 1 +1093 1 +1094 1 +1095 1 +1099 1 +1115 1 +112 1 +1127 1 +1128 1 +1132 1 +1134 1 +1141 1 +1142 1 +1145 1 +1153 1 +1157 1 +1158 1 +1165 2 +1168 1 +1177 1 +1187 1 +1189 1 +1198 1 +120 1 +1201 1 +1217 1 +1234 1 +1243 1 +1247 1 +1252 1 +1261 1 +1270 1 +1280 1 +1282 1 +1286 1 +1287 1 +1290 1 +1291 1 +1299 1 +130 1 +1307 1 +1312 1 +1316 1 +1321 1 +1337 1 +1341 1 +1342 1 +1343 1 +1345 1 +1346 1 +135 1 +1366 1 +1368 2 +1371 2 +138 1 +1386 1 +1398 1 +1409 1 +1422 1 +1423 1 +1436 1 +1439 1 +1447 1 +1450 1 +1454 1 +1458 1 +1462 1 +1466 1 +1470 1 +1477 1 +1481 2 +1489 1 +1493 1 +1495 1 +1501 1 +1506 1 +1508 1 +1509 2 +1518 1 +1520 1 +1521 1 +1524 1 +1530 1 +1537 2 +154 2 +1541 1 +1542 1 +1545 1 +1556 1 +1559 1 +1561 1 +1566 1 +1604 1 +1606 1 +1608 1 +1613 1 +1614 1 +1620 1 +1638 1 +1641 1 +1643 1 +1648 1 +1651 1 +1667 1 +1671 1 +1674 1 +1676 1 +1678 1 +168 1 +1681 1 +169 1 +1693 1 +1701 2 +1704 1 +1719 2 +1726 1 +1728 1 +1745 1 +1751 1 +1752 1 +1769 1 +1774 1 +1775 1 +1777 2 +1780 1 +1781 1 +1785 1 +1786 1 +1788 1 +1789 1 +1791 1 +1796 1 +1806 1 +181 1 +1811 1 +1813 1 +1826 1 +1827 1 +1835 1 +1837 1 +1845 1 +1846 1 +1856 2 +1862 1 +1863 1 +1864 1 +1866 1 +187 1 +1870 1 +188 1 +1880 1 +1890 1 +1892 1 +1899 1 +19 2 +1906 1 +1910 1 +1914 2 +1926 1 +1937 1 +1940 1 +1941 1 +1948 3 +1955 1 +1965 1 +1972 1 +1981 1 +1983 1 +1987 1 +1990 1 +1995 1 +1999 1 +2001 1 +2002 1 +2004 1 +2009 1 +2011 1 +2013 1 +2016 1 +2017 1 +2020 2 +2025 1 +2026 1 +2029 1 +203 1 +204 1 +2046 1 +2056 1 +2067 1 +2072 1 +2073 1 +2085 1 +2089 1 +2092 1 +2105 1 +2106 1 +2108 1 +213 2 +2131 1 +2138 1 +2140 1 +2144 1 +2155 1 +2177 1 +2179 1 +2180 1 +2183 1 +2186 1 +2187 1 +2189 1 +2193 2 +2194 1 +22 1 +2201 1 +2205 1 +2214 1 +2217 1 +2218 1 +2223 1 +2227 1 +2229 1 +2232 1 +2241 1 +2244 1 +2255 1 +2262 1 +2264 1 +2270 1 +2274 1 +2277 1 +2279 1 +228 1 +2283 1 +2285 2 +2295 1 +2306 1 +2320 1 +2323 1 +2325 2 +2335 1 +2341 1 +2348 1 +2358 1 +236 1 +2373 1 +238 1 +2386 1 +2393 2 +2398 1 +2400 1 +2410 1 +2412 2 +2420 1 +2426 1 +2434 1 +244 1 +2461 1 +2463 3 +2465 1 +2469 1 +2475 1 +2476 1 +2485 2 +2487 1 +2492 1 +2494 1 +2502 1 +2506 1 +2509 1 +2512 1 +2514 1 +2515 1 +2517 1 +2524 1 +2533 1 +2539 1 +2540 1 +255 1 +2551 1 +2553 1 +2560 2 +2563 1 +2565 1 +2569 1 +2579 1 +2580 1 +2587 1 +259 1 +2599 1 +2607 1 +2608 1 +2619 2 +2625 1 +2626 1 +263 2 +2637 1 +2647 1 +2649 1 +2662 1 +2663 1 +2675 1 +268 2 +2680 1 +2682 1 +2688 1 +2689 1 +2692 1 +2700 1 +2712 1 +2714 1 +2715 2 +2719 1 +2724 1 +2725 1 +2735 1 +2745 1 +275 1 +2752 1 +2762 1 +2772 1 +2776 1 +2786 2 +279 1 +2790 1 +2791 1 +2803 3 +2805 1 +281 1 +2810 1 +2811 1 +2816 1 +2821 1 +2824 1 +2835 1 +2842 1 +2843 2 +2846 1 +2847 1 +2848 1 +2850 1 +2855 2 +2862 1 +2878 1 +2886 1 +289 1 +2897 2 +2900 1 +2903 1 +2905 1 +2911 1 +2915 1 +2919 1 +2933 2 +2938 1 +294 1 +2941 1 +2942 1 +296 2 +2962 1 +2968 2 +2971 1 +2977 1 +2979 1 +2984 1 +2986 1 +2988 1 +2991 1 +3002 1 +3006 1 +301 1 +302 1 +3021 2 +3024 1 +3029 1 +3031 1 +3036 1 +3043 1 +3054 1 +3055 1 +3058 1 +3059 1 +3060 2 +3067 1 +3071 1 +3073 1 +3079 2 +3083 1 +3084 1 +3089 1 +3094 1 +3103 1 +311 1 +3111 1 +3118 1 +3119 1 +3144 1 +3147 1 +3159 2 +3163 1 +3174 1 +3183 1 +3190 1 +3197 1 +3199 1 +320 1 +3203 1 +3206 1 +3208 1 +3212 1 +3213 1 +3231 1 +3232 1 +3235 1 +3244 1 +3245 1 +3248 1 +3249 1 +3253 1 +3255 1 +3263 1 +3286 1 +3300 1 +3307 1 +3322 1 +3333 1 +3352 1 +336 1 +3365 1 +3366 1 +3397 1 +34 1 +3401 1 +3407 1 +3409 1 +341 1 +3418 2 +342 1 +3421 1 +3430 1 +3443 1 +3446 1 +345 1 +3456 1 +346 2 +3460 1 +3462 3 +3467 2 +347 1 +3472 1 +3478 1 +3493 1 +350 1 +3507 1 +3510 1 +3512 1 +3533 1 +3534 1 +3541 1 +3542 1 +355 1 +3554 1 +3555 2 +3563 1 +3566 1 +3567 1 +3568 1 +3579 1 +3588 2 +3599 1 +3606 1 +3608 1 +3609 1 +361 1 +3613 1 +3622 2 +3625 1 +3630 1 +3637 1 +364 1 +3648 1 +3663 1 +3664 1 +367 1 +3672 1 +3673 1 +3677 1 +3680 1 +3682 1 +3690 1 +3691 1 +3701 1 +3702 1 +3703 1 +3707 1 +3722 1 +3724 1 +3725 2 +3728 2 +3739 1 +3747 1 +3749 1 +375 1 +3755 1 +3763 1 +3764 1 +3769 1 +3770 2 +378 1 +3781 2 +3789 1 +379 1 +3810 1 +3812 1 +3823 1 +3824 1 +383 2 +3830 1 +3835 1 +3841 1 +3848 1 +3858 1 +3860 1 +3866 2 +3874 1 +3879 1 +388 1 +3887 1 +3901 1 +3904 1 +3907 1 +391 1 +3910 1 +3911 1 +3913 1 +392 1 +3932 1 +3940 1 +3941 1 +3945 1 +3946 1 +3949 1 +3958 1 +3960 1 +3961 1 +3962 1 +3965 1 +3974 2 +3980 1 +3990 1 +4018 1 +4020 1 +4024 1 +4030 1 +4037 1 +4051 1 +4054 1 +4056 1 +4075 1 +4078 1 +4088 1 +41 1 +412 2 +417 1 +425 1 +443 1 +454 1 +455 1 +462 1 +470 1 +471 1 +481 1 +482 1 +485 1 +489 1 +49 1 +490 1 +491 1 +5 1 +500 1 +501 2 +504 1 +522 1 +523 1 +524 1 +530 1 +535 1 +579 1 +583 1 +584 1 +586 1 +587 1 +590 1 +597 1 +601 1 +612 1 +615 1 +618 1 +65 1 +650 1 +658 1 +66 1 +661 2 +663 1 +664 1 +677 1 +68 1 +681 1 +687 1 +688 1 +690 1 +691 1 +6923604860394528768 1 +6924820982050758656 1 +6926925215281774592 1 +6927260280037097472 1 +6928080429732536320 1 +6933001829416034304 1 +6933451028794925056 1 +6933731240564056064 1 +6934570741217755136 1 +694 1 +6947488599548215296 1 +695 1 +6960137166475911168 1 +6962726713896484864 1 +6963217546192322560 1 +6964585306125008896 1 +6967631925774639104 1 +6969599299897163776 1 +6974475559697768448 1 +6982145326341423104 1 +6987889924212203520 1 +6991316084916879360 1 +6996686091335884800 1 +7006803044329021440 1 +7013693841855774720 1 +7014537632150224896 1 +7017956982081404928 1 +7022349041913978880 1 +7027529814236192768 1 +7031339012080549888 1 +7039820685967343616 1 +7045967493826387968 1 +7049773031131283456 1 +7052226236896256000 1 +7054271419461812224 1 +7054938591408996352 1 +7060236714847412224 1 +7061498706968428544 1 +7061809776248545280 1 +7062382339142156288 1 +7062605127422894080 1 +7065344324692443136 1 +7068517339681259520 1 +7069729473166090240 1 +707 1 +7077311975029555200 1 +7078641038157643776 1 +7080269176324218880 1 +7084659344078970880 1 +7086206629592252416 1 +7091300332052062208 1 +7099005292698550272 1 +71 1 +7107604675626008576 1 +7125231541858205696 1 +7128222874437238784 1 +7130159794259353600 1 +7130306447560826880 1 +7149417430082027520 1 +7153922334283776000 1 +7157247449513484288 1 +7164349895861829632 1 +7165364563962191872 1 +7166263463731421184 1 +7175638927948562432 1 +7186401810812059648 1 +7195454019231834112 1 +7198687580227043328 1 +7199539820886958080 1 +7204802700490858496 1 +7210160489915236352 1 +7212016545671348224 1 +7212090742612467712 1 +7217123582035116032 1 +7220131672176058368 1 +7220581538170413056 1 +7223569671814987776 1 +7226360892091416576 1 +7229607057201127424 1 +723 1 +7231399302953377792 1 +7232273749940838400 1 +7235109456886816768 1 +7237310132329488384 1 +7238339720750948352 1 +724 1 +7242751359672631296 1 +7249443195032985600 1 +7250237407877382144 1 +7254710367022645248 1 +7255302164215013376 1 +7259955893466931200 1 +7260908278294560768 1 +7265141874315517952 1 +7266437490436341760 1 +7271786885641666560 1 +7271887863395459072 1 +7274777328897802240 1 +7291432593139507200 1 +7295502697317097472 1 +7295926343524163584 1 +7296164580491075584 1 +7299197687217856512 1 +73 1 +7304839835188609024 1 +7308289763456000000 1 +7309156463509061632 1 +7310869618402910208 1 +7319711402123149312 1 +7333512171174223872 1 +7339426767877390336 1 +7343171468838567936 1 +7344029858387820544 1 +7345991518378442752 1 +7347732772348870656 1 +7348598907182800896 1 +735 1 +7354813692542304256 1 +7359004378440146944 1 +736 1 +7368920486374989824 1 +7370078518278397952 1 +7370803940448305152 1 +7375521127126089728 1 +7376467688511455232 1 +7378993334503694336 1 +738 1 +7381659098423926784 1 +7384150968511315968 1 +7386087924003676160 1 +7391208370547269632 1 +7393308503950548992 1 +7394967727502467072 1 +7401968422230032384 1 +7410096605330227200 1 +7410872053689794560 1 +7411793502161182720 1 +7412924364686458880 1 +7414865343000322048 1 +7418271723644403712 1 +743 1 +7432428551399669760 1 +7432998950057975808 1 +7436133434239229952 1 +7440265908266827776 1 +7450416810848313344 1 +7452756603516190720 1 +7454442625055145984 1 +7454632396542074880 1 +7461153404961128448 1 +7471208109437304832 1 +7473537548003352576 1 +7486884806277611520 1 +7487338208419823616 1 +7487538600082554880 1 +7490717730239250432 1 +7491898395977523200 1 +7492436934952574976 1 +7497276415392407552 1 +7497306924248834048 1 +7500716020874674176 1 +7514552840617558016 1 +7517159036469575680 1 +7524958388842078208 1 +7528074274555305984 1 +7528211148397944832 1 +7534042483076857856 1 +7534145866886782976 1 +7534549597202194432 1 +7545689659010949120 1 +7548958830580563968 1 +7549858023389003776 1 +7555301305375858688 1 +7566273236152721408 1 +7569249672628789248 1 +7570474972934488064 1 +7573530789362262016 1 +7575087487730196480 1 +7581052107944361984 1 +7581614118458335232 1 +7584007864107778048 1 +7592440105065308160 1 +7593521922173419520 1 +7596563216912211968 1 +7599019810193211392 1 +7608447395949109248 1 +7614435638888210432 1 +7620183559667081216 1 +7621013099259527168 1 +7625728883085025280 1 +7626715182847090688 1 +763 1 +7637152193832886272 1 +7647481735646363648 1 +7648729477297987584 1 +7652123583449161728 1 +7659279803863146496 1 +7662037650719850496 1 +7675009476762918912 1 +7678790769408172032 1 +7682327310082531328 1 +7686992843032010752 1 +7689489436826804224 1 +7690986322714066944 1 +7691062622443044864 1 +7696737688942567424 1 +7697541332524376064 1 +7700734109530767360 1 +7701723309715685376 1 +7705445437881278464 1 +7710447533880614912 1 +7718825401976684544 1 +7720187583697502208 1 +7731443941834678272 1 +7735566678126616576 1 +774 1 +7741854854673367040 1 +7746402369011277824 1 +7747874976739016704 1 +7748799008146366464 1 +7752740515534422016 1 +7753359568986636288 1 +7753882935005880320 1 +7761834341179375616 1 +7762823913046556672 1 +7765456790394871808 1 +7768984605670604800 1 +7775034125776363520 1 +7778936842502275072 1 +7779486624537370624 1 +7779735136559579136 1 +7782245855193874432 1 +7784169796350730240 1 +7784489776013295616 1 +779 1 +7790728456522784768 1 +7792036342592348160 1 +7794244032613703680 1 +78 1 +780 1 +7800332581637259264 1 +7801697837312884736 1 +7818464507324121088 1 +782 1 +7823874904139849728 1 +784 1 +7843804446688264192 1 +7844258063629852672 1 +7845953007588401152 1 +7857878068300898304 1 +7868367829080506368 1 +7870277756614623232 1 +7871189141676998656 1 +7871554728617025536 1 +7874764415950176256 1 +7885697257930588160 1 +7888238729321496576 1 +789 1 +7892026679115554816 1 +7892281003266408448 1 +7898670840507031552 1 +7909645665163804672 1 +7917494645725765632 1 +7919597361814577152 1 +7921639119138070528 1 +7922443154272395264 1 +7926898770090491904 1 +7933040277013962752 1 +7936149988210212864 1 +7944741547145502720 1 +7947544013461512192 1 +7948803266578161664 1 +7955126053367119872 1 +7961515985722605568 1 +7961909238130270208 1 +797 1 +7983789401706094592 1 +7989119273552158720 1 +7989160253372817408 1 +7997694023324975104 1 +7998357471114969088 1 +7998687089080467456 1 +80 1 +8000440057238052864 1 +8002769767000145920 1 +8004633750273925120 1 +8011181697250631680 1 +8011602724663336960 1 +8014986215157530624 1 +8017403886247927808 1 +803 1 +8045070943673671680 1 +8048726769133592576 1 +8059284960252731392 1 +8069531888205086720 1 +8071961599867387904 1 +8073733016154431488 1 +8079573715140485120 1 +808 1 +8087737899452432384 1 +809 1 +8091421389575282688 1 +8099215208813903872 1 +8100036735858401280 1 +8109381965028548608 1 +8111757081791733760 1 +8113585123802529792 1 +8116738401948377088 1 +812 1 +8120593157178228736 1 +8129551357032259584 1 +8135164922674872320 1 +8142241016679735296 1 +8143462899383345152 1 +8144552446127972352 1 +8145745969573666816 1 +8145750910080745472 1 +8146288732715196416 1 +8146492373537660928 1 +8148211378319933440 1 +815 1 +8150115791664340992 1 +8156018594610790400 1 +8156782979767238656 1 +8160569434550403072 1 +8160662610166194176 1 +8163948965373386752 1 +8168742078705262592 1 +8169878743136043008 1 +8171188598958407680 1 +8183233196086214656 1 +8184799300477943808 1 +8190539859890601984 1 +8190967051000659968 1 +8192304692696383488 1 +8195103847607967744 1 +8199513544090730496 1 +820 2 +8201303040648052736 1 +8201491077550874624 1 +8208354137450766336 1 +8210813831744118784 1 +8213810702473183232 1 +8219326436390821888 1 +8220104397160169472 1 +8221561626658881536 1 +8222714144797368320 1 +8223732800007864320 1 +823 1 +8230371298967609344 1 +8235179243092090880 1 +8244041599171862528 1 +8254763178969915392 1 +8268875586442256384 1 +8269730157217062912 1 +8272001752345690112 1 +8279056098670198784 1 +8282648443538710528 1 +8283099811330506752 1 +8286706213485297664 1 +8287522765741301760 1 +8290014929764040704 1 +8290944180915871744 1 +8294315622451740672 1 +8295110846998233088 1 +83 1 +8302473563519950848 1 +8316336224427483136 1 +8323460620425330688 1 +8325227661920133120 1 +8332670681629106176 1 +8333523087360901120 1 +8337549596011102208 1 +8345435427356090368 1 +835 1 +8351163199364390912 1 +8362046808797306880 1 +8365058996333953024 1 +8367680396909404160 1 +8368012468775608320 1 +837 1 +8371939471056470016 1 +8372408423196270592 1 +8372588378498777088 1 +8374321007870836736 1 +8376440110255243264 1 +8383159090746204160 1 +8388363436324085760 1 +8391407951622815744 1 +8391785334471589888 1 +8396433451610652672 1 +8398862954249560064 1 +8407869317250220032 1 +8410599906334097408 1 +8411494452500930560 1 +8415171956168417280 1 +8416121695917498368 1 +8417381121663746048 1 +8419958579638157312 1 +8424515140664360960 1 +8435912708683087872 1 +845 1 +8451612303224520704 1 +8454154705460666368 1 +8455496814886002688 1 +8457906374051020800 1 +8461498293348065280 1 +8463868417649524736 1 +8467976965865799680 1 +8470141334513098752 1 +8472429318602268672 1 +8473699639908261888 1 +8487573502287478784 1 +8489584373231919104 1 +8489735221193138176 1 +85 1 +8501910015960735744 1 +8508401924853850112 1 +8509508263705477120 1 +8514851182589771776 1 +8514979402185596928 1 +8515682078777081856 1 +8518454006987948032 1 +8519937082746634240 1 +8523972434954510336 1 +8524940073536954368 1 +8525336514806317056 1 +8525894870444638208 1 +8532016240026279936 1 +8536948829863198720 1 +8540237852367446016 1 +8543177193114779648 1 +8547243497773457408 1 +8551446856960942080 1 +8553195689344991232 1 +8554899472487596032 1 +8555933456197828608 1 +8555948987770511360 1 +8557218322962644992 1 +8558000156325707776 1 +8560526613401714688 1 +8569030475428511744 1 +8570983266408103936 1 +8571268359622172672 1 +8573305425181941760 1 +8577096957495025664 1 +8579974641030365184 1 +8583916402383601664 1 +8613562211893919744 1 +8625937019655200768 1 +8631515095562887168 1 +8637720762289659904 1 +8639254009546055680 1 +8641221723991433216 1 +8643198489997254656 1 +8644602243484803072 1 +8649296591032172544 1 +8652485812846567424 1 +8656571350884048896 1 +8660248367767076864 1 +8665969966920990720 1 +8666178591503564800 1 +8677632093825916928 1 +8677794924343164928 1 +868 1 +8682955459667951616 1 +8687042963221159936 1 +8688483860094599168 1 +8693036785094565888 1 +8697823501349609472 1 +8698055291501543424 1 +8708232769657815040 1 +8708845895460577280 1 +871 1 +8714829359200747520 1 +8716401555586727936 1 +8720504651219001344 1 +8723248113030782976 1 +873 1 +8731960288562044928 1 +8734584858442498048 1 +8736061027343859712 1 +874 1 +8752150411997356032 1 +8759089349412847616 1 +8759184090543857664 1 +8760285623204290560 1 +8761174805938331648 1 +8769199243315814400 1 +8773222500321361920 1 +8775009214012456960 1 +8779073705407963136 1 +8779711700787298304 1 +878 1 +8780196485890555904 1 +8782900615468302336 1 +8783241818558193664 1 +8785153741735616512 1 +8792059919353348096 1 +8793387410919038976 1 +8795069490394882048 1 +8806507556248731648 1 +8808467247666241536 1 +8811693967537774592 1 +8815398225009967104 1 +8817665768680906752 1 +8822384228057604096 1 +8825059717746376704 1 +8829545979081744384 1 +883 1 +8836228556823977984 1 +8837420822750314496 1 +8849475396952514560 1 +8850055384477401088 1 +8853989376829833216 1 +8854495099223375872 1 +8854677881758162944 1 +8854715632851345408 1 +8856674723376668672 1 +8868529429494071296 1 +8871707618793996288 1 +8875745082589929472 1 +888 1 +8895174927321243648 1 +8896237972875370496 1 +8897901899039473664 1 +8899122608190930944 1 +8900180888218329088 1 +8900351886974279680 1 +8900545829211299840 1 +8905330479248064512 1 +8910706980937261056 1 +8920344895701393408 1 +8920533610804609024 1 +8927691194719174656 1 +8928133990107881472 1 +8935252708196999168 1 +8936639033158410240 1 +8939431770838810624 1 +8945004737083555840 1 +8945302550165004288 1 +8962097525980225536 1 +8972161729142095872 1 +8979012655944220672 1 +898 2 +8983857919580209152 1 +8983912573761167360 1 +8984935029383389184 1 +8987827141270880256 1 +8991071342495531008 1 +8991442360387584000 1 +8994608999945125888 1 +8995562121346260992 1 +8996824426131390464 1 +9000633029632499712 1 +9001907486943993856 1 +9005866015985713152 1 +9016280522993975296 1 +9020143715350814720 1 +9023663198045544448 1 +9030480306789818368 1 +9038087402564657152 1 +9040958359122640896 1 +9043089884440068096 1 +9048002942653710336 1 +9048297564833079296 1 +9050032047355125760 1 +9053187076403060736 1 +9054887854393950208 1 +9062227900376203264 1 +9064847977742032896 1 +9067985867711291392 1 +9073672806863790080 1 +9075404705968840704 1 +9078604269481148416 1 +908 1 +9083076230151864320 1 +9083704659251798016 1 +9084402694981533696 1 +9085381906890203136 1 +9085434340468473856 1 +9086905513121890304 1 +9089435102788009984 1 +9091082386452684800 1 +9091085792947666944 1 +9094945190752903168 1 +9096395849845194752 1 +91 1 +9104574294205636608 1 +9107991000536498176 1 +9112400579327483904 1 +9114850402293882880 1 +9116137265342169088 1 +9117063974299148288 1 +9119046173224370176 1 +9123116008004288512 1 +913 1 +9131533983989358592 1 +9132009829414584320 1 +9136234417125007360 1 +9136548192574529536 1 +9139805788041134080 1 +914 1 +9148071980848742400 1 +9149216169284091904 1 +9165199002069458944 1 +9169248521377374208 1 +917 1 +9174894805640142848 1 +918 1 +9180098147855769600 1 +9182828596851990528 1 +9185458640237641728 1 +9185952983951343616 1 +9188173682239275008 1 +919 1 +9190466190353661952 1 +9191943992860327936 1 +9194388393453060096 1 +9199741683232399360 1 +9207107990561972224 1 +9207927479837319168 1 +9209153648361848832 1 +921 1 +9211455920344088576 1 +922 1 +923 1 +927 1 +928 1 +939 1 +94 1 +945 1 +947 1 +950 2 +958 1 +961 1 +965 1 +967 1 +976 1 +979 1 +982 1 +987 1 +997 1 +999 1 +NULL 2000 +NULL 83 +PREHOOK: query: explain vectorization detail +select `grouping__id`, b from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select `grouping__id`, b from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: false + enabledConditionsNotMet: [hive.vectorized.execution.enabled IS false] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: b (type: bigint) + outputColumnNames: _col0 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: _col0 (type: bigint), 0 (type: int) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint), _col1 (type: int) + sort order: ++ + Map-reduce partition columns: _col0 (type: bigint), _col1 (type: int) + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + Reduce Operator Tree: + Group By Operator + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: KEY._col0 (type: bigint), KEY._col1 (type: int) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col1 (type: int), _col0 (type: bigint) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select `grouping__id`, b from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select `grouping__id`, b from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +0 -6917607783359897600 +0 -6919476845891313664 +0 -6920172215209426944 +0 -6921654334727036928 +0 -6933565857643814912 +0 -6934304742087655424 +0 -6935038507792801792 +0 -6935548339131138048 +0 -6938706403992854528 +0 -6941777546186579968 +0 -6947955278050181120 +0 -6951350560260784128 +0 -6957946688477274112 +0 -6960947572095770624 +0 -6962271229404348416 +0 -6962292590214234112 +0 -6968771079156654080 +0 -6968892545529896960 +0 -6970396058557005824 +0 -6974654664348033024 +0 -6975459232300236800 +0 -6986178228432322560 +0 -6988811476286873600 +0 -6988970700649168896 +0 -6992217501957169152 +0 -6997233584896229376 +0 -7000925438663041024 +0 -7003696402314215424 +0 -7011425384222244864 +0 -7017212700635545600 +0 -7020852530219171840 +0 -7030489936116252672 +0 -7035132060308643840 +0 -7036607470351654912 +0 -7037375807670501376 +0 -7037638331316469760 +0 -7038455462786334720 +0 -7040248820505149440 +0 -7041362811802148864 +0 -7042183597114081280 +0 -7046180371529351168 +0 -7049618574399692800 +0 -7052619594823221248 +0 -7055619148037554176 +0 -7055760785575665664 +0 -7057750467944931328 +0 -7058986555327307776 +0 -7063777488249085952 +0 -7078068944081002496 +0 -7079898537463537664 +0 -7081500255163727872 +0 -7083646746411720704 +0 -7085247548404178944 +0 -7093825013581979648 +0 -7094189393339678720 +0 -7094827141662539776 +0 -7104310188119834624 +0 -7106210529681350656 +0 -7109790267244814336 +0 -7115054815375073280 +0 -7120456708338688000 +0 -7127548949860818944 +0 -7138415011665043456 +0 -7139677575412686848 +0 -7140008543769042944 +0 -7144791190333546496 +0 -7145585429014888448 +0 -7147490721376591872 +0 -7152177800841502720 +0 -7155539549555105792 +0 -7158472098920390656 +0 -7159700138947862528 +0 -7161165959057334272 +0 -7162299524557471744 +0 -7172594404186693632 +0 -7185369278665605120 +0 -7192529627893858304 +0 -7194281951646187520 +0 -7195217207163166720 +0 -7198372044947275776 +0 -7199983995864711168 +0 -7201085131997011968 +0 -7209060152494817280 +0 -7213775605408178176 +0 -7220731681653604352 +0 -7221474017515347968 +0 -7228589258642194432 +0 -7240213957902663680 +0 -7242345057866285056 +0 -7245872320493322240 +0 -7246123871306244096 +0 -7255010240787030016 +0 -7255686273677328384 +0 -7262049693594943488 +0 -7262384251828518912 +0 -7262798781688651776 +0 -7263060340185194496 +0 -7265998318110711808 +0 -7266719102957125632 +0 -7270034223527993344 +0 -7273590251991162880 +0 -7273694358642851840 +0 -7276111129363046400 +0 -7287583262310350848 +0 -7292078334519894016 +0 -7296096276653391872 +0 -7303847963918393344 +0 -7319315187617587200 +0 -7326863346317598720 +0 -7328087811698909184 +0 -7329767178250018816 +0 -7329807949048193024 +0 -7330203470474985472 +0 -7330413050756235264 +0 -7333278178640953344 +0 -7333362172439035904 +0 -7340231535789727744 +0 -7344146703223496704 +0 -7344947507044466688 +0 -7345562788132315136 +0 -7356685674003021824 +0 -7357888618985873408 +0 -7362189611124563968 +0 -7366430883634929664 +0 -7378096180613840896 +0 -7380731416973295616 +0 -7395343938785738752 +0 -7395553021620731904 +0 -7399631791131074560 +0 -7404052043914526720 +0 -7404057145074712576 +0 -7409317158045442048 +0 -7409653086454030336 +0 -7412431471807283200 +0 -7413317118463164416 +0 -7419068456205385728 +0 -7420448501073051648 +0 -7425160895830573056 +0 -7429331808102899712 +0 -7433265617153343488 +0 -7442593976514420736 +0 -7444070205513138176 +0 -7451660755269853184 +0 -7453525026342617088 +0 -7455898404374921216 +0 -7456869587112255488 +0 -7461750143936897024 +0 -7464270453557993472 +0 -7469660864676585472 +0 -7470307155642245120 +0 -7476082621253402624 +0 -7483435388852559872 +0 -7488345684795342848 +0 -7488415863027367936 +0 -7494411162675691520 +0 -7496839341561954304 +0 -7497303453253402624 +0 -7500200359698907136 +0 -7501803640821456896 +0 -7506254246954500096 +0 -7507424948896415744 +0 -7507578199583694848 +0 -7510418793070075904 +0 -7511202710200885248 +0 -7511952204985049088 +0 -7512289590991544320 +0 -7512297136103800832 +0 -7515996202498473984 +0 -7524170566881329152 +0 -7526793959592140800 +0 -7528526815026692096 +0 -7532751268425261056 +0 -7535857766791577600 +0 -7535958203887706112 +0 -7536330682873937920 +0 -7540104552219860992 +0 -7541860097718902784 +0 -7542857121910046720 +0 -7547245548870025216 +0 -7547432761381339136 +0 -7551394356730339328 +0 -7557017910095650816 +0 -7558524160894427136 +0 -7571293705217687552 +0 -7571957778022178816 +0 -7572262898020278272 +0 -7572962089372991488 +0 -7576194692683563008 +0 -7593363318079610880 +0 -7594824008626372608 +0 -7598782894648565760 +0 -7600138468036386816 +0 -7603467428164009984 +0 -7603569103205916672 +0 -7610137349734883328 +0 -7611584069753552896 +0 -7612455481940246528 +0 -7612466483992051712 +0 -7616522969329262592 +0 -7617860842651017216 +0 -7623047151287754752 +0 -7623359796281999360 +0 -7623405558242500608 +0 -7624057992767782912 +0 -7629401308029976576 +0 -7637494527844343808 +0 -7637755520917741568 +0 -7642381493746483200 +0 -7647020450676146176 +0 -7661192563533062144 +0 -7661250850555633664 +0 -7663293054873812992 +0 -7665186441284968448 +0 -7668388017287020544 +0 -7669169138124275712 +0 -7673901622181953536 +0 -7679894005808693248 +0 -7686220526274502656 +0 -7687052294777208832 +0 -7692192232238678016 +0 -7695491171376291840 +0 -7700203302632210432 +0 -7703540456272994304 +0 -7707242953271500800 +0 -7707867749256445952 +0 -7708932208121225216 +0 -7709958788604936192 +0 -7712425776235274240 +0 -7720966287634112512 +0 -7739424919198187520 +0 -7744462446680375296 +0 -7751265769984491520 +0 -7751427073017544704 +0 -7753051494275432448 +0 -7759238919361888256 +0 -7759425383684849664 +0 -7772064021830574080 +0 -7773957003968675840 +0 -7777884099756122112 +0 -7778829032042790912 +0 -7779270198785875968 +0 -7782344916178796544 +0 -7784419454650843136 +0 -7792903881635938304 +0 -7793447076762345472 +0 -7797149520019062784 +0 -7797151404935618560 +0 -7800879252150779904 +0 -7802538500225777664 +0 -7804116532814151680 +0 -7805985795815342080 +0 -7811060170911375360 +0 -7818454479651135488 +0 -7819437864839495680 +0 -7822452149325094912 +0 -7824788571789279232 +0 -7827420207675105280 +0 -7831320202242228224 +0 -7831595638727565312 +0 -7833618000492109824 +0 -7835907977757245440 +0 -7838598833900584960 +0 -7840338174858199040 +0 -7845896959112658944 +0 -7848043121524228096 +0 -7849504559236210688 +0 -7858505678035951616 +0 -7866079955473989632 +0 -7867219225874571264 +0 -7868306678534193152 +0 -7873753603299540992 +0 -7875953567586451456 +0 -7877598807023386624 +0 -7878145001776152576 +0 -7879864376629567488 +0 -7881262505761710080 +0 -7881351200983613440 +0 -7883252982752665600 +0 -7884460946615984128 +0 -7888051992910274560 +0 -7892780594910871552 +0 -7893577088764174336 +0 -7894382303337832448 +0 -7895991410072928256 +0 -7902517224300036096 +0 -7903158849011843072 +0 -7904188195431661568 +0 -7907355742053883904 +0 -7910019233726242816 +0 -7911421221625077760 +0 -7915999634274369536 +0 -7916510129632296960 +0 -7928062266382778368 +0 -7928440849566146560 +0 -7939634346485858304 +0 -7949309059286163456 +0 -7949445503604604928 +0 -7953426740065312768 +0 -7964801953178091520 +0 -7966960765508280320 +0 -7978782649203228672 +0 -7989766326847807488 +0 -7998947380180819968 +0 -8007017894942638080 +0 -8013397854633648128 +0 -8016589197379289088 +0 -8017791189288869888 +0 -8018511948141748224 +0 -8021859935185928192 +0 -8022573309127000064 +0 -8023708819947323392 +0 -8028275725610909696 +0 -8028910243475038208 +0 -8030058711611629568 +0 -8034414142083170304 +0 -8046189486447017984 +0 -8046238369820344320 +0 -8047774491688255488 +0 -8051395538179063808 +0 -8051587217208967168 +0 -8051871680800120832 +0 -8054581198284668928 +0 -8067243114610532352 +0 -8070535484085895168 +0 -8076479329071955968 +0 -8082793390939193344 +0 -8084716955963252736 +0 -8086577583338061824 +0 -8088337436168830976 +0 -8099313480512716800 +0 -8103788088118018048 +0 -8104684579106914304 +0 -8108693586698706944 +0 -8115963579415650304 +0 -8117838333114212352 +0 -8122639684164501504 +0 -8127494999848919040 +0 -8131997716860526592 +0 -8136227554401107968 +0 -8140349174954893312 +0 -8142667274351345664 +0 -8147405381260345344 +0 -8158011642485825536 +0 -8161047750470279168 +0 -8172827216441573376 +0 -8182421179156905984 +0 -8191825921746305024 +0 -8194062064124362752 +0 -8203008052020879360 +0 -8203075743525806080 +0 -8205148279289085952 +0 -8214462866994339840 +0 -8219876839318716416 +0 -8232763638546694144 +0 -8240034910581153792 +0 -8240684139569233920 +0 -8243487285852766208 +0 -8244116388227104768 +0 -8244657976255889408 +0 -8260340354454503424 +0 -8269917980278980608 +0 -8270479187688816640 +0 -8275337702906757120 +0 -8280276629934981120 +0 -8293833565967810560 +0 -8297230235506343936 +0 -8300526097982226432 +0 -8300764106868350976 +0 -8302817097848307712 +0 -8317591428117274624 +0 -8318886086186213376 +0 -8322751250650218496 +0 -8330233444291084288 +0 -8335810316927213568 +0 -8340523561480437760 +0 -8345065519816695808 +0 -8347088645602050048 +0 -8357136656913686528 +0 -8358130693961195520 +0 -8359839265974165504 +0 -8368269352975982592 +0 -8368487814665895936 +0 -8369487968903897088 +0 -8379109122834997248 +0 -8379964450833367040 +0 -8384695077413412864 +0 -8387347109404286976 +0 -8387536830476820480 +0 -8395998375405912064 +0 -8400045653258444800 +0 -8411282676082565120 +0 -8418913260807217152 +0 -8425998949410889728 +0 -8426531414463545344 +0 -8430283518005846016 +0 -8430370933326536704 +0 -8431492599012163584 +0 -8438554249514491904 +0 -8445801063348281344 +0 -8453491903284994048 +0 -8454143651040444416 +0 -8465978403747037184 +0 -8469607298426437632 +0 -8471480409335513088 +0 -8485389240529354752 +0 -8488247955875618816 +0 -8490382417169408000 +0 -8494118409594650624 +0 -8503342882470019072 +0 -8503573595507761152 +0 -8507279516485566464 +0 -8509547439040757760 +0 -8518060755719585792 +0 -8518258741831680000 +0 -8521578237232529408 +0 -8522878384019169280 +0 -8523434203900674048 +0 -8525212657458348032 +0 -8535957064499879936 +0 -8536369662934401024 +0 -8543982423727128576 +0 -8544299740525461504 +0 -8545239748068941824 +0 -8546758906409312256 +0 -8552393882631389184 +0 -8555709701170552832 +0 -8559008501282832384 +0 -8559252110266564608 +0 -8562524688907485184 +0 -8566856504746352640 +0 -8566940231897874432 +0 -8570933074545745920 +0 -8572823448513445888 +0 -8572949572756774912 +0 -8581765103969312768 +0 -8581979259158929408 +0 -8584520406368493568 +0 -8585134536083660800 +0 -8585966098173870080 +0 -8593419958317056000 +0 -8603817012434198528 +0 -8604758220106014720 +0 -8607195685207408640 +0 -8615168537390571520 +0 -8619303037130301440 +0 -8623238306523824128 +0 -8623965248051789824 +0 -8632237187473088512 +0 -8649711322250362880 +0 -8651641150831362048 +0 -8654433008222797824 +0 -8654797319350927360 +0 -8658387566611996672 +0 -8659643752269242368 +0 -8659692318743314432 +0 -8660149447361404928 +0 -8664374244449050624 +0 -8664806103426252800 +0 -8665218198816497664 +0 -8665764757143658496 +0 -8675661101615489024 +0 -8675892979328212992 +0 -8683802826440105984 +0 -8688153842294595584 +0 -8689606130068611072 +0 -8694818694700048384 +0 -8696162322976997376 +0 -8703026916864802816 +0 -8704234107608203264 +0 -8705403811649355776 +0 -8710298418608619520 +0 -8714995808835444736 +0 -8719510423723155456 +0 -8730803262481580032 +0 -8731068123910987776 +0 -8746702976270385152 +0 -8754966081778565120 +0 -8754992450211692544 +0 -8756989568739835904 +0 -8760655406971863040 +0 -8763062627136864256 +0 -8768744394742235136 +0 -8782213262837530624 +0 -8783777723063099392 +0 -8789178184387641344 +0 -8797972842900307968 +0 -8807361476639629312 +0 -8813211231120031744 +0 -8831091081349758976 +0 -8832750849949892608 +0 -8833019327569510400 +0 -8835408234247168000 +0 -8836899523028312064 +0 -8843859708698583040 +0 -8844949406948671488 +0 -8845239510002753536 +0 -8852770376039219200 +0 -8853553406533894144 +0 -8856151919723003904 +0 -8856821118526734336 +0 -8857335871148171264 +0 -8858063395050110976 +0 -8859107121649893376 +0 -8866442231663067136 +0 -8870186814744420352 +0 -8870673219965001728 +0 -8875546987176206336 +0 -8877053610728161280 +0 -8877431933441327104 +0 -8879742387365429248 +0 -8881446757271846912 +0 -8887058200926093312 +0 -8892963883085578240 +0 -8896045754034978816 +0 -8914039133569400832 +0 -8916987977485312000 +0 -8922409715403112448 +0 -8923529803981905920 +0 -8927968289860370432 +0 -8930307926221807616 +0 -8938849835283677184 +0 -8940944155843461120 +0 -8941201923743703040 +0 -8946656952763777024 +0 -8948335470186373120 +0 -8959796625322680320 +0 -8961059046745669632 +0 -8962547695651323904 +0 -8965578088652095488 +0 -8989473881707921408 +0 -8990843030306717696 +0 -8992599250893979648 +0 -8996954350906294272 +0 -9002912355472736256 +0 -9004892183139811328 +0 -9008631121684832256 +0 -9012093603044245504 +0 -9013952631912325120 +0 -9014145341570203648 +0 -9022154842129547264 +0 -9032650742739836928 +0 -9049720998034137088 +0 -9051477157204770816 +0 -9058029636530003968 +0 -9066993118333706240 +0 -9071565764086521856 +0 -9075302542655684608 +0 -9075486079396069376 +0 -9078662294976061440 +0 -9079801920509001728 +0 -9080568167841226752 +0 -9080956291212132352 +0 -9084940280061485056 +0 -9088239683374350336 +0 -9091113592821972992 +0 -9095689235523264512 +0 -9101953184875757568 +0 -9102482277760983040 +0 -9105358806324035584 +0 -9105701280936501248 +0 -9109392978217484288 +0 -9117959922369060864 +0 -9126793997498957824 +0 -9136398397785948160 +0 -9142610685888192512 +0 -9145593811310010368 +0 -9148197394287779840 +0 -9149719074367946752 +0 -9157613004431998976 +0 -9175038118837149696 +0 -9175279464813223936 +0 -9178166810751909888 +0 -9187662685618348032 +0 -9189155542884474880 +0 -9203804401302323200 +0 -9203942396257984512 +0 -9206329156028112896 +0 -9210275791460499456 +0 -9213132862973829120 +0 -9215144824304721920 +0 -9218875542187065344 +0 -9219066990552760320 +0 1021 +0 1030 +0 1032 +0 1039 +0 1046 +0 1048 +0 1053 +0 1055 +0 1058 +0 1065 +0 1066 +0 1074 +0 1075 +0 108 +0 1086 +0 1093 +0 1094 +0 1095 +0 1099 +0 1115 +0 112 +0 1127 +0 1128 +0 1132 +0 1134 +0 1141 +0 1142 +0 1145 +0 1153 +0 1157 +0 1158 +0 1165 +0 1168 +0 1177 +0 1187 +0 1189 +0 1198 +0 120 +0 1201 +0 1217 +0 1234 +0 1243 +0 1247 +0 1252 +0 1261 +0 1270 +0 1280 +0 1282 +0 1286 +0 1287 +0 1290 +0 1291 +0 1299 +0 130 +0 1307 +0 1312 +0 1316 +0 1321 +0 1337 +0 1341 +0 1342 +0 1343 +0 1345 +0 1346 +0 135 +0 1366 +0 1368 +0 1371 +0 138 +0 1386 +0 1398 +0 1409 +0 1422 +0 1423 +0 1436 +0 1439 +0 1447 +0 1450 +0 1454 +0 1458 +0 1462 +0 1466 +0 1470 +0 1477 +0 1481 +0 1489 +0 1493 +0 1495 +0 1501 +0 1506 +0 1508 +0 1509 +0 1518 +0 1520 +0 1521 +0 1524 +0 1530 +0 1537 +0 154 +0 1541 +0 1542 +0 1545 +0 1556 +0 1559 +0 1561 +0 1566 +0 1604 +0 1606 +0 1608 +0 1613 +0 1614 +0 1620 +0 1638 +0 1641 +0 1643 +0 1648 +0 1651 +0 1667 +0 1671 +0 1674 +0 1676 +0 1678 +0 168 +0 1681 +0 169 +0 1693 +0 1701 +0 1704 +0 1719 +0 1726 +0 1728 +0 1745 +0 1751 +0 1752 +0 1769 +0 1774 +0 1775 +0 1777 +0 1780 +0 1781 +0 1785 +0 1786 +0 1788 +0 1789 +0 1791 +0 1796 +0 1806 +0 181 +0 1811 +0 1813 +0 1826 +0 1827 +0 1835 +0 1837 +0 1845 +0 1846 +0 1856 +0 1862 +0 1863 +0 1864 +0 1866 +0 187 +0 1870 +0 188 +0 1880 +0 1890 +0 1892 +0 1899 +0 19 +0 1906 +0 1910 +0 1914 +0 1926 +0 1937 +0 1940 +0 1941 +0 1948 +0 1955 +0 1965 +0 1972 +0 1981 +0 1983 +0 1987 +0 1990 +0 1995 +0 1999 +0 2001 +0 2002 +0 2004 +0 2009 +0 2011 +0 2013 +0 2016 +0 2017 +0 2020 +0 2025 +0 2026 +0 2029 +0 203 +0 204 +0 2046 +0 2056 +0 2067 +0 2072 +0 2073 +0 2085 +0 2089 +0 2092 +0 2105 +0 2106 +0 2108 +0 213 +0 2131 +0 2138 +0 2140 +0 2144 +0 2155 +0 2177 +0 2179 +0 2180 +0 2183 +0 2186 +0 2187 +0 2189 +0 2193 +0 2194 +0 22 +0 2201 +0 2205 +0 2214 +0 2217 +0 2218 +0 2223 +0 2227 +0 2229 +0 2232 +0 2241 +0 2244 +0 2255 +0 2262 +0 2264 +0 2270 +0 2274 +0 2277 +0 2279 +0 228 +0 2283 +0 2285 +0 2295 +0 2306 +0 2320 +0 2323 +0 2325 +0 2335 +0 2341 +0 2348 +0 2358 +0 236 +0 2373 +0 238 +0 2386 +0 2393 +0 2398 +0 2400 +0 2410 +0 2412 +0 2420 +0 2426 +0 2434 +0 244 +0 2461 +0 2463 +0 2465 +0 2469 +0 2475 +0 2476 +0 2485 +0 2487 +0 2492 +0 2494 +0 2502 +0 2506 +0 2509 +0 2512 +0 2514 +0 2515 +0 2517 +0 2524 +0 2533 +0 2539 +0 2540 +0 255 +0 2551 +0 2553 +0 2560 +0 2563 +0 2565 +0 2569 +0 2579 +0 2580 +0 2587 +0 259 +0 2599 +0 2607 +0 2608 +0 2619 +0 2625 +0 2626 +0 263 +0 2637 +0 2647 +0 2649 +0 2662 +0 2663 +0 2675 +0 268 +0 2680 +0 2682 +0 2688 +0 2689 +0 2692 +0 2700 +0 2712 +0 2714 +0 2715 +0 2719 +0 2724 +0 2725 +0 2735 +0 2745 +0 275 +0 2752 +0 2762 +0 2772 +0 2776 +0 2786 +0 279 +0 2790 +0 2791 +0 2803 +0 2805 +0 281 +0 2810 +0 2811 +0 2816 +0 2821 +0 2824 +0 2835 +0 2842 +0 2843 +0 2846 +0 2847 +0 2848 +0 2850 +0 2855 +0 2862 +0 2878 +0 2886 +0 289 +0 2897 +0 2900 +0 2903 +0 2905 +0 2911 +0 2915 +0 2919 +0 2933 +0 2938 +0 294 +0 2941 +0 2942 +0 296 +0 2962 +0 2968 +0 2971 +0 2977 +0 2979 +0 2984 +0 2986 +0 2988 +0 2991 +0 3002 +0 3006 +0 301 +0 302 +0 3021 +0 3024 +0 3029 +0 3031 +0 3036 +0 3043 +0 3054 +0 3055 +0 3058 +0 3059 +0 3060 +0 3067 +0 3071 +0 3073 +0 3079 +0 3083 +0 3084 +0 3089 +0 3094 +0 3103 +0 311 +0 3111 +0 3118 +0 3119 +0 3144 +0 3147 +0 3159 +0 3163 +0 3174 +0 3183 +0 3190 +0 3197 +0 3199 +0 320 +0 3203 +0 3206 +0 3208 +0 3212 +0 3213 +0 3231 +0 3232 +0 3235 +0 3244 +0 3245 +0 3248 +0 3249 +0 3253 +0 3255 +0 3263 +0 3286 +0 3300 +0 3307 +0 3322 +0 3333 +0 3352 +0 336 +0 3365 +0 3366 +0 3397 +0 34 +0 3401 +0 3407 +0 3409 +0 341 +0 3418 +0 342 +0 3421 +0 3430 +0 3443 +0 3446 +0 345 +0 3456 +0 346 +0 3460 +0 3462 +0 3467 +0 347 +0 3472 +0 3478 +0 3493 +0 350 +0 3507 +0 3510 +0 3512 +0 3533 +0 3534 +0 3541 +0 3542 +0 355 +0 3554 +0 3555 +0 3563 +0 3566 +0 3567 +0 3568 +0 3579 +0 3588 +0 3599 +0 3606 +0 3608 +0 3609 +0 361 +0 3613 +0 3622 +0 3625 +0 3630 +0 3637 +0 364 +0 3648 +0 3663 +0 3664 +0 367 +0 3672 +0 3673 +0 3677 +0 3680 +0 3682 +0 3690 +0 3691 +0 3701 +0 3702 +0 3703 +0 3707 +0 3722 +0 3724 +0 3725 +0 3728 +0 3739 +0 3747 +0 3749 +0 375 +0 3755 +0 3763 +0 3764 +0 3769 +0 3770 +0 378 +0 3781 +0 3789 +0 379 +0 3810 +0 3812 +0 3823 +0 3824 +0 383 +0 3830 +0 3835 +0 3841 +0 3848 +0 3858 +0 3860 +0 3866 +0 3874 +0 3879 +0 388 +0 3887 +0 3901 +0 3904 +0 3907 +0 391 +0 3910 +0 3911 +0 3913 +0 392 +0 3932 +0 3940 +0 3941 +0 3945 +0 3946 +0 3949 +0 3958 +0 3960 +0 3961 +0 3962 +0 3965 +0 3974 +0 3980 +0 3990 +0 4018 +0 4020 +0 4024 +0 4030 +0 4037 +0 4051 +0 4054 +0 4056 +0 4075 +0 4078 +0 4088 +0 41 +0 412 +0 417 +0 425 +0 443 +0 454 +0 455 +0 462 +0 470 +0 471 +0 481 +0 482 +0 485 +0 489 +0 49 +0 490 +0 491 +0 5 +0 500 +0 501 +0 504 +0 522 +0 523 +0 524 +0 530 +0 535 +0 579 +0 583 +0 584 +0 586 +0 587 +0 590 +0 597 +0 601 +0 612 +0 615 +0 618 +0 65 +0 650 +0 658 +0 66 +0 661 +0 663 +0 664 +0 677 +0 68 +0 681 +0 687 +0 688 +0 690 +0 691 +0 6923604860394528768 +0 6924820982050758656 +0 6926925215281774592 +0 6927260280037097472 +0 6928080429732536320 +0 6933001829416034304 +0 6933451028794925056 +0 6933731240564056064 +0 6934570741217755136 +0 694 +0 6947488599548215296 +0 695 +0 6960137166475911168 +0 6962726713896484864 +0 6963217546192322560 +0 6964585306125008896 +0 6967631925774639104 +0 6969599299897163776 +0 6974475559697768448 +0 6982145326341423104 +0 6987889924212203520 +0 6991316084916879360 +0 6996686091335884800 +0 7006803044329021440 +0 7013693841855774720 +0 7014537632150224896 +0 7017956982081404928 +0 7022349041913978880 +0 7027529814236192768 +0 7031339012080549888 +0 7039820685967343616 +0 7045967493826387968 +0 7049773031131283456 +0 7052226236896256000 +0 7054271419461812224 +0 7054938591408996352 +0 7060236714847412224 +0 7061498706968428544 +0 7061809776248545280 +0 7062382339142156288 +0 7062605127422894080 +0 7065344324692443136 +0 7068517339681259520 +0 7069729473166090240 +0 707 +0 7077311975029555200 +0 7078641038157643776 +0 7080269176324218880 +0 7084659344078970880 +0 7086206629592252416 +0 7091300332052062208 +0 7099005292698550272 +0 71 +0 7107604675626008576 +0 7125231541858205696 +0 7128222874437238784 +0 7130159794259353600 +0 7130306447560826880 +0 7149417430082027520 +0 7153922334283776000 +0 7157247449513484288 +0 7164349895861829632 +0 7165364563962191872 +0 7166263463731421184 +0 7175638927948562432 +0 7186401810812059648 +0 7195454019231834112 +0 7198687580227043328 +0 7199539820886958080 +0 7204802700490858496 +0 7210160489915236352 +0 7212016545671348224 +0 7212090742612467712 +0 7217123582035116032 +0 7220131672176058368 +0 7220581538170413056 +0 7223569671814987776 +0 7226360892091416576 +0 7229607057201127424 +0 723 +0 7231399302953377792 +0 7232273749940838400 +0 7235109456886816768 +0 7237310132329488384 +0 7238339720750948352 +0 724 +0 7242751359672631296 +0 7249443195032985600 +0 7250237407877382144 +0 7254710367022645248 +0 7255302164215013376 +0 7259955893466931200 +0 7260908278294560768 +0 7265141874315517952 +0 7266437490436341760 +0 7271786885641666560 +0 7271887863395459072 +0 7274777328897802240 +0 7291432593139507200 +0 7295502697317097472 +0 7295926343524163584 +0 7296164580491075584 +0 7299197687217856512 +0 73 +0 7304839835188609024 +0 7308289763456000000 +0 7309156463509061632 +0 7310869618402910208 +0 7319711402123149312 +0 7333512171174223872 +0 7339426767877390336 +0 7343171468838567936 +0 7344029858387820544 +0 7345991518378442752 +0 7347732772348870656 +0 7348598907182800896 +0 735 +0 7354813692542304256 +0 7359004378440146944 +0 736 +0 7368920486374989824 +0 7370078518278397952 +0 7370803940448305152 +0 7375521127126089728 +0 7376467688511455232 +0 7378993334503694336 +0 738 +0 7381659098423926784 +0 7384150968511315968 +0 7386087924003676160 +0 7391208370547269632 +0 7393308503950548992 +0 7394967727502467072 +0 7401968422230032384 +0 7410096605330227200 +0 7410872053689794560 +0 7411793502161182720 +0 7412924364686458880 +0 7414865343000322048 +0 7418271723644403712 +0 743 +0 7432428551399669760 +0 7432998950057975808 +0 7436133434239229952 +0 7440265908266827776 +0 7450416810848313344 +0 7452756603516190720 +0 7454442625055145984 +0 7454632396542074880 +0 7461153404961128448 +0 7471208109437304832 +0 7473537548003352576 +0 7486884806277611520 +0 7487338208419823616 +0 7487538600082554880 +0 7490717730239250432 +0 7491898395977523200 +0 7492436934952574976 +0 7497276415392407552 +0 7497306924248834048 +0 7500716020874674176 +0 7514552840617558016 +0 7517159036469575680 +0 7524958388842078208 +0 7528074274555305984 +0 7528211148397944832 +0 7534042483076857856 +0 7534145866886782976 +0 7534549597202194432 +0 7545689659010949120 +0 7548958830580563968 +0 7549858023389003776 +0 7555301305375858688 +0 7566273236152721408 +0 7569249672628789248 +0 7570474972934488064 +0 7573530789362262016 +0 7575087487730196480 +0 7581052107944361984 +0 7581614118458335232 +0 7584007864107778048 +0 7592440105065308160 +0 7593521922173419520 +0 7596563216912211968 +0 7599019810193211392 +0 7608447395949109248 +0 7614435638888210432 +0 7620183559667081216 +0 7621013099259527168 +0 7625728883085025280 +0 7626715182847090688 +0 763 +0 7637152193832886272 +0 7647481735646363648 +0 7648729477297987584 +0 7652123583449161728 +0 7659279803863146496 +0 7662037650719850496 +0 7675009476762918912 +0 7678790769408172032 +0 7682327310082531328 +0 7686992843032010752 +0 7689489436826804224 +0 7690986322714066944 +0 7691062622443044864 +0 7696737688942567424 +0 7697541332524376064 +0 7700734109530767360 +0 7701723309715685376 +0 7705445437881278464 +0 7710447533880614912 +0 7718825401976684544 +0 7720187583697502208 +0 7731443941834678272 +0 7735566678126616576 +0 774 +0 7741854854673367040 +0 7746402369011277824 +0 7747874976739016704 +0 7748799008146366464 +0 7752740515534422016 +0 7753359568986636288 +0 7753882935005880320 +0 7761834341179375616 +0 7762823913046556672 +0 7765456790394871808 +0 7768984605670604800 +0 7775034125776363520 +0 7778936842502275072 +0 7779486624537370624 +0 7779735136559579136 +0 7782245855193874432 +0 7784169796350730240 +0 7784489776013295616 +0 779 +0 7790728456522784768 +0 7792036342592348160 +0 7794244032613703680 +0 78 +0 780 +0 7800332581637259264 +0 7801697837312884736 +0 7818464507324121088 +0 782 +0 7823874904139849728 +0 784 +0 7843804446688264192 +0 7844258063629852672 +0 7845953007588401152 +0 7857878068300898304 +0 7868367829080506368 +0 7870277756614623232 +0 7871189141676998656 +0 7871554728617025536 +0 7874764415950176256 +0 7885697257930588160 +0 7888238729321496576 +0 789 +0 7892026679115554816 +0 7892281003266408448 +0 7898670840507031552 +0 7909645665163804672 +0 7917494645725765632 +0 7919597361814577152 +0 7921639119138070528 +0 7922443154272395264 +0 7926898770090491904 +0 7933040277013962752 +0 7936149988210212864 +0 7944741547145502720 +0 7947544013461512192 +0 7948803266578161664 +0 7955126053367119872 +0 7961515985722605568 +0 7961909238130270208 +0 797 +0 7983789401706094592 +0 7989119273552158720 +0 7989160253372817408 +0 7997694023324975104 +0 7998357471114969088 +0 7998687089080467456 +0 80 +0 8000440057238052864 +0 8002769767000145920 +0 8004633750273925120 +0 8011181697250631680 +0 8011602724663336960 +0 8014986215157530624 +0 8017403886247927808 +0 803 +0 8045070943673671680 +0 8048726769133592576 +0 8059284960252731392 +0 8069531888205086720 +0 8071961599867387904 +0 8073733016154431488 +0 8079573715140485120 +0 808 +0 8087737899452432384 +0 809 +0 8091421389575282688 +0 8099215208813903872 +0 8100036735858401280 +0 8109381965028548608 +0 8111757081791733760 +0 8113585123802529792 +0 8116738401948377088 +0 812 +0 8120593157178228736 +0 8129551357032259584 +0 8135164922674872320 +0 8142241016679735296 +0 8143462899383345152 +0 8144552446127972352 +0 8145745969573666816 +0 8145750910080745472 +0 8146288732715196416 +0 8146492373537660928 +0 8148211378319933440 +0 815 +0 8150115791664340992 +0 8156018594610790400 +0 8156782979767238656 +0 8160569434550403072 +0 8160662610166194176 +0 8163948965373386752 +0 8168742078705262592 +0 8169878743136043008 +0 8171188598958407680 +0 8183233196086214656 +0 8184799300477943808 +0 8190539859890601984 +0 8190967051000659968 +0 8192304692696383488 +0 8195103847607967744 +0 8199513544090730496 +0 820 +0 8201303040648052736 +0 8201491077550874624 +0 8208354137450766336 +0 8210813831744118784 +0 8213810702473183232 +0 8219326436390821888 +0 8220104397160169472 +0 8221561626658881536 +0 8222714144797368320 +0 8223732800007864320 +0 823 +0 8230371298967609344 +0 8235179243092090880 +0 8244041599171862528 +0 8254763178969915392 +0 8268875586442256384 +0 8269730157217062912 +0 8272001752345690112 +0 8279056098670198784 +0 8282648443538710528 +0 8283099811330506752 +0 8286706213485297664 +0 8287522765741301760 +0 8290014929764040704 +0 8290944180915871744 +0 8294315622451740672 +0 8295110846998233088 +0 83 +0 8302473563519950848 +0 8316336224427483136 +0 8323460620425330688 +0 8325227661920133120 +0 8332670681629106176 +0 8333523087360901120 +0 8337549596011102208 +0 8345435427356090368 +0 835 +0 8351163199364390912 +0 8362046808797306880 +0 8365058996333953024 +0 8367680396909404160 +0 8368012468775608320 +0 837 +0 8371939471056470016 +0 8372408423196270592 +0 8372588378498777088 +0 8374321007870836736 +0 8376440110255243264 +0 8383159090746204160 +0 8388363436324085760 +0 8391407951622815744 +0 8391785334471589888 +0 8396433451610652672 +0 8398862954249560064 +0 8407869317250220032 +0 8410599906334097408 +0 8411494452500930560 +0 8415171956168417280 +0 8416121695917498368 +0 8417381121663746048 +0 8419958579638157312 +0 8424515140664360960 +0 8435912708683087872 +0 845 +0 8451612303224520704 +0 8454154705460666368 +0 8455496814886002688 +0 8457906374051020800 +0 8461498293348065280 +0 8463868417649524736 +0 8467976965865799680 +0 8470141334513098752 +0 8472429318602268672 +0 8473699639908261888 +0 8487573502287478784 +0 8489584373231919104 +0 8489735221193138176 +0 85 +0 8501910015960735744 +0 8508401924853850112 +0 8509508263705477120 +0 8514851182589771776 +0 8514979402185596928 +0 8515682078777081856 +0 8518454006987948032 +0 8519937082746634240 +0 8523972434954510336 +0 8524940073536954368 +0 8525336514806317056 +0 8525894870444638208 +0 8532016240026279936 +0 8536948829863198720 +0 8540237852367446016 +0 8543177193114779648 +0 8547243497773457408 +0 8551446856960942080 +0 8553195689344991232 +0 8554899472487596032 +0 8555933456197828608 +0 8555948987770511360 +0 8557218322962644992 +0 8558000156325707776 +0 8560526613401714688 +0 8569030475428511744 +0 8570983266408103936 +0 8571268359622172672 +0 8573305425181941760 +0 8577096957495025664 +0 8579974641030365184 +0 8583916402383601664 +0 8613562211893919744 +0 8625937019655200768 +0 8631515095562887168 +0 8637720762289659904 +0 8639254009546055680 +0 8641221723991433216 +0 8643198489997254656 +0 8644602243484803072 +0 8649296591032172544 +0 8652485812846567424 +0 8656571350884048896 +0 8660248367767076864 +0 8665969966920990720 +0 8666178591503564800 +0 8677632093825916928 +0 8677794924343164928 +0 868 +0 8682955459667951616 +0 8687042963221159936 +0 8688483860094599168 +0 8693036785094565888 +0 8697823501349609472 +0 8698055291501543424 +0 8708232769657815040 +0 8708845895460577280 +0 871 +0 8714829359200747520 +0 8716401555586727936 +0 8720504651219001344 +0 8723248113030782976 +0 873 +0 8731960288562044928 +0 8734584858442498048 +0 8736061027343859712 +0 874 +0 8752150411997356032 +0 8759089349412847616 +0 8759184090543857664 +0 8760285623204290560 +0 8761174805938331648 +0 8769199243315814400 +0 8773222500321361920 +0 8775009214012456960 +0 8779073705407963136 +0 8779711700787298304 +0 878 +0 8780196485890555904 +0 8782900615468302336 +0 8783241818558193664 +0 8785153741735616512 +0 8792059919353348096 +0 8793387410919038976 +0 8795069490394882048 +0 8806507556248731648 +0 8808467247666241536 +0 8811693967537774592 +0 8815398225009967104 +0 8817665768680906752 +0 8822384228057604096 +0 8825059717746376704 +0 8829545979081744384 +0 883 +0 8836228556823977984 +0 8837420822750314496 +0 8849475396952514560 +0 8850055384477401088 +0 8853989376829833216 +0 8854495099223375872 +0 8854677881758162944 +0 8854715632851345408 +0 8856674723376668672 +0 8868529429494071296 +0 8871707618793996288 +0 8875745082589929472 +0 888 +0 8895174927321243648 +0 8896237972875370496 +0 8897901899039473664 +0 8899122608190930944 +0 8900180888218329088 +0 8900351886974279680 +0 8900545829211299840 +0 8905330479248064512 +0 8910706980937261056 +0 8920344895701393408 +0 8920533610804609024 +0 8927691194719174656 +0 8928133990107881472 +0 8935252708196999168 +0 8936639033158410240 +0 8939431770838810624 +0 8945004737083555840 +0 8945302550165004288 +0 8962097525980225536 +0 8972161729142095872 +0 8979012655944220672 +0 898 +0 8983857919580209152 +0 8983912573761167360 +0 8984935029383389184 +0 8987827141270880256 +0 8991071342495531008 +0 8991442360387584000 +0 8994608999945125888 +0 8995562121346260992 +0 8996824426131390464 +0 9000633029632499712 +0 9001907486943993856 +0 9005866015985713152 +0 9016280522993975296 +0 9020143715350814720 +0 9023663198045544448 +0 9030480306789818368 +0 9038087402564657152 +0 9040958359122640896 +0 9043089884440068096 +0 9048002942653710336 +0 9048297564833079296 +0 9050032047355125760 +0 9053187076403060736 +0 9054887854393950208 +0 9062227900376203264 +0 9064847977742032896 +0 9067985867711291392 +0 9073672806863790080 +0 9075404705968840704 +0 9078604269481148416 +0 908 +0 9083076230151864320 +0 9083704659251798016 +0 9084402694981533696 +0 9085381906890203136 +0 9085434340468473856 +0 9086905513121890304 +0 9089435102788009984 +0 9091082386452684800 +0 9091085792947666944 +0 9094945190752903168 +0 9096395849845194752 +0 91 +0 9104574294205636608 +0 9107991000536498176 +0 9112400579327483904 +0 9114850402293882880 +0 9116137265342169088 +0 9117063974299148288 +0 9119046173224370176 +0 9123116008004288512 +0 913 +0 9131533983989358592 +0 9132009829414584320 +0 9136234417125007360 +0 9136548192574529536 +0 9139805788041134080 +0 914 +0 9148071980848742400 +0 9149216169284091904 +0 9165199002069458944 +0 9169248521377374208 +0 917 +0 9174894805640142848 +0 918 +0 9180098147855769600 +0 9182828596851990528 +0 9185458640237641728 +0 9185952983951343616 +0 9188173682239275008 +0 919 +0 9190466190353661952 +0 9191943992860327936 +0 9194388393453060096 +0 9199741683232399360 +0 9207107990561972224 +0 9207927479837319168 +0 9209153648361848832 +0 921 +0 9211455920344088576 +0 922 +0 923 +0 927 +0 928 +0 939 +0 94 +0 945 +0 947 +0 950 +0 958 +0 961 +0 965 +0 967 +0 976 +0 979 +0 982 +0 987 +0 997 +0 999 +0 NULL +1 NULL +PREHOOK: query: explain vectorization detail +select `grouping__id`, b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +POSTHOOK: query: explain vectorization detail +select `grouping__id`, b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +PLAN VECTORIZATION: + enabled: false + enabledConditionsNotMet: [hive.vectorized.execution.enabled IS false] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: vectortab2korc + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: b (type: bigint) + outputColumnNames: _col0 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count() + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: _col0 (type: bigint), 0 (type: int) + mode: hash + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: bigint), _col1 (type: int) + sort order: ++ + Map-reduce partition columns: _col0 (type: bigint), _col1 (type: int) + Statistics: Num rows: 4000 Data size: 1837424 Basic stats: COMPLETE Column stats: NONE + value expressions: _col2 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + Group By Vectorization: + vectorOutput: false + native: false + projectedOutputColumns: null + keys: KEY._col0 (type: bigint), KEY._col1 (type: int) + mode: mergepartial + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col1 (type: int), _col0 (type: bigint), _col2 (type: bigint) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2000 Data size: 918712 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select `grouping__id`, b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select `grouping__id`, b, count(*) from vectortab2korc group by b grouping sets ( (), (b)) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +0 -6917607783359897600 1 +0 -6919476845891313664 1 +0 -6920172215209426944 1 +0 -6921654334727036928 1 +0 -6933565857643814912 1 +0 -6934304742087655424 1 +0 -6935038507792801792 1 +0 -6935548339131138048 1 +0 -6938706403992854528 1 +0 -6941777546186579968 1 +0 -6947955278050181120 1 +0 -6951350560260784128 1 +0 -6957946688477274112 1 +0 -6960947572095770624 1 +0 -6962271229404348416 1 +0 -6962292590214234112 1 +0 -6968771079156654080 1 +0 -6968892545529896960 1 +0 -6970396058557005824 1 +0 -6974654664348033024 1 +0 -6975459232300236800 1 +0 -6986178228432322560 1 +0 -6988811476286873600 1 +0 -6988970700649168896 1 +0 -6992217501957169152 1 +0 -6997233584896229376 1 +0 -7000925438663041024 1 +0 -7003696402314215424 1 +0 -7011425384222244864 1 +0 -7017212700635545600 1 +0 -7020852530219171840 1 +0 -7030489936116252672 1 +0 -7035132060308643840 1 +0 -7036607470351654912 1 +0 -7037375807670501376 1 +0 -7037638331316469760 1 +0 -7038455462786334720 1 +0 -7040248820505149440 1 +0 -7041362811802148864 1 +0 -7042183597114081280 1 +0 -7046180371529351168 1 +0 -7049618574399692800 1 +0 -7052619594823221248 1 +0 -7055619148037554176 1 +0 -7055760785575665664 1 +0 -7057750467944931328 1 +0 -7058986555327307776 1 +0 -7063777488249085952 1 +0 -7078068944081002496 1 +0 -7079898537463537664 1 +0 -7081500255163727872 1 +0 -7083646746411720704 1 +0 -7085247548404178944 1 +0 -7093825013581979648 1 +0 -7094189393339678720 1 +0 -7094827141662539776 1 +0 -7104310188119834624 1 +0 -7106210529681350656 1 +0 -7109790267244814336 1 +0 -7115054815375073280 1 +0 -7120456708338688000 1 +0 -7127548949860818944 1 +0 -7138415011665043456 1 +0 -7139677575412686848 1 +0 -7140008543769042944 1 +0 -7144791190333546496 1 +0 -7145585429014888448 1 +0 -7147490721376591872 1 +0 -7152177800841502720 1 +0 -7155539549555105792 1 +0 -7158472098920390656 1 +0 -7159700138947862528 1 +0 -7161165959057334272 1 +0 -7162299524557471744 1 +0 -7172594404186693632 1 +0 -7185369278665605120 1 +0 -7192529627893858304 1 +0 -7194281951646187520 1 +0 -7195217207163166720 1 +0 -7198372044947275776 1 +0 -7199983995864711168 1 +0 -7201085131997011968 1 +0 -7209060152494817280 1 +0 -7213775605408178176 1 +0 -7220731681653604352 1 +0 -7221474017515347968 1 +0 -7228589258642194432 1 +0 -7240213957902663680 1 +0 -7242345057866285056 1 +0 -7245872320493322240 1 +0 -7246123871306244096 1 +0 -7255010240787030016 1 +0 -7255686273677328384 1 +0 -7262049693594943488 1 +0 -7262384251828518912 1 +0 -7262798781688651776 1 +0 -7263060340185194496 1 +0 -7265998318110711808 1 +0 -7266719102957125632 1 +0 -7270034223527993344 1 +0 -7273590251991162880 1 +0 -7273694358642851840 1 +0 -7276111129363046400 1 +0 -7287583262310350848 1 +0 -7292078334519894016 1 +0 -7296096276653391872 1 +0 -7303847963918393344 1 +0 -7319315187617587200 1 +0 -7326863346317598720 1 +0 -7328087811698909184 1 +0 -7329767178250018816 1 +0 -7329807949048193024 1 +0 -7330203470474985472 1 +0 -7330413050756235264 1 +0 -7333278178640953344 1 +0 -7333362172439035904 1 +0 -7340231535789727744 1 +0 -7344146703223496704 1 +0 -7344947507044466688 1 +0 -7345562788132315136 1 +0 -7356685674003021824 1 +0 -7357888618985873408 1 +0 -7362189611124563968 1 +0 -7366430883634929664 1 +0 -7378096180613840896 1 +0 -7380731416973295616 1 +0 -7395343938785738752 1 +0 -7395553021620731904 1 +0 -7399631791131074560 1 +0 -7404052043914526720 1 +0 -7404057145074712576 1 +0 -7409317158045442048 1 +0 -7409653086454030336 1 +0 -7412431471807283200 1 +0 -7413317118463164416 1 +0 -7419068456205385728 1 +0 -7420448501073051648 1 +0 -7425160895830573056 1 +0 -7429331808102899712 1 +0 -7433265617153343488 1 +0 -7442593976514420736 1 +0 -7444070205513138176 1 +0 -7451660755269853184 1 +0 -7453525026342617088 1 +0 -7455898404374921216 1 +0 -7456869587112255488 1 +0 -7461750143936897024 1 +0 -7464270453557993472 1 +0 -7469660864676585472 1 +0 -7470307155642245120 1 +0 -7476082621253402624 1 +0 -7483435388852559872 1 +0 -7488345684795342848 1 +0 -7488415863027367936 1 +0 -7494411162675691520 1 +0 -7496839341561954304 1 +0 -7497303453253402624 1 +0 -7500200359698907136 1 +0 -7501803640821456896 1 +0 -7506254246954500096 1 +0 -7507424948896415744 1 +0 -7507578199583694848 1 +0 -7510418793070075904 1 +0 -7511202710200885248 1 +0 -7511952204985049088 1 +0 -7512289590991544320 1 +0 -7512297136103800832 1 +0 -7515996202498473984 1 +0 -7524170566881329152 1 +0 -7526793959592140800 1 +0 -7528526815026692096 1 +0 -7532751268425261056 1 +0 -7535857766791577600 1 +0 -7535958203887706112 1 +0 -7536330682873937920 1 +0 -7540104552219860992 1 +0 -7541860097718902784 1 +0 -7542857121910046720 1 +0 -7547245548870025216 1 +0 -7547432761381339136 1 +0 -7551394356730339328 1 +0 -7557017910095650816 1 +0 -7558524160894427136 1 +0 -7571293705217687552 1 +0 -7571957778022178816 1 +0 -7572262898020278272 1 +0 -7572962089372991488 1 +0 -7576194692683563008 1 +0 -7593363318079610880 1 +0 -7594824008626372608 1 +0 -7598782894648565760 1 +0 -7600138468036386816 1 +0 -7603467428164009984 1 +0 -7603569103205916672 1 +0 -7610137349734883328 1 +0 -7611584069753552896 1 +0 -7612455481940246528 1 +0 -7612466483992051712 1 +0 -7616522969329262592 1 +0 -7617860842651017216 1 +0 -7623047151287754752 1 +0 -7623359796281999360 1 +0 -7623405558242500608 1 +0 -7624057992767782912 1 +0 -7629401308029976576 1 +0 -7637494527844343808 1 +0 -7637755520917741568 1 +0 -7642381493746483200 1 +0 -7647020450676146176 1 +0 -7661192563533062144 1 +0 -7661250850555633664 1 +0 -7663293054873812992 1 +0 -7665186441284968448 1 +0 -7668388017287020544 1 +0 -7669169138124275712 1 +0 -7673901622181953536 1 +0 -7679894005808693248 1 +0 -7686220526274502656 1 +0 -7687052294777208832 1 +0 -7692192232238678016 1 +0 -7695491171376291840 1 +0 -7700203302632210432 1 +0 -7703540456272994304 1 +0 -7707242953271500800 1 +0 -7707867749256445952 1 +0 -7708932208121225216 1 +0 -7709958788604936192 1 +0 -7712425776235274240 1 +0 -7720966287634112512 1 +0 -7739424919198187520 1 +0 -7744462446680375296 1 +0 -7751265769984491520 1 +0 -7751427073017544704 1 +0 -7753051494275432448 1 +0 -7759238919361888256 1 +0 -7759425383684849664 1 +0 -7772064021830574080 1 +0 -7773957003968675840 1 +0 -7777884099756122112 1 +0 -7778829032042790912 1 +0 -7779270198785875968 1 +0 -7782344916178796544 1 +0 -7784419454650843136 1 +0 -7792903881635938304 1 +0 -7793447076762345472 1 +0 -7797149520019062784 1 +0 -7797151404935618560 1 +0 -7800879252150779904 1 +0 -7802538500225777664 1 +0 -7804116532814151680 1 +0 -7805985795815342080 1 +0 -7811060170911375360 1 +0 -7818454479651135488 1 +0 -7819437864839495680 1 +0 -7822452149325094912 1 +0 -7824788571789279232 1 +0 -7827420207675105280 1 +0 -7831320202242228224 1 +0 -7831595638727565312 1 +0 -7833618000492109824 1 +0 -7835907977757245440 1 +0 -7838598833900584960 1 +0 -7840338174858199040 1 +0 -7845896959112658944 1 +0 -7848043121524228096 1 +0 -7849504559236210688 1 +0 -7858505678035951616 1 +0 -7866079955473989632 1 +0 -7867219225874571264 1 +0 -7868306678534193152 1 +0 -7873753603299540992 1 +0 -7875953567586451456 1 +0 -7877598807023386624 1 +0 -7878145001776152576 1 +0 -7879864376629567488 1 +0 -7881262505761710080 1 +0 -7881351200983613440 1 +0 -7883252982752665600 1 +0 -7884460946615984128 1 +0 -7888051992910274560 1 +0 -7892780594910871552 1 +0 -7893577088764174336 1 +0 -7894382303337832448 1 +0 -7895991410072928256 1 +0 -7902517224300036096 1 +0 -7903158849011843072 1 +0 -7904188195431661568 1 +0 -7907355742053883904 1 +0 -7910019233726242816 1 +0 -7911421221625077760 1 +0 -7915999634274369536 1 +0 -7916510129632296960 1 +0 -7928062266382778368 1 +0 -7928440849566146560 1 +0 -7939634346485858304 1 +0 -7949309059286163456 1 +0 -7949445503604604928 1 +0 -7953426740065312768 1 +0 -7964801953178091520 1 +0 -7966960765508280320 1 +0 -7978782649203228672 1 +0 -7989766326847807488 1 +0 -7998947380180819968 1 +0 -8007017894942638080 1 +0 -8013397854633648128 1 +0 -8016589197379289088 1 +0 -8017791189288869888 1 +0 -8018511948141748224 1 +0 -8021859935185928192 1 +0 -8022573309127000064 1 +0 -8023708819947323392 1 +0 -8028275725610909696 1 +0 -8028910243475038208 1 +0 -8030058711611629568 1 +0 -8034414142083170304 1 +0 -8046189486447017984 1 +0 -8046238369820344320 1 +0 -8047774491688255488 1 +0 -8051395538179063808 1 +0 -8051587217208967168 1 +0 -8051871680800120832 1 +0 -8054581198284668928 1 +0 -8067243114610532352 1 +0 -8070535484085895168 1 +0 -8076479329071955968 1 +0 -8082793390939193344 1 +0 -8084716955963252736 1 +0 -8086577583338061824 1 +0 -8088337436168830976 1 +0 -8099313480512716800 1 +0 -8103788088118018048 1 +0 -8104684579106914304 1 +0 -8108693586698706944 1 +0 -8115963579415650304 1 +0 -8117838333114212352 1 +0 -8122639684164501504 1 +0 -8127494999848919040 1 +0 -8131997716860526592 1 +0 -8136227554401107968 1 +0 -8140349174954893312 1 +0 -8142667274351345664 1 +0 -8147405381260345344 1 +0 -8158011642485825536 1 +0 -8161047750470279168 1 +0 -8172827216441573376 1 +0 -8182421179156905984 1 +0 -8191825921746305024 1 +0 -8194062064124362752 1 +0 -8203008052020879360 1 +0 -8203075743525806080 1 +0 -8205148279289085952 1 +0 -8214462866994339840 1 +0 -8219876839318716416 1 +0 -8232763638546694144 1 +0 -8240034910581153792 1 +0 -8240684139569233920 1 +0 -8243487285852766208 1 +0 -8244116388227104768 1 +0 -8244657976255889408 1 +0 -8260340354454503424 1 +0 -8269917980278980608 1 +0 -8270479187688816640 1 +0 -8275337702906757120 1 +0 -8280276629934981120 1 +0 -8293833565967810560 1 +0 -8297230235506343936 1 +0 -8300526097982226432 1 +0 -8300764106868350976 1 +0 -8302817097848307712 1 +0 -8317591428117274624 1 +0 -8318886086186213376 1 +0 -8322751250650218496 1 +0 -8330233444291084288 1 +0 -8335810316927213568 1 +0 -8340523561480437760 1 +0 -8345065519816695808 1 +0 -8347088645602050048 1 +0 -8357136656913686528 1 +0 -8358130693961195520 1 +0 -8359839265974165504 1 +0 -8368269352975982592 1 +0 -8368487814665895936 1 +0 -8369487968903897088 1 +0 -8379109122834997248 1 +0 -8379964450833367040 1 +0 -8384695077413412864 1 +0 -8387347109404286976 1 +0 -8387536830476820480 1 +0 -8395998375405912064 1 +0 -8400045653258444800 1 +0 -8411282676082565120 1 +0 -8418913260807217152 1 +0 -8425998949410889728 1 +0 -8426531414463545344 1 +0 -8430283518005846016 1 +0 -8430370933326536704 1 +0 -8431492599012163584 1 +0 -8438554249514491904 1 +0 -8445801063348281344 1 +0 -8453491903284994048 1 +0 -8454143651040444416 1 +0 -8465978403747037184 1 +0 -8469607298426437632 1 +0 -8471480409335513088 1 +0 -8485389240529354752 1 +0 -8488247955875618816 1 +0 -8490382417169408000 1 +0 -8494118409594650624 1 +0 -8503342882470019072 1 +0 -8503573595507761152 1 +0 -8507279516485566464 1 +0 -8509547439040757760 1 +0 -8518060755719585792 1 +0 -8518258741831680000 1 +0 -8521578237232529408 1 +0 -8522878384019169280 1 +0 -8523434203900674048 1 +0 -8525212657458348032 1 +0 -8535957064499879936 1 +0 -8536369662934401024 1 +0 -8543982423727128576 1 +0 -8544299740525461504 1 +0 -8545239748068941824 1 +0 -8546758906409312256 1 +0 -8552393882631389184 1 +0 -8555709701170552832 1 +0 -8559008501282832384 1 +0 -8559252110266564608 1 +0 -8562524688907485184 1 +0 -8566856504746352640 1 +0 -8566940231897874432 1 +0 -8570933074545745920 1 +0 -8572823448513445888 1 +0 -8572949572756774912 1 +0 -8581765103969312768 1 +0 -8581979259158929408 1 +0 -8584520406368493568 1 +0 -8585134536083660800 1 +0 -8585966098173870080 1 +0 -8593419958317056000 1 +0 -8603817012434198528 1 +0 -8604758220106014720 1 +0 -8607195685207408640 1 +0 -8615168537390571520 1 +0 -8619303037130301440 1 +0 -8623238306523824128 1 +0 -8623965248051789824 1 +0 -8632237187473088512 1 +0 -8649711322250362880 1 +0 -8651641150831362048 1 +0 -8654433008222797824 1 +0 -8654797319350927360 1 +0 -8658387566611996672 1 +0 -8659643752269242368 1 +0 -8659692318743314432 1 +0 -8660149447361404928 1 +0 -8664374244449050624 1 +0 -8664806103426252800 1 +0 -8665218198816497664 1 +0 -8665764757143658496 1 +0 -8675661101615489024 1 +0 -8675892979328212992 1 +0 -8683802826440105984 1 +0 -8688153842294595584 1 +0 -8689606130068611072 1 +0 -8694818694700048384 1 +0 -8696162322976997376 1 +0 -8703026916864802816 1 +0 -8704234107608203264 1 +0 -8705403811649355776 1 +0 -8710298418608619520 1 +0 -8714995808835444736 1 +0 -8719510423723155456 1 +0 -8730803262481580032 1 +0 -8731068123910987776 1 +0 -8746702976270385152 1 +0 -8754966081778565120 1 +0 -8754992450211692544 1 +0 -8756989568739835904 1 +0 -8760655406971863040 1 +0 -8763062627136864256 1 +0 -8768744394742235136 1 +0 -8782213262837530624 1 +0 -8783777723063099392 1 +0 -8789178184387641344 1 +0 -8797972842900307968 1 +0 -8807361476639629312 1 +0 -8813211231120031744 1 +0 -8831091081349758976 1 +0 -8832750849949892608 1 +0 -8833019327569510400 1 +0 -8835408234247168000 1 +0 -8836899523028312064 1 +0 -8843859708698583040 1 +0 -8844949406948671488 1 +0 -8845239510002753536 1 +0 -8852770376039219200 1 +0 -8853553406533894144 1 +0 -8856151919723003904 1 +0 -8856821118526734336 1 +0 -8857335871148171264 1 +0 -8858063395050110976 1 +0 -8859107121649893376 1 +0 -8866442231663067136 1 +0 -8870186814744420352 1 +0 -8870673219965001728 1 +0 -8875546987176206336 1 +0 -8877053610728161280 1 +0 -8877431933441327104 1 +0 -8879742387365429248 1 +0 -8881446757271846912 1 +0 -8887058200926093312 1 +0 -8892963883085578240 1 +0 -8896045754034978816 1 +0 -8914039133569400832 1 +0 -8916987977485312000 1 +0 -8922409715403112448 1 +0 -8923529803981905920 1 +0 -8927968289860370432 1 +0 -8930307926221807616 1 +0 -8938849835283677184 1 +0 -8940944155843461120 1 +0 -8941201923743703040 1 +0 -8946656952763777024 1 +0 -8948335470186373120 1 +0 -8959796625322680320 1 +0 -8961059046745669632 1 +0 -8962547695651323904 1 +0 -8965578088652095488 1 +0 -8989473881707921408 1 +0 -8990843030306717696 1 +0 -8992599250893979648 1 +0 -8996954350906294272 1 +0 -9002912355472736256 1 +0 -9004892183139811328 1 +0 -9008631121684832256 1 +0 -9012093603044245504 1 +0 -9013952631912325120 1 +0 -9014145341570203648 1 +0 -9022154842129547264 1 +0 -9032650742739836928 1 +0 -9049720998034137088 1 +0 -9051477157204770816 1 +0 -9058029636530003968 1 +0 -9066993118333706240 1 +0 -9071565764086521856 1 +0 -9075302542655684608 1 +0 -9075486079396069376 1 +0 -9078662294976061440 1 +0 -9079801920509001728 1 +0 -9080568167841226752 1 +0 -9080956291212132352 1 +0 -9084940280061485056 1 +0 -9088239683374350336 1 +0 -9091113592821972992 1 +0 -9095689235523264512 1 +0 -9101953184875757568 1 +0 -9102482277760983040 1 +0 -9105358806324035584 1 +0 -9105701280936501248 1 +0 -9109392978217484288 1 +0 -9117959922369060864 1 +0 -9126793997498957824 1 +0 -9136398397785948160 1 +0 -9142610685888192512 1 +0 -9145593811310010368 1 +0 -9148197394287779840 1 +0 -9149719074367946752 1 +0 -9157613004431998976 1 +0 -9175038118837149696 1 +0 -9175279464813223936 1 +0 -9178166810751909888 1 +0 -9187662685618348032 1 +0 -9189155542884474880 1 +0 -9203804401302323200 1 +0 -9203942396257984512 1 +0 -9206329156028112896 1 +0 -9210275791460499456 1 +0 -9213132862973829120 1 +0 -9215144824304721920 1 +0 -9218875542187065344 1 +0 -9219066990552760320 1 +0 1021 1 +0 1030 1 +0 1032 1 +0 1039 1 +0 1046 1 +0 1048 1 +0 1053 1 +0 1055 1 +0 1058 1 +0 1065 1 +0 1066 1 +0 1074 1 +0 1075 3 +0 108 1 +0 1086 1 +0 1093 1 +0 1094 1 +0 1095 1 +0 1099 1 +0 1115 1 +0 112 1 +0 1127 1 +0 1128 1 +0 1132 1 +0 1134 1 +0 1141 1 +0 1142 1 +0 1145 1 +0 1153 1 +0 1157 1 +0 1158 1 +0 1165 2 +0 1168 1 +0 1177 1 +0 1187 1 +0 1189 1 +0 1198 1 +0 120 1 +0 1201 1 +0 1217 1 +0 1234 1 +0 1243 1 +0 1247 1 +0 1252 1 +0 1261 1 +0 1270 1 +0 1280 1 +0 1282 1 +0 1286 1 +0 1287 1 +0 1290 1 +0 1291 1 +0 1299 1 +0 130 1 +0 1307 1 +0 1312 1 +0 1316 1 +0 1321 1 +0 1337 1 +0 1341 1 +0 1342 1 +0 1343 1 +0 1345 1 +0 1346 1 +0 135 1 +0 1366 1 +0 1368 2 +0 1371 2 +0 138 1 +0 1386 1 +0 1398 1 +0 1409 1 +0 1422 1 +0 1423 1 +0 1436 1 +0 1439 1 +0 1447 1 +0 1450 1 +0 1454 1 +0 1458 1 +0 1462 1 +0 1466 1 +0 1470 1 +0 1477 1 +0 1481 2 +0 1489 1 +0 1493 1 +0 1495 1 +0 1501 1 +0 1506 1 +0 1508 1 +0 1509 2 +0 1518 1 +0 1520 1 +0 1521 1 +0 1524 1 +0 1530 1 +0 1537 2 +0 154 2 +0 1541 1 +0 1542 1 +0 1545 1 +0 1556 1 +0 1559 1 +0 1561 1 +0 1566 1 +0 1604 1 +0 1606 1 +0 1608 1 +0 1613 1 +0 1614 1 +0 1620 1 +0 1638 1 +0 1641 1 +0 1643 1 +0 1648 1 +0 1651 1 +0 1667 1 +0 1671 1 +0 1674 1 +0 1676 1 +0 1678 1 +0 168 1 +0 1681 1 +0 169 1 +0 1693 1 +0 1701 2 +0 1704 1 +0 1719 2 +0 1726 1 +0 1728 1 +0 1745 1 +0 1751 1 +0 1752 1 +0 1769 1 +0 1774 1 +0 1775 1 +0 1777 2 +0 1780 1 +0 1781 1 +0 1785 1 +0 1786 1 +0 1788 1 +0 1789 1 +0 1791 1 +0 1796 1 +0 1806 1 +0 181 1 +0 1811 1 +0 1813 1 +0 1826 1 +0 1827 1 +0 1835 1 +0 1837 1 +0 1845 1 +0 1846 1 +0 1856 2 +0 1862 1 +0 1863 1 +0 1864 1 +0 1866 1 +0 187 1 +0 1870 1 +0 188 1 +0 1880 1 +0 1890 1 +0 1892 1 +0 1899 1 +0 19 2 +0 1906 1 +0 1910 1 +0 1914 2 +0 1926 1 +0 1937 1 +0 1940 1 +0 1941 1 +0 1948 3 +0 1955 1 +0 1965 1 +0 1972 1 +0 1981 1 +0 1983 1 +0 1987 1 +0 1990 1 +0 1995 1 +0 1999 1 +0 2001 1 +0 2002 1 +0 2004 1 +0 2009 1 +0 2011 1 +0 2013 1 +0 2016 1 +0 2017 1 +0 2020 2 +0 2025 1 +0 2026 1 +0 2029 1 +0 203 1 +0 204 1 +0 2046 1 +0 2056 1 +0 2067 1 +0 2072 1 +0 2073 1 +0 2085 1 +0 2089 1 +0 2092 1 +0 2105 1 +0 2106 1 +0 2108 1 +0 213 2 +0 2131 1 +0 2138 1 +0 2140 1 +0 2144 1 +0 2155 1 +0 2177 1 +0 2179 1 +0 2180 1 +0 2183 1 +0 2186 1 +0 2187 1 +0 2189 1 +0 2193 2 +0 2194 1 +0 22 1 +0 2201 1 +0 2205 1 +0 2214 1 +0 2217 1 +0 2218 1 +0 2223 1 +0 2227 1 +0 2229 1 +0 2232 1 +0 2241 1 +0 2244 1 +0 2255 1 +0 2262 1 +0 2264 1 +0 2270 1 +0 2274 1 +0 2277 1 +0 2279 1 +0 228 1 +0 2283 1 +0 2285 2 +0 2295 1 +0 2306 1 +0 2320 1 +0 2323 1 +0 2325 2 +0 2335 1 +0 2341 1 +0 2348 1 +0 2358 1 +0 236 1 +0 2373 1 +0 238 1 +0 2386 1 +0 2393 2 +0 2398 1 +0 2400 1 +0 2410 1 +0 2412 2 +0 2420 1 +0 2426 1 +0 2434 1 +0 244 1 +0 2461 1 +0 2463 3 +0 2465 1 +0 2469 1 +0 2475 1 +0 2476 1 +0 2485 2 +0 2487 1 +0 2492 1 +0 2494 1 +0 2502 1 +0 2506 1 +0 2509 1 +0 2512 1 +0 2514 1 +0 2515 1 +0 2517 1 +0 2524 1 +0 2533 1 +0 2539 1 +0 2540 1 +0 255 1 +0 2551 1 +0 2553 1 +0 2560 2 +0 2563 1 +0 2565 1 +0 2569 1 +0 2579 1 +0 2580 1 +0 2587 1 +0 259 1 +0 2599 1 +0 2607 1 +0 2608 1 +0 2619 2 +0 2625 1 +0 2626 1 +0 263 2 +0 2637 1 +0 2647 1 +0 2649 1 +0 2662 1 +0 2663 1 +0 2675 1 +0 268 2 +0 2680 1 +0 2682 1 +0 2688 1 +0 2689 1 +0 2692 1 +0 2700 1 +0 2712 1 +0 2714 1 +0 2715 2 +0 2719 1 +0 2724 1 +0 2725 1 +0 2735 1 +0 2745 1 +0 275 1 +0 2752 1 +0 2762 1 +0 2772 1 +0 2776 1 +0 2786 2 +0 279 1 +0 2790 1 +0 2791 1 +0 2803 3 +0 2805 1 +0 281 1 +0 2810 1 +0 2811 1 +0 2816 1 +0 2821 1 +0 2824 1 +0 2835 1 +0 2842 1 +0 2843 2 +0 2846 1 +0 2847 1 +0 2848 1 +0 2850 1 +0 2855 2 +0 2862 1 +0 2878 1 +0 2886 1 +0 289 1 +0 2897 2 +0 2900 1 +0 2903 1 +0 2905 1 +0 2911 1 +0 2915 1 +0 2919 1 +0 2933 2 +0 2938 1 +0 294 1 +0 2941 1 +0 2942 1 +0 296 2 +0 2962 1 +0 2968 2 +0 2971 1 +0 2977 1 +0 2979 1 +0 2984 1 +0 2986 1 +0 2988 1 +0 2991 1 +0 3002 1 +0 3006 1 +0 301 1 +0 302 1 +0 3021 2 +0 3024 1 +0 3029 1 +0 3031 1 +0 3036 1 +0 3043 1 +0 3054 1 +0 3055 1 +0 3058 1 +0 3059 1 +0 3060 2 +0 3067 1 +0 3071 1 +0 3073 1 +0 3079 2 +0 3083 1 +0 3084 1 +0 3089 1 +0 3094 1 +0 3103 1 +0 311 1 +0 3111 1 +0 3118 1 +0 3119 1 +0 3144 1 +0 3147 1 +0 3159 2 +0 3163 1 +0 3174 1 +0 3183 1 +0 3190 1 +0 3197 1 +0 3199 1 +0 320 1 +0 3203 1 +0 3206 1 +0 3208 1 +0 3212 1 +0 3213 1 +0 3231 1 +0 3232 1 +0 3235 1 +0 3244 1 +0 3245 1 +0 3248 1 +0 3249 1 +0 3253 1 +0 3255 1 +0 3263 1 +0 3286 1 +0 3300 1 +0 3307 1 +0 3322 1 +0 3333 1 +0 3352 1 +0 336 1 +0 3365 1 +0 3366 1 +0 3397 1 +0 34 1 +0 3401 1 +0 3407 1 +0 3409 1 +0 341 1 +0 3418 2 +0 342 1 +0 3421 1 +0 3430 1 +0 3443 1 +0 3446 1 +0 345 1 +0 3456 1 +0 346 2 +0 3460 1 +0 3462 3 +0 3467 2 +0 347 1 +0 3472 1 +0 3478 1 +0 3493 1 +0 350 1 +0 3507 1 +0 3510 1 +0 3512 1 +0 3533 1 +0 3534 1 +0 3541 1 +0 3542 1 +0 355 1 +0 3554 1 +0 3555 2 +0 3563 1 +0 3566 1 +0 3567 1 +0 3568 1 +0 3579 1 +0 3588 2 +0 3599 1 +0 3606 1 +0 3608 1 +0 3609 1 +0 361 1 +0 3613 1 +0 3622 2 +0 3625 1 +0 3630 1 +0 3637 1 +0 364 1 +0 3648 1 +0 3663 1 +0 3664 1 +0 367 1 +0 3672 1 +0 3673 1 +0 3677 1 +0 3680 1 +0 3682 1 +0 3690 1 +0 3691 1 +0 3701 1 +0 3702 1 +0 3703 1 +0 3707 1 +0 3722 1 +0 3724 1 +0 3725 2 +0 3728 2 +0 3739 1 +0 3747 1 +0 3749 1 +0 375 1 +0 3755 1 +0 3763 1 +0 3764 1 +0 3769 1 +0 3770 2 +0 378 1 +0 3781 2 +0 3789 1 +0 379 1 +0 3810 1 +0 3812 1 +0 3823 1 +0 3824 1 +0 383 2 +0 3830 1 +0 3835 1 +0 3841 1 +0 3848 1 +0 3858 1 +0 3860 1 +0 3866 2 +0 3874 1 +0 3879 1 +0 388 1 +0 3887 1 +0 3901 1 +0 3904 1 +0 3907 1 +0 391 1 +0 3910 1 +0 3911 1 +0 3913 1 +0 392 1 +0 3932 1 +0 3940 1 +0 3941 1 +0 3945 1 +0 3946 1 +0 3949 1 +0 3958 1 +0 3960 1 +0 3961 1 +0 3962 1 +0 3965 1 +0 3974 2 +0 3980 1 +0 3990 1 +0 4018 1 +0 4020 1 +0 4024 1 +0 4030 1 +0 4037 1 +0 4051 1 +0 4054 1 +0 4056 1 +0 4075 1 +0 4078 1 +0 4088 1 +0 41 1 +0 412 2 +0 417 1 +0 425 1 +0 443 1 +0 454 1 +0 455 1 +0 462 1 +0 470 1 +0 471 1 +0 481 1 +0 482 1 +0 485 1 +0 489 1 +0 49 1 +0 490 1 +0 491 1 +0 5 1 +0 500 1 +0 501 2 +0 504 1 +0 522 1 +0 523 1 +0 524 1 +0 530 1 +0 535 1 +0 579 1 +0 583 1 +0 584 1 +0 586 1 +0 587 1 +0 590 1 +0 597 1 +0 601 1 +0 612 1 +0 615 1 +0 618 1 +0 65 1 +0 650 1 +0 658 1 +0 66 1 +0 661 2 +0 663 1 +0 664 1 +0 677 1 +0 68 1 +0 681 1 +0 687 1 +0 688 1 +0 690 1 +0 691 1 +0 6923604860394528768 1 +0 6924820982050758656 1 +0 6926925215281774592 1 +0 6927260280037097472 1 +0 6928080429732536320 1 +0 6933001829416034304 1 +0 6933451028794925056 1 +0 6933731240564056064 1 +0 6934570741217755136 1 +0 694 1 +0 6947488599548215296 1 +0 695 1 +0 6960137166475911168 1 +0 6962726713896484864 1 +0 6963217546192322560 1 +0 6964585306125008896 1 +0 6967631925774639104 1 +0 6969599299897163776 1 +0 6974475559697768448 1 +0 6982145326341423104 1 +0 6987889924212203520 1 +0 6991316084916879360 1 +0 6996686091335884800 1 +0 7006803044329021440 1 +0 7013693841855774720 1 +0 7014537632150224896 1 +0 7017956982081404928 1 +0 7022349041913978880 1 +0 7027529814236192768 1 +0 7031339012080549888 1 +0 7039820685967343616 1 +0 7045967493826387968 1 +0 7049773031131283456 1 +0 7052226236896256000 1 +0 7054271419461812224 1 +0 7054938591408996352 1 +0 7060236714847412224 1 +0 7061498706968428544 1 +0 7061809776248545280 1 +0 7062382339142156288 1 +0 7062605127422894080 1 +0 7065344324692443136 1 +0 7068517339681259520 1 +0 7069729473166090240 1 +0 707 1 +0 7077311975029555200 1 +0 7078641038157643776 1 +0 7080269176324218880 1 +0 7084659344078970880 1 +0 7086206629592252416 1 +0 7091300332052062208 1 +0 7099005292698550272 1 +0 71 1 +0 7107604675626008576 1 +0 7125231541858205696 1 +0 7128222874437238784 1 +0 7130159794259353600 1 +0 7130306447560826880 1 +0 7149417430082027520 1 +0 7153922334283776000 1 +0 7157247449513484288 1 +0 7164349895861829632 1 +0 7165364563962191872 1 +0 7166263463731421184 1 +0 7175638927948562432 1 +0 7186401810812059648 1 +0 7195454019231834112 1 +0 7198687580227043328 1 +0 7199539820886958080 1 +0 7204802700490858496 1 +0 7210160489915236352 1 +0 7212016545671348224 1 +0 7212090742612467712 1 +0 7217123582035116032 1 +0 7220131672176058368 1 +0 7220581538170413056 1 +0 7223569671814987776 1 +0 7226360892091416576 1 +0 7229607057201127424 1 +0 723 1 +0 7231399302953377792 1 +0 7232273749940838400 1 +0 7235109456886816768 1 +0 7237310132329488384 1 +0 7238339720750948352 1 +0 724 1 +0 7242751359672631296 1 +0 7249443195032985600 1 +0 7250237407877382144 1 +0 7254710367022645248 1 +0 7255302164215013376 1 +0 7259955893466931200 1 +0 7260908278294560768 1 +0 7265141874315517952 1 +0 7266437490436341760 1 +0 7271786885641666560 1 +0 7271887863395459072 1 +0 7274777328897802240 1 +0 7291432593139507200 1 +0 7295502697317097472 1 +0 7295926343524163584 1 +0 7296164580491075584 1 +0 7299197687217856512 1 +0 73 1 +0 7304839835188609024 1 +0 7308289763456000000 1 +0 7309156463509061632 1 +0 7310869618402910208 1 +0 7319711402123149312 1 +0 7333512171174223872 1 +0 7339426767877390336 1 +0 7343171468838567936 1 +0 7344029858387820544 1 +0 7345991518378442752 1 +0 7347732772348870656 1 +0 7348598907182800896 1 +0 735 1 +0 7354813692542304256 1 +0 7359004378440146944 1 +0 736 1 +0 7368920486374989824 1 +0 7370078518278397952 1 +0 7370803940448305152 1 +0 7375521127126089728 1 +0 7376467688511455232 1 +0 7378993334503694336 1 +0 738 1 +0 7381659098423926784 1 +0 7384150968511315968 1 +0 7386087924003676160 1 +0 7391208370547269632 1 +0 7393308503950548992 1 +0 7394967727502467072 1 +0 7401968422230032384 1 +0 7410096605330227200 1 +0 7410872053689794560 1 +0 7411793502161182720 1 +0 7412924364686458880 1 +0 7414865343000322048 1 +0 7418271723644403712 1 +0 743 1 +0 7432428551399669760 1 +0 7432998950057975808 1 +0 7436133434239229952 1 +0 7440265908266827776 1 +0 7450416810848313344 1 +0 7452756603516190720 1 +0 7454442625055145984 1 +0 7454632396542074880 1 +0 7461153404961128448 1 +0 7471208109437304832 1 +0 7473537548003352576 1 +0 7486884806277611520 1 +0 7487338208419823616 1 +0 7487538600082554880 1 +0 7490717730239250432 1 +0 7491898395977523200 1 +0 7492436934952574976 1 +0 7497276415392407552 1 +0 7497306924248834048 1 +0 7500716020874674176 1 +0 7514552840617558016 1 +0 7517159036469575680 1 +0 7524958388842078208 1 +0 7528074274555305984 1 +0 7528211148397944832 1 +0 7534042483076857856 1 +0 7534145866886782976 1 +0 7534549597202194432 1 +0 7545689659010949120 1 +0 7548958830580563968 1 +0 7549858023389003776 1 +0 7555301305375858688 1 +0 7566273236152721408 1 +0 7569249672628789248 1 +0 7570474972934488064 1 +0 7573530789362262016 1 +0 7575087487730196480 1 +0 7581052107944361984 1 +0 7581614118458335232 1 +0 7584007864107778048 1 +0 7592440105065308160 1 +0 7593521922173419520 1 +0 7596563216912211968 1 +0 7599019810193211392 1 +0 7608447395949109248 1 +0 7614435638888210432 1 +0 7620183559667081216 1 +0 7621013099259527168 1 +0 7625728883085025280 1 +0 7626715182847090688 1 +0 763 1 +0 7637152193832886272 1 +0 7647481735646363648 1 +0 7648729477297987584 1 +0 7652123583449161728 1 +0 7659279803863146496 1 +0 7662037650719850496 1 +0 7675009476762918912 1 +0 7678790769408172032 1 +0 7682327310082531328 1 +0 7686992843032010752 1 +0 7689489436826804224 1 +0 7690986322714066944 1 +0 7691062622443044864 1 +0 7696737688942567424 1 +0 7697541332524376064 1 +0 7700734109530767360 1 +0 7701723309715685376 1 +0 7705445437881278464 1 +0 7710447533880614912 1 +0 7718825401976684544 1 +0 7720187583697502208 1 +0 7731443941834678272 1 +0 7735566678126616576 1 +0 774 1 +0 7741854854673367040 1 +0 7746402369011277824 1 +0 7747874976739016704 1 +0 7748799008146366464 1 +0 7752740515534422016 1 +0 7753359568986636288 1 +0 7753882935005880320 1 +0 7761834341179375616 1 +0 7762823913046556672 1 +0 7765456790394871808 1 +0 7768984605670604800 1 +0 7775034125776363520 1 +0 7778936842502275072 1 +0 7779486624537370624 1 +0 7779735136559579136 1 +0 7782245855193874432 1 +0 7784169796350730240 1 +0 7784489776013295616 1 +0 779 1 +0 7790728456522784768 1 +0 7792036342592348160 1 +0 7794244032613703680 1 +0 78 1 +0 780 1 +0 7800332581637259264 1 +0 7801697837312884736 1 +0 7818464507324121088 1 +0 782 1 +0 7823874904139849728 1 +0 784 1 +0 7843804446688264192 1 +0 7844258063629852672 1 +0 7845953007588401152 1 +0 7857878068300898304 1 +0 7868367829080506368 1 +0 7870277756614623232 1 +0 7871189141676998656 1 +0 7871554728617025536 1 +0 7874764415950176256 1 +0 7885697257930588160 1 +0 7888238729321496576 1 +0 789 1 +0 7892026679115554816 1 +0 7892281003266408448 1 +0 7898670840507031552 1 +0 7909645665163804672 1 +0 7917494645725765632 1 +0 7919597361814577152 1 +0 7921639119138070528 1 +0 7922443154272395264 1 +0 7926898770090491904 1 +0 7933040277013962752 1 +0 7936149988210212864 1 +0 7944741547145502720 1 +0 7947544013461512192 1 +0 7948803266578161664 1 +0 7955126053367119872 1 +0 7961515985722605568 1 +0 7961909238130270208 1 +0 797 1 +0 7983789401706094592 1 +0 7989119273552158720 1 +0 7989160253372817408 1 +0 7997694023324975104 1 +0 7998357471114969088 1 +0 7998687089080467456 1 +0 80 1 +0 8000440057238052864 1 +0 8002769767000145920 1 +0 8004633750273925120 1 +0 8011181697250631680 1 +0 8011602724663336960 1 +0 8014986215157530624 1 +0 8017403886247927808 1 +0 803 1 +0 8045070943673671680 1 +0 8048726769133592576 1 +0 8059284960252731392 1 +0 8069531888205086720 1 +0 8071961599867387904 1 +0 8073733016154431488 1 +0 8079573715140485120 1 +0 808 1 +0 8087737899452432384 1 +0 809 1 +0 8091421389575282688 1 +0 8099215208813903872 1 +0 8100036735858401280 1 +0 8109381965028548608 1 +0 8111757081791733760 1 +0 8113585123802529792 1 +0 8116738401948377088 1 +0 812 1 +0 8120593157178228736 1 +0 8129551357032259584 1 +0 8135164922674872320 1 +0 8142241016679735296 1 +0 8143462899383345152 1 +0 8144552446127972352 1 +0 8145745969573666816 1 +0 8145750910080745472 1 +0 8146288732715196416 1 +0 8146492373537660928 1 +0 8148211378319933440 1 +0 815 1 +0 8150115791664340992 1 +0 8156018594610790400 1 +0 8156782979767238656 1 +0 8160569434550403072 1 +0 8160662610166194176 1 +0 8163948965373386752 1 +0 8168742078705262592 1 +0 8169878743136043008 1 +0 8171188598958407680 1 +0 8183233196086214656 1 +0 8184799300477943808 1 +0 8190539859890601984 1 +0 8190967051000659968 1 +0 8192304692696383488 1 +0 8195103847607967744 1 +0 8199513544090730496 1 +0 820 2 +0 8201303040648052736 1 +0 8201491077550874624 1 +0 8208354137450766336 1 +0 8210813831744118784 1 +0 8213810702473183232 1 +0 8219326436390821888 1 +0 8220104397160169472 1 +0 8221561626658881536 1 +0 8222714144797368320 1 +0 8223732800007864320 1 +0 823 1 +0 8230371298967609344 1 +0 8235179243092090880 1 +0 8244041599171862528 1 +0 8254763178969915392 1 +0 8268875586442256384 1 +0 8269730157217062912 1 +0 8272001752345690112 1 +0 8279056098670198784 1 +0 8282648443538710528 1 +0 8283099811330506752 1 +0 8286706213485297664 1 +0 8287522765741301760 1 +0 8290014929764040704 1 +0 8290944180915871744 1 +0 8294315622451740672 1 +0 8295110846998233088 1 +0 83 1 +0 8302473563519950848 1 +0 8316336224427483136 1 +0 8323460620425330688 1 +0 8325227661920133120 1 +0 8332670681629106176 1 +0 8333523087360901120 1 +0 8337549596011102208 1 +0 8345435427356090368 1 +0 835 1 +0 8351163199364390912 1 +0 8362046808797306880 1 +0 8365058996333953024 1 +0 8367680396909404160 1 +0 8368012468775608320 1 +0 837 1 +0 8371939471056470016 1 +0 8372408423196270592 1 +0 8372588378498777088 1 +0 8374321007870836736 1 +0 8376440110255243264 1 +0 8383159090746204160 1 +0 8388363436324085760 1 +0 8391407951622815744 1 +0 8391785334471589888 1 +0 8396433451610652672 1 +0 8398862954249560064 1 +0 8407869317250220032 1 +0 8410599906334097408 1 +0 8411494452500930560 1 +0 8415171956168417280 1 +0 8416121695917498368 1 +0 8417381121663746048 1 +0 8419958579638157312 1 +0 8424515140664360960 1 +0 8435912708683087872 1 +0 845 1 +0 8451612303224520704 1 +0 8454154705460666368 1 +0 8455496814886002688 1 +0 8457906374051020800 1 +0 8461498293348065280 1 +0 8463868417649524736 1 +0 8467976965865799680 1 +0 8470141334513098752 1 +0 8472429318602268672 1 +0 8473699639908261888 1 +0 8487573502287478784 1 +0 8489584373231919104 1 +0 8489735221193138176 1 +0 85 1 +0 8501910015960735744 1 +0 8508401924853850112 1 +0 8509508263705477120 1 +0 8514851182589771776 1 +0 8514979402185596928 1 +0 8515682078777081856 1 +0 8518454006987948032 1 +0 8519937082746634240 1 +0 8523972434954510336 1 +0 8524940073536954368 1 +0 8525336514806317056 1 +0 8525894870444638208 1 +0 8532016240026279936 1 +0 8536948829863198720 1 +0 8540237852367446016 1 +0 8543177193114779648 1 +0 8547243497773457408 1 +0 8551446856960942080 1 +0 8553195689344991232 1 +0 8554899472487596032 1 +0 8555933456197828608 1 +0 8555948987770511360 1 +0 8557218322962644992 1 +0 8558000156325707776 1 +0 8560526613401714688 1 +0 8569030475428511744 1 +0 8570983266408103936 1 +0 8571268359622172672 1 +0 8573305425181941760 1 +0 8577096957495025664 1 +0 8579974641030365184 1 +0 8583916402383601664 1 +0 8613562211893919744 1 +0 8625937019655200768 1 +0 8631515095562887168 1 +0 8637720762289659904 1 +0 8639254009546055680 1 +0 8641221723991433216 1 +0 8643198489997254656 1 +0 8644602243484803072 1 +0 8649296591032172544 1 +0 8652485812846567424 1 +0 8656571350884048896 1 +0 8660248367767076864 1 +0 8665969966920990720 1 +0 8666178591503564800 1 +0 8677632093825916928 1 +0 8677794924343164928 1 +0 868 1 +0 8682955459667951616 1 +0 8687042963221159936 1 +0 8688483860094599168 1 +0 8693036785094565888 1 +0 8697823501349609472 1 +0 8698055291501543424 1 +0 8708232769657815040 1 +0 8708845895460577280 1 +0 871 1 +0 8714829359200747520 1 +0 8716401555586727936 1 +0 8720504651219001344 1 +0 8723248113030782976 1 +0 873 1 +0 8731960288562044928 1 +0 8734584858442498048 1 +0 8736061027343859712 1 +0 874 1 +0 8752150411997356032 1 +0 8759089349412847616 1 +0 8759184090543857664 1 +0 8760285623204290560 1 +0 8761174805938331648 1 +0 8769199243315814400 1 +0 8773222500321361920 1 +0 8775009214012456960 1 +0 8779073705407963136 1 +0 8779711700787298304 1 +0 878 1 +0 8780196485890555904 1 +0 8782900615468302336 1 +0 8783241818558193664 1 +0 8785153741735616512 1 +0 8792059919353348096 1 +0 8793387410919038976 1 +0 8795069490394882048 1 +0 8806507556248731648 1 +0 8808467247666241536 1 +0 8811693967537774592 1 +0 8815398225009967104 1 +0 8817665768680906752 1 +0 8822384228057604096 1 +0 8825059717746376704 1 +0 8829545979081744384 1 +0 883 1 +0 8836228556823977984 1 +0 8837420822750314496 1 +0 8849475396952514560 1 +0 8850055384477401088 1 +0 8853989376829833216 1 +0 8854495099223375872 1 +0 8854677881758162944 1 +0 8854715632851345408 1 +0 8856674723376668672 1 +0 8868529429494071296 1 +0 8871707618793996288 1 +0 8875745082589929472 1 +0 888 1 +0 8895174927321243648 1 +0 8896237972875370496 1 +0 8897901899039473664 1 +0 8899122608190930944 1 +0 8900180888218329088 1 +0 8900351886974279680 1 +0 8900545829211299840 1 +0 8905330479248064512 1 +0 8910706980937261056 1 +0 8920344895701393408 1 +0 8920533610804609024 1 +0 8927691194719174656 1 +0 8928133990107881472 1 +0 8935252708196999168 1 +0 8936639033158410240 1 +0 8939431770838810624 1 +0 8945004737083555840 1 +0 8945302550165004288 1 +0 8962097525980225536 1 +0 8972161729142095872 1 +0 8979012655944220672 1 +0 898 2 +0 8983857919580209152 1 +0 8983912573761167360 1 +0 8984935029383389184 1 +0 8987827141270880256 1 +0 8991071342495531008 1 +0 8991442360387584000 1 +0 8994608999945125888 1 +0 8995562121346260992 1 +0 8996824426131390464 1 +0 9000633029632499712 1 +0 9001907486943993856 1 +0 9005866015985713152 1 +0 9016280522993975296 1 +0 9020143715350814720 1 +0 9023663198045544448 1 +0 9030480306789818368 1 +0 9038087402564657152 1 +0 9040958359122640896 1 +0 9043089884440068096 1 +0 9048002942653710336 1 +0 9048297564833079296 1 +0 9050032047355125760 1 +0 9053187076403060736 1 +0 9054887854393950208 1 +0 9062227900376203264 1 +0 9064847977742032896 1 +0 9067985867711291392 1 +0 9073672806863790080 1 +0 9075404705968840704 1 +0 9078604269481148416 1 +0 908 1 +0 9083076230151864320 1 +0 9083704659251798016 1 +0 9084402694981533696 1 +0 9085381906890203136 1 +0 9085434340468473856 1 +0 9086905513121890304 1 +0 9089435102788009984 1 +0 9091082386452684800 1 +0 9091085792947666944 1 +0 9094945190752903168 1 +0 9096395849845194752 1 +0 91 1 +0 9104574294205636608 1 +0 9107991000536498176 1 +0 9112400579327483904 1 +0 9114850402293882880 1 +0 9116137265342169088 1 +0 9117063974299148288 1 +0 9119046173224370176 1 +0 9123116008004288512 1 +0 913 1 +0 9131533983989358592 1 +0 9132009829414584320 1 +0 9136234417125007360 1 +0 9136548192574529536 1 +0 9139805788041134080 1 +0 914 1 +0 9148071980848742400 1 +0 9149216169284091904 1 +0 9165199002069458944 1 +0 9169248521377374208 1 +0 917 1 +0 9174894805640142848 1 +0 918 1 +0 9180098147855769600 1 +0 9182828596851990528 1 +0 9185458640237641728 1 +0 9185952983951343616 1 +0 9188173682239275008 1 +0 919 1 +0 9190466190353661952 1 +0 9191943992860327936 1 +0 9194388393453060096 1 +0 9199741683232399360 1 +0 9207107990561972224 1 +0 9207927479837319168 1 +0 9209153648361848832 1 +0 921 1 +0 9211455920344088576 1 +0 922 1 +0 923 1 +0 927 1 +0 928 1 +0 939 1 +0 94 1 +0 945 1 +0 947 1 +0 950 2 +0 958 1 +0 961 1 +0 965 1 +0 967 1 +0 976 1 +0 979 1 +0 982 1 +0 987 1 +0 997 1 +0 999 1 +0 NULL 83 +1 NULL 2000 diff --git ql/src/test/results/clientpositive/vector_grouping_sets.q.out ql/src/test/results/clientpositive/vector_grouping_sets.q.out index 8a8d1ef..ee9c3b7 100644 --- ql/src/test/results/clientpositive/vector_grouping_sets.q.out +++ ql/src/test/results/clientpositive/vector_grouping_sets.q.out @@ -164,10 +164,11 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 1, ConstantVectorExpression(val 0) -> 29:long + keyExpressions: col 1, ConstantVectorExpression(val 0) -> 31:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: s_store_id (type: string), 0 (type: int) mode: hash outputColumnNames: _col0, _col1 @@ -202,7 +203,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: string), KEY._col1 (type: int) mode: mergepartial outputColumnNames: _col0 @@ -282,10 +282,11 @@ STAGE PLANS: className: VectorGroupByOperator groupByMode: HASH vectorOutput: true - keyExpressions: col 1, ConstantVectorExpression(val 0) -> 29:long + keyExpressions: col 1, ConstantVectorExpression(val 0) -> 31:long native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: _col0 (type: string), 0 (type: int) mode: hash outputColumnNames: _col0, _col1 @@ -320,7 +321,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: string), KEY._col1 (type: int) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/vector_include_no_sel.q.out ql/src/test/results/clientpositive/vector_include_no_sel.q.out index 7f97f54..b5ba605 100644 --- ql/src/test/results/clientpositive/vector_include_no_sel.q.out +++ ql/src/test/results/clientpositive/vector_include_no_sel.q.out @@ -237,13 +237,14 @@ STAGE PLANS: Group By Operator aggregations: count(1) Group By Vectorization: - aggregators: VectorUDAFCount(ConstantVectorExpression(val 1) -> 3:long) -> bigint + aggregators: VectorUDAFCount(ConstantVectorExpression(val 1) -> 5:long) -> bigint className: VectorGroupByOperator groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -279,7 +280,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vector_mapjoin_reduce.q.out ql/src/test/results/clientpositive/vector_mapjoin_reduce.q.out index e20bdf5..7278094 100644 --- ql/src/test/results/clientpositive/vector_mapjoin_reduce.q.out +++ ql/src/test/results/clientpositive/vector_mapjoin_reduce.q.out @@ -44,8 +44,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: l_partkey (type: int) mode: hash outputColumnNames: _col0 @@ -80,7 +81,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0 @@ -134,7 +134,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: _col0 (type: int) mode: hash outputColumnNames: _col0 @@ -283,8 +282,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: l_partkey (type: int) mode: hash outputColumnNames: _col0 @@ -319,7 +319,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: int) mode: mergepartial outputColumnNames: _col0 @@ -373,7 +372,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: _col0 (type: int), _col1 (type: int) mode: hash outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/vector_mapjoin_slot_number.q.out ql/src/test/results/clientpositive/vector_mapjoin_slot_number.q.out new file mode 100644 index 0000000..d90edcf --- /dev/null +++ ql/src/test/results/clientpositive/vector_mapjoin_slot_number.q.out @@ -0,0 +1,6679 @@ +PREHOOK: query: create table vectortab2k( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' +STORED AS TEXTFILE +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@vectortab2k +POSTHOOK: query: create table vectortab2k( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' +STORED AS TEXTFILE +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@vectortab2k +PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/vectortab2k' OVERWRITE INTO TABLE vectortab2k +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@vectortab2k +POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/vectortab2k' OVERWRITE INTO TABLE vectortab2k +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@vectortab2k +PREHOOK: query: create table vectortab2korc( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +STORED AS ORC +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@vectortab2korc +POSTHOOK: query: create table vectortab2korc( + t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + dc decimal(38,18), + bo boolean, + s string, + s2 string, + ts timestamp, + ts2 timestamp, + dt date) +STORED AS ORC +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@vectortab2korc +PREHOOK: query: INSERT INTO TABLE vectortab2korc SELECT * FROM vectortab2k +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2k +PREHOOK: Output: default@vectortab2korc +POSTHOOK: query: INSERT INTO TABLE vectortab2korc SELECT * FROM vectortab2k +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2k +POSTHOOK: Output: default@vectortab2korc +POSTHOOK: Lineage: vectortab2korc.b SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:b, type:bigint, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.bo SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:bo, type:boolean, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.d SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:d, type:double, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.dc SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:dc, type:decimal(38,18), comment:null), ] +POSTHOOK: Lineage: vectortab2korc.dt SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:dt, type:date, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.f SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:f, type:float, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.i SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:i, type:int, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.s SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:s, type:string, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.s2 SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:s2, type:string, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.si SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:si, type:smallint, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.t SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:t, type:tinyint, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.ts SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:ts, type:timestamp, comment:null), ] +POSTHOOK: Lineage: vectortab2korc.ts2 SIMPLE [(vectortab2k)vectortab2k.FieldSchema(name:ts2, type:timestamp, comment:null), ] +PREHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(10, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(10, b), b having count(*) > 1 order by slot_count desc, slot_number +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(10, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(10, b), b having count(*) > 1 order by slot_count desc, slot_number +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +1075 3 120 +1165 2 204 +1368 2 263 +1371 2 260 +1481 2 414 +1509 2 432 +1537 2 621 +154 2 146 +1701 2 706 +1719 2 721 +1777 2 659 +1856 2 826 +19 2 18 +1914 2 771 +1948 3 1002 +2020 2 917 +213 2 217 +2193 2 9 +2285 2 114 +2325 2 406 +2393 2 478 +2412 2 488 +2463 3 277 +2485 2 317 +2560 2 692 +2619 2 652 +263 2 277 +268 2 286 +2715 2 551 +2786 2 601 +2803 3 585 +2843 2 956 +2855 2 899 +2897 2 1010 +2933 2 980 +296 2 312 +2968 2 822 +3021 2 870 +3060 2 860 +3079 2 223 +3159 2 138 +3418 2 405 +346 2 333 +3462 3 325 +3467 2 328 +3555 2 294 +3588 2 760 +3622 2 728 +3725 2 632 +3728 2 612 +3770 2 588 +3781 2 564 +383 2 362 +3866 2 1013 +3974 2 865 +412 2 390 +501 2 489 +661 2 697 +820 2 769 +898 2 957 +950 2 906 +NULL 83 NULL +PREHOOK: query: select count(*) as slot_count, vector_mapjoin_slot_number(10, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(10, b) order by slot_count desc, slot_number +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select count(*) as slot_count, vector_mapjoin_slot_number(10, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(10, b) order by slot_count desc, slot_number +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +1 0 +1 1000 +1 1003 +1 1004 +1 1006 +1 1009 +1 1011 +1 1012 +1 1016 +1 1017 +1 105 +1 106 +1 107 +1 11 +1 110 +1 111 +1 113 +1 121 +1 122 +1 128 +1 129 +1 13 +1 131 +1 137 +1 143 +1 145 +1 148 +1 15 +1 153 +1 160 +1 165 +1 172 +1 173 +1 179 +1 183 +1 19 +1 190 +1 192 +1 193 +1 199 +1 20 +1 200 +1 201 +1 202 +1 206 +1 208 +1 210 +1 212 +1 221 +1 222 +1 23 +1 230 +1 232 +1 233 +1 234 +1 235 +1 237 +1 245 +1 246 +1 247 +1 256 +1 258 +1 259 +1 26 +1 269 +1 273 +1 274 +1 275 +1 276 +1 29 +1 298 +1 30 +1 300 +1 303 +1 311 +1 315 +1 321 +1 326 +1 336 +1 339 +1 343 +1 344 +1 345 +1 350 +1 351 +1 359 +1 36 +1 366 +1 367 +1 368 +1 386 +1 387 +1 388 +1 389 +1 398 +1 4 +1 401 +1 407 +1 408 +1 411 +1 413 +1 418 +1 420 +1 423 +1 425 +1 426 +1 427 +1 430 +1 431 +1 433 +1 437 +1 438 +1 44 +1 441 +1 444 +1 446 +1 448 +1 45 +1 453 +1 459 +1 46 +1 465 +1 467 +1 469 +1 474 +1 476 +1 480 +1 490 +1 491 +1 493 +1 498 +1 499 +1 500 +1 501 +1 505 +1 506 +1 508 +1 512 +1 516 +1 520 +1 522 +1 526 +1 529 +1 531 +1 533 +1 537 +1 54 +1 541 +1 546 +1 547 +1 548 +1 549 +1 553 +1 559 +1 561 +1 568 +1 57 +1 571 +1 574 +1 576 +1 577 +1 583 +1 584 +1 586 +1 590 +1 592 +1 598 +1 599 +1 600 +1 602 +1 603 +1 608 +1 610 +1 611 +1 613 +1 616 +1 62 +1 630 +1 635 +1 636 +1 641 +1 643 +1 644 +1 645 +1 646 +1 647 +1 649 +1 655 +1 663 +1 671 +1 678 +1 679 +1 682 +1 685 +1 687 +1 691 +1 698 +1 7 +1 70 +1 701 +1 704 +1 707 +1 711 +1 720 +1 727 +1 732 +1 733 +1 735 +1 737 +1 738 +1 743 +1 744 +1 75 +1 750 +1 752 +1 753 +1 755 +1 756 +1 758 +1 766 +1 767 +1 768 +1 772 +1 773 +1 780 +1 786 +1 79 +1 790 +1 791 +1 793 +1 794 +1 798 +1 804 +1 808 +1 809 +1 81 +1 811 +1 813 +1 818 +1 824 +1 838 +1 84 +1 847 +1 850 +1 853 +1 866 +1 87 +1 873 +1 874 +1 879 +1 88 +1 881 +1 883 +1 884 +1 885 +1 891 +1 903 +1 908 +1 918 +1 921 +1 93 +1 930 +1 947 +1 950 +1 955 +1 964 +1 968 +1 97 +1 970 +1 974 +1 976 +1 978 +1 979 +1 98 +1 981 +1 984 +1 987 +1 990 +1 992 +1 993 +1 996 +2 1 +2 1001 +2 1007 +2 101 +2 1021 +2 108 +2 109 +2 114 +2 115 +2 116 +2 119 +2 132 +2 135 +2 136 +2 139 +2 14 +2 142 +2 146 +2 151 +2 157 +2 159 +2 16 +2 162 +2 163 +2 164 +2 17 +2 174 +2 175 +2 177 +2 182 +2 184 +2 187 +2 188 +2 189 +2 196 +2 197 +2 205 +2 21 +2 214 +2 22 +2 224 +2 227 +2 231 +2 236 +2 239 +2 241 +2 243 +2 252 +2 255 +2 264 +2 279 +2 28 +2 280 +2 283 +2 284 +2 287 +2 290 +2 291 +2 293 +2 302 +2 306 +2 307 +2 309 +2 316 +2 319 +2 324 +2 330 +2 332 +2 337 +2 338 +2 34 +2 346 +2 348 +2 35 +2 352 +2 353 +2 354 +2 360 +2 362 +2 364 +2 37 +2 371 +2 373 +2 374 +2 375 +2 378 +2 38 +2 380 +2 395 +2 397 +2 402 +2 405 +2 41 +2 410 +2 419 +2 42 +2 424 +2 429 +2 436 +2 440 +2 442 +2 447 +2 449 +2 452 +2 454 +2 457 +2 461 +2 466 +2 468 +2 47 +2 475 +2 477 +2 48 +2 482 +2 484 +2 485 +2 486 +2 487 +2 496 +2 497 +2 50 +2 504 +2 507 +2 509 +2 51 +2 513 +2 514 +2 515 +2 525 +2 53 +2 530 +2 535 +2 543 +2 544 +2 552 +2 557 +2 558 +2 56 +2 560 +2 562 +2 563 +2 564 +2 569 +2 570 +2 575 +2 579 +2 58 +2 582 +2 595 +2 6 +2 604 +2 605 +2 61 +2 612 +2 614 +2 615 +2 618 +2 619 +2 620 +2 627 +2 628 +2 629 +2 634 +2 650 +2 654 +2 66 +2 660 +2 661 +2 662 +2 666 +2 667 +2 668 +2 670 +2 676 +2 68 +2 683 +2 688 +2 69 +2 694 +2 696 +2 700 +2 705 +2 706 +2 709 +2 715 +2 716 +2 717 +2 730 +2 736 +2 740 +2 746 +2 748 +2 749 +2 751 +2 754 +2 757 +2 760 +2 761 +2 763 +2 765 +2 774 +2 778 +2 779 +2 78 +2 782 +2 789 +2 792 +2 797 +2 80 +2 800 +2 806 +2 810 +2 814 +2 815 +2 817 +2 821 +2 822 +2 830 +2 833 +2 836 +2 839 +2 840 +2 843 +2 844 +2 845 +2 846 +2 848 +2 85 +2 852 +2 854 +2 864 +2 870 +2 871 +2 877 +2 882 +2 886 +2 887 +2 892 +2 895 +2 898 +2 909 +2 91 +2 916 +2 922 +2 925 +2 926 +2 927 +2 928 +2 929 +2 933 +2 936 +2 941 +2 943 +2 944 +2 952 +2 953 +2 96 +2 962 +2 967 +2 975 +2 985 +2 988 +2 99 +2 995 +3 1018 +3 103 +3 104 +3 112 +3 117 +3 124 +3 125 +3 127 +3 134 +3 138 +3 150 +3 152 +3 154 +3 161 +3 168 +3 169 +3 185 +3 186 +3 195 +3 204 +3 207 +3 211 +3 213 +3 215 +3 219 +3 220 +3 223 +3 24 +3 244 +3 25 +3 253 +3 262 +3 265 +3 27 +3 292 +3 294 +3 295 +3 296 +3 297 +3 299 +3 301 +3 310 +3 317 +3 32 +3 322 +3 33 +3 333 +3 335 +3 340 +3 347 +3 349 +3 379 +3 384 +3 390 +3 393 +3 40 +3 403 +3 404 +3 414 +3 415 +3 417 +3 428 +3 43 +3 434 +3 439 +3 455 +3 463 +3 473 +3 478 +3 489 +3 49 +3 5 +3 503 +3 511 +3 519 +3 527 +3 555 +3 556 +3 567 +3 578 +3 585 +3 588 +3 591 +3 593 +3 594 +3 596 +3 60 +3 606 +3 607 +3 617 +3 624 +3 633 +3 637 +3 639 +3 64 +3 640 +3 656 +3 657 +3 659 +3 664 +3 67 +3 675 +3 680 +3 681 +3 686 +3 689 +3 697 +3 699 +3 702 +3 71 +3 713 +3 714 +3 719 +3 724 +3 725 +3 728 +3 74 +3 741 +3 747 +3 76 +3 764 +3 770 +3 775 +3 783 +3 787 +3 788 +3 795 +3 796 +3 807 +3 816 +3 820 +3 829 +3 835 +3 849 +3 851 +3 858 +3 859 +3 860 +3 862 +3 863 +3 865 +3 875 +3 876 +3 880 +3 888 +3 89 +3 893 +3 899 +3 901 +3 910 +3 911 +3 912 +3 913 +3 92 +3 924 +3 931 +3 932 +3 934 +3 935 +3 938 +3 939 +3 940 +3 942 +3 948 +3 95 +3 951 +3 958 +3 960 +3 965 +3 969 +3 971 +3 972 +3 982 +3 991 +3 998 +3 999 +4 10 +4 1013 +4 1015 +4 1019 +4 1020 +4 130 +4 155 +4 158 +4 166 +4 170 +4 176 +4 18 +4 191 +4 198 +4 2 +4 225 +4 250 +4 260 +4 263 +4 272 +4 281 +4 286 +4 312 +4 318 +4 323 +4 329 +4 334 +4 358 +4 369 +4 381 +4 385 +4 400 +4 406 +4 416 +4 421 +4 451 +4 456 +4 472 +4 524 +4 528 +4 536 +4 538 +4 540 +4 550 +4 551 +4 572 +4 581 +4 601 +4 623 +4 632 +4 665 +4 673 +4 692 +4 695 +4 742 +4 745 +4 759 +4 77 +4 771 +4 802 +4 82 +4 828 +4 834 +4 841 +4 855 +4 856 +4 857 +4 868 +4 890 +4 897 +4 9 +4 902 +4 906 +4 915 +4 917 +4 94 +4 949 +4 956 +5 1010 +5 1022 +5 120 +5 126 +5 266 +5 305 +5 308 +5 320 +5 325 +5 327 +5 328 +5 342 +5 356 +5 376 +5 391 +5 412 +5 432 +5 462 +5 488 +5 494 +5 502 +5 573 +5 622 +5 652 +5 653 +5 669 +5 672 +5 684 +5 769 +5 803 +5 826 +5 842 +5 86 +5 878 +5 900 +5 920 +5 923 +5 937 +5 957 +5 980 +5 994 +6 1002 +6 217 +6 443 +6 52 +6 521 +6 539 +6 721 +6 963 +7 621 +8 277 +83 NULL +PREHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(10, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(10, b), b order by slot_count desc, slot_number +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(10, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(10, b), b order by slot_count desc, slot_number +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 1 62 +-6919476845891313664 1 621 +-6920172215209426944 1 955 +-6921654334727036928 1 473 +-6933565857643814912 1 220 +-6934304742087655424 1 606 +-6935038507792801792 1 979 +-6935548339131138048 1 836 +-6938706403992854528 1 614 +-6941777546186579968 1 521 +-6947955278050181120 1 969 +-6951350560260784128 1 659 +-6957946688477274112 1 684 +-6960947572095770624 1 111 +-6962271229404348416 1 555 +-6962292590214234112 1 963 +-6968771079156654080 1 434 +-6968892545529896960 1 876 +-6970396058557005824 1 982 +-6974654664348033024 1 442 +-6975459232300236800 1 842 +-6986178228432322560 1 89 +-6988811476286873600 1 527 +-6988970700649168896 1 815 +-6992217501957169152 1 266 +-6997233584896229376 1 509 +-7000925438663041024 1 623 +-7003696402314215424 1 296 +-7011425384222244864 1 353 +-7017212700635545600 1 211 +-7020852530219171840 1 811 +-7030489936116252672 1 309 +-7035132060308643840 1 621 +-7036607470351654912 1 845 +-7037375807670501376 1 527 +-7037638331316469760 1 540 +-7038455462786334720 1 614 +-7040248820505149440 1 185 +-7041362811802148864 1 10 +-7042183597114081280 1 416 +-7046180371529351168 1 680 +-7049618574399692800 1 255 +-7052619594823221248 1 263 +-7055619148037554176 1 557 +-7055760785575665664 1 828 +-7057750467944931328 1 337 +-7058986555327307776 1 33 +-7063777488249085952 1 56 +-7078068944081002496 1 371 +-7079898537463537664 1 60 +-7081500255163727872 1 53 +-7083646746411720704 1 287 +-7085247548404178944 1 880 +-7093825013581979648 1 878 +-7094189393339678720 1 408 +-7094827141662539776 1 884 +-7104310188119834624 1 617 +-7106210529681350656 1 826 +-7109790267244814336 1 185 +-7115054815375073280 1 328 +-7120456708338688000 1 994 +-7127548949860818944 1 417 +-7138415011665043456 1 796 +-7139677575412686848 1 441 +-7140008543769042944 1 22 +-7144791190333546496 1 28 +-7145585429014888448 1 745 +-7147490721376591872 1 71 +-7152177800841502720 1 572 +-7155539549555105792 1 223 +-7158472098920390656 1 452 +-7159700138947862528 1 538 +-7161165959057334272 1 676 +-7162299524557471744 1 451 +-7172594404186693632 1 563 +-7185369278665605120 1 512 +-7192529627893858304 1 514 +-7194281951646187520 1 6 +-7195217207163166720 1 496 +-7198372044947275776 1 232 +-7199983995864711168 1 923 +-7201085131997011968 1 593 +-7209060152494817280 1 730 +-7213775605408178176 1 419 +-7220731681653604352 1 775 +-7221474017515347968 1 719 +-7228589258642194432 1 539 +-7240213957902663680 1 683 +-7242345057866285056 1 926 +-7245872320493322240 1 958 +-7246123871306244096 1 560 +-7255010240787030016 1 661 +-7255686273677328384 1 820 +-7262049693594943488 1 320 +-7262384251828518912 1 6 +-7262798781688651776 1 318 +-7263060340185194496 1 297 +-7265998318110711808 1 94 +-7266719102957125632 1 1022 +-7270034223527993344 1 1013 +-7273590251991162880 1 637 +-7273694358642851840 1 120 +-7276111129363046400 1 893 +-7287583262310350848 1 262 +-7292078334519894016 1 219 +-7296096276653391872 1 698 +-7303847963918393344 1 622 +-7319315187617587200 1 333 +-7326863346317598720 1 906 +-7328087811698909184 1 25 +-7329767178250018816 1 713 +-7329807949048193024 1 443 +-7330203470474985472 1 892 +-7330413050756235264 1 964 +-7333278178640953344 1 915 +-7333362172439035904 1 525 +-7340231535789727744 1 684 +-7344146703223496704 1 607 +-7344947507044466688 1 815 +-7345562788132315136 1 27 +-7356685674003021824 1 957 +-7357888618985873408 1 283 +-7362189611124563968 1 814 +-7366430883634929664 1 272 +-7378096180613840896 1 751 +-7380731416973295616 1 0 +-7395343938785738752 1 207 +-7395553021620731904 1 191 +-7399631791131074560 1 850 +-7404052043914526720 1 277 +-7404057145074712576 1 524 +-7409317158045442048 1 851 +-7409653086454030336 1 252 +-7412431471807283200 1 505 +-7413317118463164416 1 369 +-7419068456205385728 1 694 +-7420448501073051648 1 621 +-7425160895830573056 1 308 +-7429331808102899712 1 859 +-7433265617153343488 1 539 +-7442593976514420736 1 920 +-7444070205513138176 1 764 +-7451660755269853184 1 960 +-7453525026342617088 1 243 +-7455898404374921216 1 749 +-7456869587112255488 1 835 +-7461750143936897024 1 515 +-7464270453557993472 1 593 +-7469660864676585472 1 949 +-7470307155642245120 1 423 +-7476082621253402624 1 897 +-7483435388852559872 1 369 +-7488345684795342848 1 323 +-7488415863027367936 1 552 +-7494411162675691520 1 656 +-7496839341561954304 1 449 +-7497303453253402624 1 499 +-7500200359698907136 1 316 +-7501803640821456896 1 863 +-7506254246954500096 1 250 +-7507424948896415744 1 280 +-7507578199583694848 1 778 +-7510418793070075904 1 134 +-7511202710200885248 1 397 +-7511952204985049088 1 1011 +-7512289590991544320 1 205 +-7512297136103800832 1 807 +-7515996202498473984 1 269 +-7524170566881329152 1 700 +-7526793959592140800 1 40 +-7528526815026692096 1 591 +-7532751268425261056 1 985 +-7535857766791577600 1 276 +-7535958203887706112 1 857 +-7536330682873937920 1 332 +-7540104552219860992 1 802 +-7541860097718902784 1 769 +-7542857121910046720 1 929 +-7547245548870025216 1 234 +-7547432761381339136 1 204 +-7551394356730339328 1 71 +-7557017910095650816 1 834 +-7558524160894427136 1 537 +-7571293705217687552 1 219 +-7571957778022178816 1 761 +-7572262898020278272 1 173 +-7572962089372991488 1 69 +-7576194692683563008 1 878 +-7593363318079610880 1 985 +-7594824008626372608 1 60 +-7598782894648565760 1 170 +-7600138468036386816 1 385 +-7603467428164009984 1 892 +-7603569103205916672 1 342 +-7610137349734883328 1 709 +-7611584069753552896 1 672 +-7612455481940246528 1 803 +-7612466483992051712 1 555 +-7616522969329262592 1 53 +-7617860842651017216 1 934 +-7623047151287754752 1 911 +-7623359796281999360 1 541 +-7623405558242500608 1 451 +-7624057992767782912 1 620 +-7629401308029976576 1 848 +-7637494527844343808 1 101 +-7637755520917741568 1 1015 +-7642381493746483200 1 27 +-7647020450676146176 1 418 +-7661192563533062144 1 1019 +-7661250850555633664 1 675 +-7663293054873812992 1 893 +-7665186441284968448 1 682 +-7668388017287020544 1 95 +-7669169138124275712 1 312 +-7673901622181953536 1 771 +-7679894005808693248 1 639 +-7686220526274502656 1 935 +-7687052294777208832 1 286 +-7692192232238678016 1 724 +-7695491171376291840 1 970 +-7700203302632210432 1 539 +-7703540456272994304 1 763 +-7707242953271500800 1 326 +-7707867749256445952 1 125 +-7708932208121225216 1 999 +-7709958788604936192 1 502 +-7712425776235274240 1 401 +-7720966287634112512 1 835 +-7739424919198187520 1 104 +-7744462446680375296 1 503 +-7751265769984491520 1 725 +-7751427073017544704 1 369 +-7753051494275432448 1 295 +-7759238919361888256 1 293 +-7759425383684849664 1 1002 +-7772064021830574080 1 85 +-7773957003968675840 1 555 +-7777884099756122112 1 24 +-7778829032042790912 1 169 +-7779270198785875968 1 923 +-7782344916178796544 1 669 +-7784419454650843136 1 277 +-7792903881635938304 1 551 +-7793447076762345472 1 335 +-7797149520019062784 1 851 +-7797151404935618560 1 184 +-7800879252150779904 1 842 +-7802538500225777664 1 459 +-7804116532814151680 1 329 +-7805985795815342080 1 622 +-7811060170911375360 1 412 +-7818454479651135488 1 444 +-7819437864839495680 1 938 +-7822452149325094912 1 443 +-7824788571789279232 1 847 +-7827420207675105280 1 297 +-7831320202242228224 1 912 +-7831595638727565312 1 843 +-7833618000492109824 1 415 +-7835907977757245440 1 403 +-7838598833900584960 1 942 +-7840338174858199040 1 307 +-7845896959112658944 1 116 +-7848043121524228096 1 266 +-7849504559236210688 1 1019 +-7858505678035951616 1 125 +-7866079955473989632 1 563 +-7867219225874571264 1 519 +-7868306678534193152 1 264 +-7873753603299540992 1 923 +-7875953567586451456 1 868 +-7877598807023386624 1 937 +-7878145001776152576 1 305 +-7879864376629567488 1 86 +-7881262505761710080 1 485 +-7881351200983613440 1 665 +-7883252982752665600 1 681 +-7884460946615984128 1 579 +-7888051992910274560 1 573 +-7892780594910871552 1 544 +-7893577088764174336 1 176 +-7894382303337832448 1 352 +-7895991410072928256 1 629 +-7902517224300036096 1 306 +-7903158849011843072 1 189 +-7904188195431661568 1 873 +-7907355742053883904 1 960 +-7910019233726242816 1 783 +-7911421221625077760 1 323 +-7915999634274369536 1 546 +-7916510129632296960 1 502 +-7928062266382778368 1 733 +-7928440849566146560 1 684 +-7939634346485858304 1 68 +-7949309059286163456 1 915 +-7949445503604604928 1 859 +-7953426740065312768 1 521 +-7964801953178091520 1 468 +-7966960765508280320 1 759 +-7978782649203228672 1 52 +-7989766326847807488 1 277 +-7998947380180819968 1 595 +-8007017894942638080 1 214 +-8013397854633648128 1 624 +-8016589197379289088 1 198 +-8017791189288869888 1 570 +-8018511948141748224 1 215 +-8021859935185928192 1 593 +-8022573309127000064 1 980 +-8023708819947323392 1 994 +-8028275725610909696 1 61 +-8028910243475038208 1 972 +-8030058711611629568 1 924 +-8034414142083170304 1 513 +-8046189486447017984 1 521 +-8046238369820344320 1 462 +-8047774491688255488 1 225 +-8051395538179063808 1 42 +-8051587217208967168 1 553 +-8051871680800120832 1 231 +-8054581198284668928 1 56 +-8067243114610532352 1 902 +-8070535484085895168 1 42 +-8076479329071955968 1 186 +-8082793390939193344 1 932 +-8084716955963252736 1 427 +-8086577583338061824 1 725 +-8088337436168830976 1 107 +-8099313480512716800 1 509 +-8103788088118018048 1 453 +-8104684579106914304 1 364 +-8108693586698706944 1 416 +-8115963579415650304 1 334 +-8117838333114212352 1 224 +-8122639684164501504 1 603 +-8127494999848919040 1 127 +-8131997716860526592 1 43 +-8136227554401107968 1 981 +-8140349174954893312 1 525 +-8142667274351345664 1 1022 +-8147405381260345344 1 94 +-8158011642485825536 1 1006 +-8161047750470279168 1 25 +-8172827216441573376 1 699 +-8182421179156905984 1 35 +-8191825921746305024 1 807 +-8194062064124362752 1 660 +-8203008052020879360 1 250 +-8203075743525806080 1 220 +-8205148279289085952 1 266 +-8214462866994339840 1 462 +-8219876839318716416 1 578 +-8232763638546694144 1 528 +-8240034910581153792 1 244 +-8240684139569233920 1 281 +-8243487285852766208 1 992 +-8244116388227104768 1 496 +-8244657976255889408 1 381 +-8260340354454503424 1 746 +-8269917980278980608 1 1015 +-8270479187688816640 1 334 +-8275337702906757120 1 158 +-8280276629934981120 1 292 +-8293833565967810560 1 686 +-8297230235506343936 1 197 +-8300526097982226432 1 804 +-8300764106868350976 1 971 +-8302817097848307712 1 502 +-8317591428117274624 1 158 +-8318886086186213376 1 312 +-8322751250650218496 1 774 +-8330233444291084288 1 406 +-8335810316927213568 1 195 +-8340523561480437760 1 40 +-8345065519816695808 1 926 +-8347088645602050048 1 782 +-8357136656913686528 1 438 +-8358130693961195520 1 134 +-8359839265974165504 1 202 +-8368269352975982592 1 842 +-8368487814665895936 1 340 +-8369487968903897088 1 903 +-8379109122834997248 1 788 +-8379964450833367040 1 876 +-8384695077413412864 1 688 +-8387347109404286976 1 486 +-8387536830476820480 1 621 +-8395998375405912064 1 596 +-8400045653258444800 1 166 +-8411282676082565120 1 52 +-8418913260807217152 1 721 +-8425998949410889728 1 52 +-8426531414463545344 1 239 +-8430283518005846016 1 488 +-8430370933326536704 1 165 +-8431492599012163584 1 9 +-8438554249514491904 1 35 +-8445801063348281344 1 660 +-8453491903284994048 1 253 +-8454143651040444416 1 376 +-8465978403747037184 1 412 +-8469607298426437632 1 320 +-8471480409335513088 1 771 +-8485389240529354752 1 130 +-8488247955875618816 1 575 +-8490382417169408000 1 802 +-8494118409594650624 1 852 +-8503342882470019072 1 378 +-8503573595507761152 1 636 +-8507279516485566464 1 455 +-8509547439040757760 1 888 +-8518060755719585792 1 639 +-8518258741831680000 1 911 +-8521578237232529408 1 637 +-8522878384019169280 1 649 +-8523434203900674048 1 186 +-8525212657458348032 1 1017 +-8535957064499879936 1 250 +-8536369662934401024 1 233 +-8543982423727128576 1 24 +-8544299740525461504 1 617 +-8545239748068941824 1 305 +-8546758906409312256 1 839 +-8552393882631389184 1 963 +-8555709701170552832 1 702 +-8559008501282832384 1 605 +-8559252110266564608 1 410 +-8562524688907485184 1 342 +-8566856504746352640 1 844 +-8566940231897874432 1 721 +-8570933074545745920 1 393 +-8572823448513445888 1 358 +-8572949572756774912 1 528 +-8581765103969312768 1 272 +-8581979259158929408 1 540 +-8584520406368493568 1 528 +-8585134536083660800 1 236 +-8585966098173870080 1 434 +-8593419958317056000 1 393 +-8603817012434198528 1 891 +-8604758220106014720 1 878 +-8607195685207408640 1 94 +-8615168537390571520 1 841 +-8619303037130301440 1 347 +-8623238306523824128 1 109 +-8623965248051789824 1 126 +-8632237187473088512 1 788 +-8649711322250362880 1 998 +-8651641150831362048 1 732 +-8654433008222797824 1 117 +-8654797319350927360 1 421 +-8658387566611996672 1 748 +-8659643752269242368 1 159 +-8659692318743314432 1 309 +-8660149447361404928 1 17 +-8664374244449050624 1 1020 +-8664806103426252800 1 1018 +-8665218198816497664 1 252 +-8665764757143658496 1 463 +-8675661101615489024 1 475 +-8675892979328212992 1 161 +-8683802826440105984 1 948 +-8688153842294595584 1 995 +-8689606130068611072 1 948 +-8694818694700048384 1 92 +-8696162322976997376 1 816 +-8703026916864802816 1 33 +-8704234107608203264 1 51 +-8705403811649355776 1 606 +-8710298418608619520 1 411 +-8714995808835444736 1 431 +-8719510423723155456 1 759 +-8730803262481580032 1 836 +-8731068123910987776 1 302 +-8746702976270385152 1 378 +-8754966081778565120 1 864 +-8754992450211692544 1 652 +-8756989568739835904 1 21 +-8760655406971863040 1 750 +-8763062627136864256 1 968 +-8768744394742235136 1 716 +-8782213262837530624 1 397 +-8783777723063099392 1 798 +-8789178184387641344 1 52 +-8797972842900307968 1 213 +-8807361476639629312 1 2 +-8813211231120031744 1 115 +-8831091081349758976 1 49 +-8832750849949892608 1 740 +-8833019327569510400 1 709 +-8835408234247168000 1 662 +-8836899523028312064 1 279 +-8843859708698583040 1 866 +-8844949406948671488 1 272 +-8845239510002753536 1 196 +-8852770376039219200 1 742 +-8853553406533894144 1 975 +-8856151919723003904 1 187 +-8856821118526734336 1 244 +-8857335871148171264 1 665 +-8858063395050110976 1 717 +-8859107121649893376 1 172 +-8866442231663067136 1 335 +-8870186814744420352 1 684 +-8870673219965001728 1 619 +-8875546987176206336 1 747 +-8877053610728161280 1 152 +-8877431933441327104 1 150 +-8879742387365429248 1 963 +-8881446757271846912 1 844 +-8887058200926093312 1 672 +-8892963883085578240 1 920 +-8896045754034978816 1 43 +-8914039133569400832 1 391 +-8916987977485312000 1 828 +-8922409715403112448 1 933 +-8923529803981905920 1 846 +-8927968289860370432 1 153 +-8930307926221807616 1 292 +-8938849835283677184 1 4 +-8940944155843461120 1 454 +-8941201923743703040 1 775 +-8946656952763777024 1 103 +-8948335470186373120 1 942 +-8959796625322680320 1 856 +-8961059046745669632 1 358 +-8962547695651323904 1 793 +-8965578088652095488 1 632 +-8989473881707921408 1 236 +-8990843030306717696 1 714 +-8992599250893979648 1 67 +-8996954350906294272 1 380 +-9002912355472736256 1 77 +-9004892183139811328 1 927 +-9008631121684832256 1 221 +-9012093603044245504 1 530 +-9013952631912325120 1 197 +-9014145341570203648 1 583 +-9022154842129547264 1 77 +-9032650742739836928 1 596 +-9049720998034137088 1 520 +-9051477157204770816 1 472 +-9058029636530003968 1 868 +-9066993118333706240 1 573 +-9071565764086521856 1 592 +-9075302542655684608 1 429 +-9075486079396069376 1 586 +-9078662294976061440 1 749 +-9079801920509001728 1 694 +-9080568167841226752 1 168 +-9080956291212132352 1 888 +-9084940280061485056 1 795 +-9088239683374350336 1 887 +-9091113592821972992 1 910 +-9095689235523264512 1 982 +-9101953184875757568 1 637 +-9102482277760983040 1 108 +-9105358806324035584 1 610 +-9105701280936501248 1 950 +-9109392978217484288 1 928 +-9117959922369060864 1 802 +-9126793997498957824 1 13 +-9136398397785948160 1 879 +-9142610685888192512 1 787 +-9145593811310010368 1 37 +-9148197394287779840 1 432 +-9149719074367946752 1 145 +-9157613004431998976 1 877 +-9175038118837149696 1 449 +-9175279464813223936 1 1003 +-9178166810751909888 1 103 +-9187662685618348032 1 1019 +-9189155542884474880 1 126 +-9203804401302323200 1 944 +-9203942396257984512 1 868 +-9206329156028112896 1 759 +-9210275791460499456 1 669 +-9213132862973829120 1 179 +-9215144824304721920 1 301 +-9218875542187065344 1 769 +-9219066990552760320 1 400 +1021 1 965 +1030 1 78 +1032 1 64 +1039 1 71 +1046 1 95 +1048 1 81 +1053 1 84 +1055 1 86 +1058 1 104 +1065 1 99 +1066 1 96 +1074 1 121 +1075 3 120 +108 1 106 +1086 1 117 +1093 1 9 +1094 1 10 +1095 1 11 +1099 1 7 +1115 1 22 +112 1 119 +1127 1 41 +1128 1 38 +1132 1 34 +1134 1 32 +1141 1 58 +1142 1 57 +1145 1 54 +1153 1 192 +1157 1 196 +1158 1 199 +1165 2 204 +1168 1 208 +1177 1 217 +1187 1 224 +1189 1 230 +1198 1 237 +120 1 127 +1201 1 243 +1217 1 132 +1234 1 150 +1243 1 159 +1247 1 155 +1252 1 163 +1261 1 170 +1270 1 176 +1280 1 346 +1282 1 344 +1286 1 348 +1287 1 349 +1290 1 336 +1291 1 337 +1299 1 328 +130 1 139 +1307 1 320 +1312 1 376 +1316 1 380 +1321 1 369 +1337 1 352 +1341 1 356 +1342 1 359 +1343 1 358 +1345 1 287 +1346 1 284 +135 1 142 +1366 1 265 +1368 2 263 +1371 2 260 +138 1 131 +1386 1 310 +1398 1 299 +1409 1 466 +1422 1 477 +1423 1 476 +1436 1 462 +1439 1 461 +1447 1 502 +1450 1 507 +1454 1 511 +1458 1 482 +1462 1 486 +1466 1 490 +1470 1 494 +1477 1 402 +1481 2 414 +1489 1 391 +1493 1 387 +1495 1 385 +1501 1 395 +1506 1 439 +1508 1 433 +1509 2 432 +1518 1 443 +1520 1 420 +1521 1 421 +1524 1 416 +1530 1 430 +1537 2 621 +154 2 146 +1541 1 617 +1542 1 618 +1545 1 613 +1556 1 633 +1559 1 634 +1561 1 628 +1566 1 627 +1604 1 556 +1606 1 558 +1608 1 544 +1613 1 549 +1614 1 550 +1620 1 573 +1638 1 524 +1641 1 515 +1643 1 513 +1648 1 539 +1651 1 536 +1667 1 742 +1671 1 738 +1674 1 751 +1676 1 745 +1678 1 747 +168 1 163 +1681 1 757 +169 1 162 +1693 1 761 +1701 2 706 +1704 1 719 +1719 2 721 +1726 1 728 +1728 1 673 +1745 1 689 +1751 1 695 +1752 1 696 +1769 1 650 +1774 1 653 +1775 1 652 +1777 2 659 +1780 1 662 +1781 1 663 +1785 1 667 +1786 1 664 +1788 1 670 +1789 1 671 +1791 1 669 +1796 1 890 +1806 1 880 +181 1 191 +1811 1 876 +1813 1 874 +1826 1 862 +1827 1 863 +1835 1 855 +1837 1 849 +1845 1 840 +1846 1 843 +1856 2 826 +1862 1 828 +1863 1 829 +1864 1 818 +1866 1 816 +187 1 177 +1870 1 820 +188 1 182 +1880 1 803 +1890 1 794 +1892 1 796 +1899 1 787 +19 2 18 +1906 1 779 +1910 1 783 +1914 2 771 +1926 1 1009 +1937 1 999 +1940 1 994 +1941 1 995 +1948 3 1002 +1955 1 982 +1965 1 984 +1972 1 960 +1981 1 969 +1983 1 971 +1987 1 944 +1990 1 949 +1995 1 952 +1999 1 956 +2001 1 931 +2002 1 928 +2004 1 934 +2009 1 939 +2011 1 937 +2013 1 943 +2016 1 913 +2017 1 912 +2020 2 917 +2025 1 920 +2026 1 923 +2029 1 924 +203 1 198 +204 1 193 +2046 1 910 +2056 1 152 +2067 1 130 +2072 1 137 +2073 1 136 +2085 1 183 +2089 1 187 +2092 1 190 +2105 1 170 +2106 1 169 +2108 1 175 +213 2 217 +2131 1 198 +2138 1 207 +2140 1 201 +2144 1 246 +2155 1 253 +2177 1 24 +2179 1 26 +2180 1 29 +2183 1 30 +2186 1 19 +2187 1 18 +2189 1 20 +2193 2 9 +2194 1 10 +22 1 23 +2201 1 1 +2205 1 5 +2214 1 61 +2217 1 50 +2218 1 49 +2223 1 52 +2227 1 41 +2229 1 47 +2232 1 34 +2241 1 92 +2244 1 89 +2255 1 82 +2262 1 74 +2264 1 68 +2270 1 66 +2274 1 125 +2277 1 122 +2279 1 120 +228 1 235 +2283 1 116 +2285 2 114 +2295 1 105 +2306 1 384 +2320 1 403 +2323 1 400 +2325 2 406 +2335 1 412 +2341 1 421 +2348 1 428 +2358 1 439 +236 1 227 +2373 1 451 +238 1 225 +2386 1 469 +2393 2 478 +2398 1 473 +2400 1 484 +2410 1 494 +2412 2 488 +2420 1 497 +2426 1 511 +2434 1 265 +244 1 250 +2461 1 279 +2463 3 277 +2465 1 296 +2469 1 300 +2475 1 290 +2476 1 293 +2485 2 317 +2487 1 319 +2492 1 308 +2494 1 310 +2502 1 329 +2506 1 325 +2509 1 322 +2512 1 350 +2514 1 348 +2515 1 349 +2517 1 347 +2524 1 338 +2533 1 360 +2539 1 358 +2540 1 353 +255 1 241 +2551 1 379 +2553 1 373 +2560 2 692 +2563 1 695 +2565 1 689 +2569 1 701 +2579 1 678 +2580 1 673 +2587 1 686 +259 1 273 +2599 1 657 +2607 1 665 +2608 1 647 +2619 2 652 +2625 1 753 +2626 1 754 +263 2 277 +2637 1 765 +2647 1 742 +2649 1 744 +2662 1 724 +2663 1 725 +2675 1 704 +268 2 286 +2680 1 715 +2682 1 713 +2688 1 573 +2689 1 572 +2692 1 569 +2700 1 561 +2712 1 548 +2714 1 550 +2715 2 551 +2719 1 547 +2724 1 539 +2725 1 538 +2735 1 528 +2745 1 519 +275 1 256 +2752 1 633 +2762 1 627 +2772 1 620 +2776 1 608 +2786 2 601 +279 1 260 +2790 1 605 +2791 1 604 +2803 3 585 +2805 1 591 +281 1 266 +2810 1 576 +2811 1 577 +2816 1 934 +2821 1 931 +2824 1 942 +2835 1 948 +2842 1 957 +2843 2 956 +2846 1 953 +2847 1 952 +2848 1 900 +2850 1 902 +2855 2 899 +2862 1 906 +2878 1 923 +2886 1 996 +289 1 305 +2897 2 1010 +2900 1 1015 +2903 1 1012 +2905 1 1018 +2911 1 1020 +2915 1 963 +2919 1 967 +2933 2 980 +2938 1 987 +294 1 310 +2941 1 988 +2942 1 991 +296 2 312 +2962 1 828 +2968 2 822 +2971 1 821 +2977 1 780 +2979 1 782 +2984 1 773 +2986 1 775 +2988 1 769 +2991 1 770 +3002 1 790 +3006 1 786 +301 1 317 +302 1 318 +3021 2 870 +3024 1 890 +3029 1 895 +3031 1 893 +3036 1 886 +3043 1 842 +3054 1 839 +3055 1 838 +3058 1 858 +3059 1 859 +3060 2 860 +3067 1 851 +3071 1 855 +3073 1 217 +3079 2 223 +3083 1 211 +3084 1 212 +3089 1 200 +3094 1 207 +3103 1 198 +311 1 294 +3111 1 253 +3118 1 244 +3119 1 245 +3144 1 148 +3147 1 151 +3159 2 138 +3163 1 134 +3174 1 184 +3183 1 177 +3190 1 169 +3197 1 162 +3199 1 160 +320 1 342 +3203 1 82 +3206 1 87 +3208 1 89 +3212 1 93 +3213 1 92 +3231 1 79 +3232 1 115 +3235 1 112 +3244 1 127 +3245 1 126 +3248 1 98 +3249 1 99 +3253 1 103 +3255 1 101 +3263 1 109 +3286 1 2 +3300 1 51 +3307 1 60 +3322 1 44 +3333 1 463 +3352 1 467 +336 1 327 +3365 1 493 +3366 1 494 +3397 1 395 +34 1 32 +3401 1 391 +3407 1 385 +3409 1 414 +341 1 322 +3418 2 405 +342 1 321 +3421 1 402 +3430 1 426 +3443 1 446 +3446 1 443 +345 1 334 +3456 1 323 +346 2 333 +3460 1 327 +3462 3 325 +3467 2 328 +347 1 332 +3472 1 338 +3478 1 340 +3493 1 356 +350 1 329 +3507 1 371 +3510 1 374 +3512 1 376 +3533 1 266 +3534 1 265 +3541 1 275 +3542 1 272 +355 1 375 +3554 1 295 +3555 2 294 +3563 1 302 +3566 1 299 +3567 1 298 +3568 1 308 +3579 1 319 +3588 2 760 +3599 1 755 +3606 1 747 +3608 1 741 +3609 1 740 +361 1 381 +3613 1 736 +3622 2 728 +3625 1 727 +3630 1 720 +3637 1 714 +364 1 376 +3648 1 696 +3663 1 695 +3664 1 681 +367 1 379 +3672 1 673 +3673 1 672 +3677 1 676 +3680 1 666 +3682 1 664 +3690 1 656 +3691 1 657 +3701 1 654 +3702 1 653 +3703 1 652 +3707 1 640 +3722 1 639 +3724 1 633 +3725 2 632 +3728 2 612 +3739 1 623 +3747 1 596 +3749 1 594 +375 1 354 +3755 1 604 +3763 1 581 +3764 1 578 +3769 1 591 +3770 2 588 +378 1 367 +3781 2 564 +3789 1 572 +379 1 366 +3810 1 529 +3812 1 535 +3823 1 540 +3824 1 514 +383 2 362 +3830 1 516 +3835 1 521 +3841 1 1007 +3848 1 998 +3858 1 1021 +3860 1 1019 +3866 2 1013 +3874 1 974 +3879 1 971 +388 1 415 +3887 1 963 +3901 1 976 +3904 1 938 +3907 1 937 +391 1 412 +3910 1 940 +3911 1 941 +3913 1 931 +392 1 403 +3932 1 951 +3940 1 908 +3941 1 909 +3945 1 897 +3946 1 898 +3949 1 901 +3958 1 927 +3960 1 913 +3961 1 912 +3962 1 915 +3965 1 916 +3974 2 865 +3980 1 875 +3990 1 880 +4018 1 854 +4020 1 848 +4024 1 860 +4030 1 858 +4037 1 806 +4051 1 817 +4054 1 820 +4056 1 826 +4075 1 778 +4078 1 783 +4088 1 792 +41 1 43 +412 2 390 +417 1 440 +425 1 432 +443 1 419 +454 1 473 +455 1 472 +462 1 465 +470 1 456 +471 1 457 +481 1 508 +482 1 511 +485 1 504 +489 1 500 +49 1 50 +490 1 503 +491 1 502 +5 1 5 +500 1 488 +501 2 489 +504 1 484 +522 1 558 +523 1 559 +524 1 552 +530 1 567 +535 1 562 +579 1 611 +583 1 615 +584 1 616 +586 1 618 +587 1 619 +590 1 622 +597 1 628 +601 1 632 +612 1 582 +615 1 581 +618 1 584 +65 1 69 +650 1 679 +658 1 702 +66 1 70 +661 2 697 +663 1 699 +664 1 692 +677 1 650 +68 1 64 +681 1 646 +687 1 640 +688 1 670 +690 1 668 +691 1 669 +6923604860394528768 1 472 +6924820982050758656 1 855 +6926925215281774592 1 797 +6927260280037097472 1 595 +6928080429732536320 1 666 +6933001829416034304 1 630 +6933451028794925056 1 601 +6933731240564056064 1 757 +6934570741217755136 1 376 +694 1 664 +6947488599548215296 1 875 +695 1 665 +6960137166475911168 1 902 +6962726713896484864 1 550 +6963217546192322560 1 901 +6964585306125008896 1 260 +6967631925774639104 1 885 +6969599299897163776 1 400 +6974475559697768448 1 856 +6982145326341423104 1 295 +6987889924212203520 1 424 +6991316084916879360 1 379 +6996686091335884800 1 135 +7006803044329021440 1 255 +7013693841855774720 1 210 +7014537632150224896 1 334 +7017956982081404928 1 533 +7022349041913978880 1 507 +7027529814236192768 1 849 +7031339012080549888 1 724 +7039820685967343616 1 166 +7045967493826387968 1 290 +7049773031131283456 1 477 +7052226236896256000 1 980 +7054271419461812224 1 846 +7054938591408996352 1 82 +7060236714847412224 1 653 +7061498706968428544 1 66 +7061809776248545280 1 863 +7062382339142156288 1 150 +7062605127422894080 1 1022 +7065344324692443136 1 622 +7068517339681259520 1 1010 +7069729473166090240 1 645 +707 1 746 +7077311975029555200 1 810 +7078641038157643776 1 417 +7080269176324218880 1 318 +7084659344078970880 1 890 +7086206629592252416 1 602 +7091300332052062208 1 320 +7099005292698550272 1 135 +71 1 67 +7107604675626008576 1 186 +7125231541858205696 1 152 +7128222874437238784 1 455 +7130159794259353600 1 853 +7130306447560826880 1 195 +7149417430082027520 1 830 +7153922334283776000 1 556 +7157247449513484288 1 488 +7164349895861829632 1 540 +7165364563962191872 1 764 +7166263463731421184 1 398 +7175638927948562432 1 82 +7186401810812059648 1 457 +7195454019231834112 1 166 +7198687580227043328 1 406 +7199539820886958080 1 315 +7204802700490858496 1 292 +7210160489915236352 1 833 +7212016545671348224 1 494 +7212090742612467712 1 124 +7217123582035116032 1 487 +7220131672176058368 1 957 +7220581538170413056 1 568 +7223569671814987776 1 413 +7226360892091416576 1 571 +7229607057201127424 1 672 +723 1 763 +7231399302953377792 1 174 +7232273749940838400 1 940 +7235109456886816768 1 717 +7237310132329488384 1 667 +7238339720750948352 1 949 +724 1 764 +7242751359672631296 1 994 +7249443195032985600 1 213 +7250237407877382144 1 772 +7254710367022645248 1 96 +7255302164215013376 1 112 +7259955893466931200 1 624 +7260908278294560768 1 281 +7265141874315517952 1 407 +7266437490436341760 1 364 +7271786885641666560 1 590 +7271887863395459072 1 342 +7274777328897802240 1 424 +7291432593139507200 1 21 +7295502697317097472 1 225 +7295926343524163584 1 535 +7296164580491075584 1 643 +7299197687217856512 1 949 +73 1 77 +7304839835188609024 1 841 +7308289763456000000 1 356 +7309156463509061632 1 765 +7310869618402910208 1 52 +7319711402123149312 1 356 +7333512171174223872 1 689 +7339426767877390336 1 47 +7343171468838567936 1 454 +7344029858387820544 1 789 +7345991518378442752 1 774 +7347732772348870656 1 474 +7348598907182800896 1 920 +735 1 759 +7354813692542304256 1 768 +7359004378440146944 1 661 +736 1 715 +7368920486374989824 1 384 +7370078518278397952 1 1016 +7370803940448305152 1 301 +7375521127126089728 1 195 +7376467688511455232 1 938 +7378993334503694336 1 49 +738 1 713 +7381659098423926784 1 890 +7384150968511315968 1 2 +7386087924003676160 1 258 +7391208370547269632 1 531 +7393308503950548992 1 962 +7394967727502467072 1 991 +7401968422230032384 1 45 +7410096605330227200 1 241 +7410872053689794560 1 388 +7411793502161182720 1 730 +7412924364686458880 1 683 +7414865343000322048 1 972 +7418271723644403712 1 741 +743 1 716 +7432428551399669760 1 161 +7432998950057975808 1 557 +7436133434239229952 1 297 +7440265908266827776 1 856 +7450416810848313344 1 443 +7452756603516190720 1 318 +7454442625055145984 1 451 +7454632396542074880 1 1 +7461153404961128448 1 381 +7471208109437304832 1 562 +7473537548003352576 1 214 +7486884806277611520 1 570 +7487338208419823616 1 581 +7487538600082554880 1 64 +7490717730239250432 1 1001 +7491898395977523200 1 154 +7492436934952574976 1 567 +7497276415392407552 1 536 +7497306924248834048 1 697 +7500716020874674176 1 543 +7514552840617558016 1 176 +7517159036469575680 1 436 +7524958388842078208 1 621 +7528074274555305984 1 327 +7528211148397944832 1 900 +7534042483076857856 1 925 +7534145866886782976 1 1022 +7534549597202194432 1 211 +7545689659010949120 1 951 +7548958830580563968 1 158 +7549858023389003776 1 86 +7555301305375858688 1 155 +7566273236152721408 1 330 +7569249672628789248 1 684 +7570474972934488064 1 462 +7573530789362262016 1 936 +7575087487730196480 1 551 +7581052107944361984 1 322 +7581614118458335232 1 386 +7584007864107778048 1 800 +7592440105065308160 1 130 +7593521922173419520 1 2 +7596563216912211968 1 915 +7599019810193211392 1 607 +7608447395949109248 1 330 +7614435638888210432 1 813 +7620183559667081216 1 259 +7621013099259527168 1 680 +7625728883085025280 1 958 +7626715182847090688 1 655 +763 1 721 +7637152193832886272 1 901 +7647481735646363648 1 188 +7648729477297987584 1 924 +7652123583449161728 1 28 +7659279803863146496 1 594 +7662037650719850496 1 967 +7675009476762918912 1 536 +7678790769408172032 1 130 +7682327310082531328 1 692 +7686992843032010752 1 871 +7689489436826804224 1 455 +7690986322714066944 1 108 +7691062622443044864 1 916 +7696737688942567424 1 217 +7697541332524376064 1 155 +7700734109530767360 1 941 +7701723309715685376 1 1021 +7705445437881278464 1 155 +7710447533880614912 1 522 +7718825401976684544 1 653 +7720187583697502208 1 578 +7731443941834678272 1 536 +7735566678126616576 1 588 +774 1 816 +7741854854673367040 1 222 +7746402369011277824 1 286 +7747874976739016704 1 104 +7748799008146366464 1 538 +7752740515534422016 1 830 +7753359568986636288 1 428 +7753882935005880320 1 735 +7761834341179375616 1 158 +7762823913046556672 1 97 +7765456790394871808 1 707 +7768984605670604800 1 711 +7775034125776363520 1 305 +7778936842502275072 1 641 +7779486624537370624 1 752 +7779735136559579136 1 958 +7782245855193874432 1 417 +7784169796350730240 1 205 +7784489776013295616 1 803 +779 1 829 +7790728456522784768 1 878 +7792036342592348160 1 351 +7794244032613703680 1 656 +78 1 74 +780 1 826 +7800332581637259264 1 27 +7801697837312884736 1 582 +7818464507324121088 1 900 +782 1 824 +7823874904139849728 1 308 +784 1 807 +7843804446688264192 1 75 +7844258063629852672 1 117 +7845953007588401152 1 58 +7857878068300898304 1 188 +7868367829080506368 1 1015 +7870277756614623232 1 864 +7871189141676998656 1 14 +7871554728617025536 1 128 +7874764415950176256 1 714 +7885697257930588160 1 299 +7888238729321496576 1 316 +789 1 802 +7892026679115554816 1 644 +7892281003266408448 1 225 +7898670840507031552 1 126 +7909645665163804672 1 883 +7917494645725765632 1 443 +7919597361814577152 1 281 +7921639119138070528 1 506 +7922443154272395264 1 899 +7926898770090491904 1 262 +7933040277013962752 1 673 +7936149988210212864 1 930 +7944741547145502720 1 770 +7947544013461512192 1 787 +7948803266578161664 1 384 +7955126053367119872 1 76 +7961515985722605568 1 539 +7961909238130270208 1 307 +797 1 810 +7983789401706094592 1 526 +7989119273552158720 1 700 +7989160253372817408 1 817 +7997694023324975104 1 877 +7998357471114969088 1 33 +7998687089080467456 1 623 +80 1 85 +8000440057238052864 1 247 +8002769767000145920 1 485 +8004633750273925120 1 168 +8011181697250631680 1 274 +8011602724663336960 1 283 +8014986215157530624 1 429 +8017403886247927808 1 472 +803 1 791 +8045070943673671680 1 157 +8048726769133592576 1 10 +8059284960252731392 1 835 +8069531888205086720 1 888 +8071961599867387904 1 806 +8073733016154431488 1 965 +8079573715140485120 1 921 +808 1 796 +8087737899452432384 1 219 +809 1 797 +8091421389575282688 1 482 +8099215208813903872 1 263 +8100036735858401280 1 821 +8109381965028548608 1 606 +8111757081791733760 1 227 +8113585123802529792 1 543 +8116738401948377088 1 478 +812 1 792 +8120593157178228736 1 687 +8129551357032259584 1 489 +8135164922674872320 1 421 +8142241016679735296 1 164 +8143462899383345152 1 766 +8144552446127972352 1 745 +8145745969573666816 1 951 +8145750910080745472 1 748 +8146288732715196416 1 416 +8146492373537660928 1 705 +8148211378319933440 1 462 +815 1 795 +8150115791664340992 1 623 +8156018594610790400 1 521 +8156782979767238656 1 154 +8160569434550403072 1 779 +8160662610166194176 1 789 +8163948965373386752 1 875 +8168742078705262592 1 994 +8169878743136043008 1 953 +8171188598958407680 1 461 +8183233196086214656 1 17 +8184799300477943808 1 291 +8190539859890601984 1 865 +8190967051000659968 1 428 +8192304692696383488 1 404 +8195103847607967744 1 110 +8199513544090730496 1 168 +820 2 769 +8201303040648052736 1 622 +8201491077550874624 1 654 +8208354137450766336 1 1000 +8210813831744118784 1 800 +8213810702473183232 1 917 +8219326436390821888 1 574 +8220104397160169472 1 862 +8221561626658881536 1 76 +8222714144797368320 1 139 +8223732800007864320 1 301 +823 1 770 +8230371298967609344 1 882 +8235179243092090880 1 191 +8244041599171862528 1 32 +8254763178969915392 1 721 +8268875586442256384 1 126 +8269730157217062912 1 686 +8272001752345690112 1 329 +8279056098670198784 1 281 +8282648443538710528 1 340 +8283099811330506752 1 325 +8286706213485297664 1 345 +8287522765741301760 1 262 +8290014929764040704 1 653 +8290944180915871744 1 36 +8294315622451740672 1 18 +8295110846998233088 1 80 +83 1 86 +8302473563519950848 1 456 +8316336224427483136 1 439 +8323460620425330688 1 814 +8325227661920133120 1 306 +8332670681629106176 1 480 +8333523087360901120 1 5 +8337549596011102208 1 834 +8345435427356090368 1 579 +835 1 881 +8351163199364390912 1 705 +8362046808797306880 1 491 +8365058996333953024 1 803 +8367680396909404160 1 742 +8368012468775608320 1 206 +837 1 887 +8371939471056470016 1 14 +8372408423196270592 1 882 +8372588378498777088 1 743 +8374321007870836736 1 599 +8376440110255243264 1 385 +8383159090746204160 1 412 +8388363436324085760 1 560 +8391407951622815744 1 767 +8391785334471589888 1 37 +8396433451610652672 1 962 +8398862954249560064 1 415 +8407869317250220032 1 521 +8410599906334097408 1 524 +8411494452500930560 1 375 +8415171956168417280 1 702 +8416121695917498368 1 77 +8417381121663746048 1 432 +8419958579638157312 1 808 +8424515140664360960 1 191 +8435912708683087872 1 487 +845 1 895 +8451612303224520704 1 910 +8454154705460666368 1 311 +8455496814886002688 1 76 +8457906374051020800 1 448 +8461498293348065280 1 935 +8463868417649524736 1 675 +8467976965865799680 1 624 +8470141334513098752 1 1010 +8472429318602268672 1 530 +8473699639908261888 1 176 +8487573502287478784 1 48 +8489584373231919104 1 291 +8489735221193138176 1 119 +85 1 80 +8501910015960735744 1 809 +8508401924853850112 1 1013 +8509508263705477120 1 680 +8514851182589771776 1 356 +8514979402185596928 1 745 +8515682078777081856 1 136 +8518454006987948032 1 635 +8519937082746634240 1 129 +8523972434954510336 1 594 +8524940073536954368 1 175 +8525336514806317056 1 975 +8525894870444638208 1 998 +8532016240026279936 1 871 +8536948829863198720 1 404 +8540237852367446016 1 939 +8543177193114779648 1 991 +8547243497773457408 1 342 +8551446856960942080 1 922 +8553195689344991232 1 67 +8554899472487596032 1 437 +8555933456197828608 1 575 +8555948987770511360 1 629 +8557218322962644992 1 124 +8558000156325707776 1 497 +8560526613401714688 1 598 +8569030475428511744 1 185 +8570983266408103936 1 166 +8571268359622172672 1 572 +8573305425181941760 1 856 +8577096957495025664 1 456 +8579974641030365184 1 91 +8583916402383601664 1 937 +8613562211893919744 1 573 +8625937019655200768 1 328 +8631515095562887168 1 788 +8637720762289659904 1 845 +8639254009546055680 1 324 +8641221723991433216 1 308 +8643198489997254656 1 475 +8644602243484803072 1 343 +8649296591032172544 1 699 +8652485812846567424 1 1020 +8656571350884048896 1 758 +8660248367767076864 1 48 +8665969966920990720 1 902 +8666178591503564800 1 868 +8677632093825916928 1 46 +8677794924343164928 1 1002 +868 1 852 +8682955459667951616 1 284 +8687042963221159936 1 1007 +8688483860094599168 1 264 +8693036785094565888 1 113 +8697823501349609472 1 400 +8698055291501543424 1 920 +8708232769657815040 1 231 +8708845895460577280 1 436 +871 1 855 +8714829359200747520 1 447 +8716401555586727936 1 886 +8720504651219001344 1 16 +8723248113030782976 1 213 +873 1 857 +8731960288562044928 1 170 +8734584858442498048 1 327 +8736061027343859712 1 695 +874 1 858 +8752150411997356032 1 795 +8759089349412847616 1 668 +8759184090543857664 1 956 +8760285623204290560 1 15 +8761174805938331648 1 741 +8769199243315814400 1 215 +8773222500321361920 1 442 +8775009214012456960 1 840 +8779073705407963136 1 354 +8779711700787298304 1 615 +878 1 862 +8780196485890555904 1 320 +8782900615468302336 1 685 +8783241818558193664 1 142 +8785153741735616512 1 736 +8792059919353348096 1 634 +8793387410919038976 1 999 +8795069490394882048 1 404 +8806507556248731648 1 607 +8808467247666241536 1 468 +8811693967537774592 1 217 +8815398225009967104 1 601 +8817665768680906752 1 132 +8822384228057604096 1 40 +8825059717746376704 1 393 +8829545979081744384 1 305 +883 1 834 +8836228556823977984 1 327 +8837420822750314496 1 381 +8849475396952514560 1 74 +8850055384477401088 1 425 +8853989376829833216 1 897 +8854495099223375872 1 456 +8854677881758162944 1 980 +8854715632851345408 1 182 +8856674723376668672 1 922 +8868529429494071296 1 803 +8871707618793996288 1 963 +8875745082589929472 1 841 +888 1 841 +8895174927321243648 1 640 +8896237972875370496 1 494 +8897901899039473664 1 189 +8899122608190930944 1 215 +8900180888218329088 1 339 +8900351886974279680 1 452 +8900545829211299840 1 347 +8905330479248064512 1 829 +8910706980937261056 1 346 +8920344895701393408 1 501 +8920533610804609024 1 972 +8927691194719174656 1 335 +8928133990107881472 1 16 +8935252708196999168 1 434 +8936639033158410240 1 900 +8939431770838810624 1 112 +8945004737083555840 1 569 +8945302550165004288 1 154 +8962097525980225536 1 466 +8972161729142095872 1 503 +8979012655944220672 1 373 +898 2 957 +8983857919580209152 1 323 +8983912573761167360 1 1010 +8984935029383389184 1 834 +8987827141270880256 1 878 +8991071342495531008 1 220 +8991442360387584000 1 965 +8994608999945125888 1 374 +8995562121346260992 1 88 +8996824426131390464 1 849 +9000633029632499712 1 538 +9001907486943993856 1 38 +9005866015985713152 1 324 +9016280522993975296 1 550 +9020143715350814720 1 917 +9023663198045544448 1 463 +9030480306789818368 1 157 +9038087402564657152 1 719 +9040958359122640896 1 360 +9043089884440068096 1 86 +9048002942653710336 1 681 +9048297564833079296 1 527 +9050032047355125760 1 239 +9053187076403060736 1 389 +9054887854393950208 1 25 +9062227900376203264 1 143 +9064847977742032896 1 296 +9067985867711291392 1 672 +9073672806863790080 1 854 +9075404705968840704 1 688 +9078604269481148416 1 519 +908 1 947 +9083076230151864320 1 842 +9083704659251798016 1 932 +9084402694981533696 1 174 +9085381906890203136 1 391 +9085434340468473856 1 756 +9086905513121890304 1 567 +9089435102788009984 1 524 +9091082386452684800 1 138 +9091085792947666944 1 737 +9094945190752903168 1 349 +9096395849845194752 1 900 +91 1 94 +9104574294205636608 1 447 +9107991000536498176 1 164 +9112400579327483904 1 978 +9114850402293882880 1 504 +9116137265342169088 1 280 +9117063974299148288 1 857 +9119046173224370176 1 410 +9123116008004288512 1 391 +913 1 943 +9131533983989358592 1 161 +9132009829414584320 1 657 +9136234417125007360 1 754 +9136548192574529536 1 913 +9139805788041134080 1 600 +914 1 940 +9148071980848742400 1 669 +9149216169284091904 1 833 +9165199002069458944 1 556 +9169248521377374208 1 675 +917 1 939 +9174894805640142848 1 151 +918 1 936 +9180098147855769600 1 303 +9182828596851990528 1 124 +9185458640237641728 1 95 +9185952983951343616 1 691 +9188173682239275008 1 368 +919 1 937 +9190466190353661952 1 390 +9191943992860327936 1 969 +9194388393453060096 1 440 +9199741683232399360 1 897 +9207107990561972224 1 857 +9207927479837319168 1 498 +9209153648361848832 1 581 +921 1 935 +9211455920344088576 1 78 +922 1 932 +923 1 933 +927 1 929 +928 1 925 +939 1 918 +94 1 91 +945 1 909 +947 1 911 +950 2 906 +958 1 898 +961 1 1018 +965 1 1022 +967 1 1020 +976 1 1002 +979 1 1001 +982 1 1004 +987 1 993 +997 1 988 +999 1 990 +NULL 83 NULL +PREHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(20, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(20, b), b having count(*) > 1 order by slot_count desc, slot_number +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(20, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(20, b), b having count(*) > 1 order by slot_count desc, slot_number +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +1075 3 1144 +1165 2 1228 +1368 2 1287 +1371 2 1284 +1481 2 1438 +1509 2 1456 +1537 2 1645 +154 2 146 +1701 2 1730 +1719 2 1745 +1777 2 1683 +1856 2 1850 +19 2 18 +1914 2 1795 +1948 3 2026 +2020 2 1941 +213 2 217 +2193 2 2057 +2285 2 2162 +2325 2 2454 +2393 2 2526 +2412 2 2536 +2463 3 2325 +2485 2 2365 +2560 2 2740 +2619 2 2700 +263 2 277 +268 2 286 +2715 2 2599 +2786 2 2649 +2803 3 2633 +2843 2 3004 +2855 2 2947 +2897 2 3058 +2933 2 3028 +296 2 312 +2968 2 2870 +3021 2 2918 +3060 2 2908 +3079 2 3295 +3159 2 3210 +3418 2 3477 +346 2 333 +3462 3 3397 +3467 2 3400 +3555 2 3366 +3588 2 3832 +3622 2 3800 +3725 2 3704 +3728 2 3684 +3770 2 3660 +3781 2 3636 +383 2 362 +3866 2 4085 +3974 2 3937 +412 2 390 +501 2 489 +661 2 697 +820 2 769 +898 2 957 +950 2 906 +NULL 83 NULL +PREHOOK: query: select count(*) as slot_count, vector_mapjoin_slot_number(20, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(20, b) order by slot_count desc, slot_number +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select count(*) as slot_count, vector_mapjoin_slot_number(20, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(20, b) order by slot_count desc, slot_number +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +1 1001 +1 1001633 +1 1002 +1 1003035 +1 1004 +1 1004421 +1 1004653 +1 10058 +1 1006282 +1 100655 +1 1007094 +1 1008265 +1 1008996 +1 1009993 +1 1010544 +1 1012347 +1 1012897 +1 1014055 +1 1015835 +1 1016790 +1 1017674 +1 1018 +1 1018777 +1 1018927 +1 1020 +1 102128 +1 1021782 +1 1022 +1 1022747 +1 1022773 +1 1023195 +1 1024454 +1 1024770 +1 1025479 +1 1025733 +1 1025881 +1 1025994 +1 1026723 +1 1026793 +1 1027327 +1 1027755 +1 1027769 +1 1028718 +1 1029317 +1 1029474 +1 1031 +1 1031080 +1 1031640 +1 1032116 +1 1032261 +1 1032598 +1 1033 +1 1033012 +1 10331 +1 1034 +1 1034057 +1 1034970 +1 1035 +1 103603 +1 1036694 +1 1036979 +1 1037801 +1 1038915 +1 1039170 +1 1039775 +1 1039886 +1 1040755 +1 1041596 +1 1042464 +1 1043431 +1 1043706 +1 1044600 +1 1046 +1 1056 +1 1058 +1 106 +1 1062 +1 106231 +1 1065 +1 106748 +1 107474 +1 1078 +1 107832 +1 1081 +1 1082 +1 108461 +1 1088 +1 109077 +1 109099 +1 1095 +1 110159 +1 1102 +1 110424 +1 1105 +1 110719 +1 1108 +1 1110 +1 1119 +1 1120 +1 1123 +1 112527 +1 1128 +1 112828 +1 113064 +1 1141 +1 114471 +1 1145 +1 115139 +1 1156 +1 116356 +1 117148 +1 1174 +1 117408 +1 1178 +1 1179 +1 1183 +1 1187 +1 119 +1 119061 +1 11936 +1 1194 +1 1200 +1 1216 +1 121749 +1 1220 +1 1223 +1 1232 +1 123780 +1 123922 +1 12401 +1 1241 +1 124734 +1 1248 +1 124876 +1 12532 +1 1254 +1 125922 +1 125973 +1 1261 +1 1267 +1 126917 +1 12692 +1 126978 +1 127 +1 1289 +1 12895 +1 129076 +1 130364 +1 130598 +1 1308 +1 131 +1 1311 +1 131206 +1 132145 +1 1323 +1 1334 +1 134184 +1 13437 +1 1344 +1 134701 +1 1352 +1 135970 +1 1360 +1 1361 +1 136110 +1 1368 +1 1370 +1 1372 +1 1373 +1 1376 +1 1380 +1 138064 +1 138165 +1 1382 +1 1383 +1 138959 +1 139 +1 1393 +1 139838 +1 1400 +1 140103 +1 140150 +1 140302 +1 1404 +1 1409 +1 1411 +1 141156 +1 1415 +1 141534 +1 1419 +1 142 +1 142176 +1 142244 +1 1426 +1 142670 +1 142942 +1 143139 +1 143201 +1 1440 +1 1444 +1 1445 +1 144965 +1 144984 +1 145378 +1 1454 +1 1457 +1 145855 +1 1463 +1 1467 +1 147871 +1 1485 +1 1486 +1 148744 +1 1490 +1 1500 +1 1501 +1 1506 +1 1510 +1 1514 +1 15151 +1 151638 +1 1518 +1 152567 +1 1526 +1 152604 +1 1531 +1 153212 +1 1535 +1 1537 +1 1539 +1 1548 +1 1560 +1 1563 +1 1568 +1 1573 +1 1574 +1 157862 +1 1580 +1 15809 +1 1582 +1 158333 +1 15835 +1 1597 +1 159918 +1 161172 +1 161400 +1 162 +1 162968 +1 162992 +1 163 +1 1637 +1 163995 +1 1641 +1 1642 +1 164762 +1 1651 +1 1652 +1 165597 +1 1657 +1 1658 +1 165974 +1 167028 +1 1674 +1 16742 +1 167552 +1 1676 +1 1677 +1 167880 +1 16812 +1 1686 +1 1687 +1 1688 +1 168804 +1 16888 +1 168927 +1 1691 +1 1693 +1 169318 +1 1694 +1 169403 +1 1695 +1 1697 +1 169796 +1 170422 +1 170948 +1 171271 +1 1713 +1 1719 +1 1720 +1 172239 +1 172772 +1 172877 +1 173739 +1 173825 +1 1743 +1 17512 +1 1752 +1 175453 +1 175790 +1 1762 +1 1766 +1 176853 +1 1769 +1 177 +1 177084 +1 1771 +1 177161 +1 1775 +1 178062 +1 1781 +1 1785 +1 178954 +1 1803 +1 1807 +1 180817 +1 18092 +1 1811 +1 1818 +1 182 +1 1820 +1 182497 +1 1827 +1 183604 +1 1840 +1 1842 +1 1844 +1 1852 +1 1853 +1 18575 +1 186119 +1 1864 +1 1867 +1 1873 +1 187716 +1 1879 +1 188263 +1 1886 +1 1887 +1 1898 +1 1900 +1 190303 +1 1904 +1 191 +1 191355 +1 1914 +1 191760 +1 192150 +1 192366 +1 192729 +1 19294 +1 193 +1 1934 +1 1936 +1 1937 +1 193700 +1 1944 +1 194404 +1 1947 +1 1948 +1 194953 +1 1952 +1 1955 +1 1958 +1 196241 +1 1963 +1 1967 +1 1968 +1 197170 +1 1973 +1 197380 +1 1976 +1 198 +1 1980 +1 198225 +1 1984 +1 198566 +1 199075 +1 1993 +1 1995 +1 20026 +1 200429 +1 2006 +1 2008 +1 2018 +1 2019 +1 202113 +1 2023 +1 2033 +1 204669 +1 2049 +1 2053 +1 205480 +1 2058 +1 206445 +1 2066 +1 206671 +1 206676 +1 2067 +1 2068 +1 2072 +1 2074 +1 2077 +1 2078 +1 207996 +1 2082 +1 2089 +1 2095 +1 2097 +1 2098 +1 2100 +1 2109 +1 2114 +1 211507 +1 2116 +1 2122 +1 2130 +1 2137 +1 2140 +1 214211 +1 214556 +1 214573 +1 2153 +1 215522 +1 215759 +1 215828 +1 216255 +1 216392 +1 2164 +1 216569 +1 2168 +1 2170 +1 217131 +1 2173 +1 2178 +1 2184 +1 2185 +1 219051 +1 2200 +1 220039 +1 220227 +1 220507 +1 2217 +1 2218 +1 2223 +1 222621 +1 2231 +1 2235 +1 2238 +1 2246 +1 2249 +1 225 +1 2255 +1 225561 +1 226945 +1 227 +1 227091 +1 228686 +1 229307 +1 2294 +1 229612 +1 23 +1 2301 +1 2313 +1 2327 +1 233348 +1 233703 +1 233764 +1 2338 +1 2341 +1 2344 +1 234407 +1 2348 +1 234801 +1 235 +1 235049 +1 2356 +1 2358 +1 2367 +1 2370 +1 2373 +1 237608 +1 2377 +1 238106 +1 2386 +1 2395 +1 2396 +1 2397 +1 2398 +1 2401 +1 240296 +1 2406 +1 2408 +1 241 +1 2421 +1 2427 +1 2432 +1 243227 +1 243390 +1 243444 +1 2448 +1 244986 +1 2451 +1 245751 +1 2460 +1 2469 +1 2476 +1 2487 +1 249574 +1 249630 +1 2499 +1 250 +1 250324 +1 251328 +1 2517 +1 2521 +1 252333 +1 252598 +1 252662 +1 2532 +1 253597 +1 253784 +1 2542 +1 2545 +1 255629 +1 2559 +1 256 +1 256297 +1 2567 +1 2576 +1 258324 +1 258511 +1 2586 +1 2587 +1 2595 +1 2596 +1 2598 +1 260 +1 260142 +1 2609 +1 261340 +1 2617 +1 2620 +1 2621 +1 2624 +1 262471 +1 2625 +1 263828 +1 2639 +1 2652 +1 2653 +1 2656 +1 266 +1 266148 +1 266226 +1 266317 +1 266536 +1 2668 +1 267203 +1 2675 +1 2681 +1 268141 +1 269049 +1 269190 +1 2695 +1 270238 +1 2705 +1 2713 +1 272013 +1 2721 +1 272588 +1 2726 +1 272813 +1 273 +1 2734 +1 2737 +1 274063 +1 2743 +1 274663 +1 2749 +1 275004 +1 2752 +1 275239 +1 275507 +1 275733 +1 2761 +1 2763 +1 276469 +1 2772 +1 2773 +1 277502 +1 277619 +1 277929 +1 278836 +1 2790 +1 2792 +1 27953 +1 279984 +1 2801 +1 2802 +1 280628 +1 2813 +1 2817 +1 2818 +1 2821 +1 2823 +1 282478 +1 2828 +1 2830 +1 2834 +1 283690 +1 283725 +1 2838 +1 284265 +1 28599 +1 286247 +1 28630 +1 2869 +1 2876 +1 287854 +1 287920 +1 28798 +1 2886 +1 2887 +1 2890 +1 2899 +1 2903 +1 2906 +1 2907 +1 290786 +1 291692 +1 29178 +1 2934 +1 2938 +1 294 +1 2941 +1 2943 +1 2948 +1 2950 +1 2954 +1 295842 +1 295897 +1 296871 +1 2971 +1 2979 +1 297940 +1 2982 +1 298438 +1 2990 +1 299388 +1 2996 +1 3000 +1 3001 +1 300388 +1 3005 +1 300878 +1 3011 +1 3015 +1 301716 +1 302028 +1 3035 +1 3036 +1 3039 +1 304314 +1 3044 +1 305 +1 305431 +1 305774 +1 3060 +1 3063 +1 30633 +1 3066 +1 3068 +1 3074 +1 308448 +1 308929 +1 309648 +1 310 +1 310959 +1 311279 +1 3116 +1 312078 +1 312267 +1 3123 +1 31232 +1 312394 +1 312819 +1 3132 +1 314212 +1 3151 +1 315172 +1 315178 +1 3154 +1 315734 +1 3159 +1 3161 +1 3164 +1 3165 +1 316601 +1 316979 +1 317 +1 3170 +1 3171 +1 3173 +1 3175 +1 318 +1 3181 +1 3184 +1 318621 +1 3187 +1 3198 +1 3199 +1 32 +1 3206 +1 321 +1 321481 +1 322 +1 3220 +1 3223 +1 3232 +1 3234 +1 3241 +1 3249 +1 3256 +1 325801 +1 325851 +1 326658 +1 327 +1 3270 +1 327008 +1 3272 +1 3279 +1 3283 +1 3284 +1 328681 +1 3289 +1 329 +1 329033 +1 329894 +1 329934 +1 330283 +1 331007 +1 3316 +1 3317 +1 332 +1 3325 +1 333101 +1 3337 +1 3338 +1 333916 +1 334 +1 334148 +1 3344 +1 3347 +1 3367 +1 3370 +1 3371 +1 3374 +1 3380 +1 3391 +1 33947 +1 3395 +1 339834 +1 3399 +1 340129 +1 340157 +1 340291 +1 340454 +1 340611 +1 340801 +1 3410 +1 341194 +1 3412 +1 341653 +1 342 +1 342226 +1 3428 +1 342939 +1 343057 +1 343421 +1 343915 +1 3443 +1 344303 +1 344448 +1 3446 +1 3448 +1 3457 +1 3463 +1 3467 +1 3474 +1 347445 +1 348529 +1 348594 +1 3486 +1 349057 +1 349418 +1 3498 +1 349897 +1 349952 +1 350285 +1 350710 +1 3515 +1 3518 +1 35213 +1 352835 +1 3535 +1 3539 +1 354 +1 354438 +1 354622 +1 35468 +1 3565 +1 3566 +1 35660 +1 358117 +1 358254 +1 358325 +1 35855 +1 3586 +1 3588 +1 3593 +1 3601 +1 360618 +1 3607 +1 3612 +1 361725 +1 362671 +1 3644 +1 364697 +1 3650 +1 3653 +1 366 +1 3663 +1 3666 +1 3668 +1 367 +1 367123 +1 3676 +1 368151 +1 368798 +1 369218 +1 369483 +1 3695 +1 3705 +1 3711 +1 3712 +1 371783 +1 3724 +1 372471 +1 3725 +1 3726 +1 372632 +1 3728 +1 3729 +1 373395 +1 3736 +1 3738 +1 374113 +1 3744 +1 3745 +1 3748 +1 374952 +1 375 +1 3753 +1 375483 +1 375584 +1 376 +1 3767 +1 3768 +1 377005 +1 377438 +1 3786 +1 379 +1 3792 +1 3799 +1 3808 +1 381 +1 3812 +1 3813 +1 381600 +1 3819 +1 382697 +1 3827 +1 383275 +1 383570 +1 383779 +1 384129 +1 384771 +1 3850 +1 385077 +1 3855 +1 38624 +1 3864 +1 386569 +1 387363 +1 3878 +1 388730 +1 3889 +1 3892 +1 389447 +1 3898 +1 390481 +1 390997 +1 391771 +1 3920 +1 3926 +1 392759 +1 3930 +1 3932 +1 3947 +1 3952 +1 395538 +1 396861 +1 3969 +1 3970 +1 397062 +1 3973 +1 3980 +1 3981 +1 3984 +1 3985 +1 3987 +1 3988 +1 399209 +1 3999 +1 4003 +1 4009 +1 4010 +1 401079 +1 4012 +1 4013 +1 4023 +1 402319 +1 403 +1 403033 +1 403108 +1 4035 +1 403520 +1 403830 +1 4043 +1 4046 +1 4048 +1 404958 +1 40605 +1 406610 +1 4070 +1 407614 +1 40764 +1 4079 +1 4091 +1 4093 +1 412 +1 412938 +1 413671 +1 414796 +1 414850 +1 415 +1 41621 +1 416257 +1 418033 +1 419 +1 420274 +1 42326 +1 423451 +1 42401 +1 425272 +1 426207 +1 427459 +1 428339 +1 43 +1 431370 +1 431870 +1 432 +1 432812 +1 432849 +1 43315 +1 433246 +1 435945 +1 436916 +1 43980 +1 440 +1 440281 +1 440509 +1 440680 +1 441502 +1 442236 +1 442472 +1 443100 +1 444524 +1 445287 +1 445755 +1 446328 +1 447504 +1 447554 +1 447707 +1 447909 +1 448949 +1 449560 +1 449875 +1 450072 +1 45062 +1 45182 +1 452305 +1 452880 +1 454473 +1 454554 +1 45499 +1 455277 +1 456 +1 457 +1 457156 +1 457404 +1 457726 +1 458034 +1 459239 +1 459569 +1 459715 +1 460912 +1 461629 +1 461920 +1 463140 +1 4632 +1 464263 +1 464629 +1 465 +1 465781 +1 466352 +1 466395 +1 466405 +1 468303 +1 469319 +1 469520 +1 469578 +1 470214 +1 471054 +1 472 +1 472970 +1 473 +1 477135 +1 478099 +1 478492 +1 479057 +1 480180 +1 481612 +1 481824 +1 481895 +1 482362 +1 483670 +1 484 +1 487426 +1 488 +1 488804 +1 490073 +1 490239 +1 491976 +1 493832 +1 494104 +1 495633 +1 495717 +1 498095 +1 498414 +1 498590 +1 499057 +1 499395 +1 5 +1 50 +1 500 +1 502 +1 502601 +1 503 +1 503095 +1 503211 +1 504 +1 50592 +1 506122 +1 506814 +1 50704 +1 507365 +1 508 +1 508500 +1 508713 +1 5090 +1 510454 +1 511 +1 5120 +1 51201 +1 513119 +1 514100 +1 514484 +1 517586 +1 518078 +1 5188 +1 519204 +1 519775 +1 521797 +1 522051 +1 52511 +1 526279 +1 526433 +1 528041 +1 528989 +1 529736 +1 530333 +1 530577 +1 536531 +1 536726 +1 536980 +1 537031 +1 537242 +1 537708 +1 540499 +1 540658 +1 541247 +1 541255 +1 543042 +1 543159 +1 543548 +1 544084 +1 544397 +1 544531 +1 544632 +1 546052 +1 54670 +1 54766 +1 549261 +1 549458 +1 549948 +1 550576 +1 551934 +1 552 +1 552524 +1 552700 +1 553145 +1 5537 +1 554862 +1 557391 +1 557677 +1 557886 +1 558 +1 559 +1 559139 +1 559959 +1 560367 +1 560433 +1 560584 +1 560812 +1 561766 +1 562 +1 562049 +1 562799 +1 564180 +1 564349 +1 566165 +1 567 +1 568534 +1 568696 +1 568772 +1 569014 +1 569025 +1 569926 +1 570492 +1 571270 +1 571366 +1 572227 +1 575101 +1 575781 +1 575941 +1 576251 +1 576445 +1 576798 +1 577371 +1 577882 +1 577921 +1 578812 +1 578883 +1 579609 +1 580301 +1 581 +1 581496 +1 582 +1 583905 +1 584 +1 586871 +1 586963 +1 587560 +1 589217 +1 589445 +1 589989 +1 590736 +1 591894 +1 592467 +1 593968 +1 594077 +1 594393 +1 594629 +1 595500 +1 597027 +1 597690 +1 600152 +1 600485 +1 60151 +1 601655 +1 601902 +1 60194 +1 602687 +1 602988 +1 604193 +1 604502 +1 604611 +1 605565 +1 605602 +1 608114 +1 608332 +1 60858 +1 609351 +1 609771 +1 611 +1 611353 +1 611454 +1 611487 +1 612270 +1 614376 +1 615 +1 6154 +1 615974 +1 616 +1 616080 +1 618 +1 619 +1 61980 +1 620176 +1 620308 +1 620928 +1 621754 +1 622 +1 622197 +1 622425 +1 623215 +1 624365 +1 62468 +1 626893 +1 627095 +1 627430 +1 628 +1 629071 +1 630219 +1 63094 +1 631794 +1 632 +1 633047 +1 635182 +1 635261 +1 635960 +1 636573 +1 638122 +1 638188 +1 639323 +1 64 +1 640 +1 640834 +1 642054 +1 642108 +1 642620 +1 643643 +1 643740 +1 643938 +1 644617 +1 644899 +1 645011 +1 645792 +1 645795 +1 646 +1 64623 +1 648971 +1 650 +1 650208 +1 650630 +1 650809 +1 652368 +1 652550 +1 653724 +1 654262 +1 65514 +1 656748 +1 657421 +1 658286 +1 660353 +1 660478 +1 663992 +1 664 +1 664345 +1 665 +1 665056 +1 668 +1 668808 +1 669 +1 669242 +1 67 +1 670 +1 671987 +1 672285 +1 672810 +1 673064 +1 673256 +1 674557 +1 674691 +1 675706 +1 675785 +1 676656 +1 679 +1 679287 +1 68080 +1 680934 +1 68108 +1 681222 +1 68136 +1 68390 +1 685381 +1 685979 +1 686059 +1 686791 +1 686925 +1 687270 +1 688278 +1 688924 +1 68951 +1 689819 +1 69 +1 690893 +1 691303 +1 691372 +1 692 +1 694734 +1 694766 +1 695689 +1 696817 +1 697451 +1 697549 +1 698179 +1 698405 +1 698582 +1 699 +1 699278 +1 699467 +1 70 +1 700699 +1 702 +1 702649 +1 70348 +1 703732 +1 704450 +1 704642 +1 706755 +1 707735 +1 70820 +1 708648 +1 709063 +1 709132 +1 710305 +1 711273 +1 712530 +1 713 +1 713093 +1 713306 +1 713458 +1 714910 +1 715 +1 715070 +1 715273 +1 715345 +1 715692 +1 715717 +1 716 +1 716291 +1 717188 +1 718071 +1 718132 +1 720511 +1 721 +1 721176 +1 721296 +1 721699 +1 721913 +1 722058 +1 722471 +1 723264 +1 72524 +1 72582 +1 728415 +1 730584 +1 732637 +1 732756 +1 733914 +1 735128 +1 735762 +1 735824 +1 736941 +1 738847 +1 738927 +1 739117 +1 74 +1 740076 +1 742356 +1 743300 +1 744123 +1 745999 +1 746 +1 746755 +1 746959 +1 747602 +1 750114 +1 750495 +1 750597 +1 751316 +1 752387 +1 752579 +1 752667 +1 753364 +1 753564 +1 753994 +1 754613 +1 756123 +1 756509 +1 757243 +1 759 +1 759648 +1 759744 +1 76077 +1 760918 +1 760984 +1 763 +1 763631 +1 763800 +1 764 +1 76441 +1 764791 +1 765143 +1 765777 +1 767444 +1 768509 +1 77 +1 770 +1 770232 +1 770588 +1 770796 +1 77130 +1 771678 +1 772583 +1 773657 +1 775193 +1 776346 +1 776636 +1 776806 +1 777789 +1 777815 +1 779178 +1 779598 +1 780005 +1 781652 +1 782556 +1 782956 +1 784952 +1 78510 +1 787220 +1 787918 +1 788458 +1 788713 +1 788921 +1 791 +1 791833 +1 792 +1 793313 +1 79408 +1 794120 +1 795 +1 79595 +1 796 +1 797 +1 79781 +1 798158 +1 798933 +1 799010 +1 79909 +1 80 +1 800607 +1 801229 +1 802 +1 803344 +1 806345 +1 807 +1 807108 +1 807336 +1 808337 +1 808450 +1 808531 +1 808811 +1 809889 +1 810 +1 811147 +1 811504 +1 812834 +1 813902 +1 814113 +1 814215 +1 816 +1 816504 +1 817369 +1 819432 +1 822430 +1 824 +1 824450 +1 825429 +1 825747 +1 826 +1 826200 +1 826350 +1 826435 +1 826992 +1 827022 +1 827935 +1 827947 +1 828721 +1 828828 +1 829 +1 829863 +1 83061 +1 830659 +1 83202 +1 832170 +1 832371 +1 833136 +1 833286 +1 833671 +1 833756 +1 834 +1 836776 +1 836934 +1 837050 +1 837408 +1 837950 +1 83823 +1 838254 +1 838830 +1 839358 +1 840207 +1 840278 +1 840415 +1 840469 +1 841 +1 842249 +1 843143 +1 843277 +1 844332 +1 844609 +1 84466 +1 845589 +1 846144 +1 846819 +1 847806 +1 848906 +1 848985 +1 849312 +1 85 +1 850240 +1 85035 +1 850609 +1 850776 +1 850992 +1 851378 +1 852 +1 85205 +1 85356 +1 854133 +1 854339 +1 855 +1 855815 +1 856345 +1 857 +1 858 +1 858157 +1 858168 +1 85920 +1 859357 +1 859437 +1 859442 +1 859514 +1 86 +1 860799 +1 861656 +1 862 +1 862010 +1 862202 +1 864712 +1 869437 +1 871445 +1 871600 +1 873600 +1 873975 +1 876039 +1 876266 +1 87721 +1 878141 +1 878192 +1 87835 +1 879000 +1 880226 +1 880517 +1 880668 +1 881 +1 881564 +1 881933 +1 882188 +1 883124 +1 883937 +1 88603 +1 886263 +1 887 +1 887668 +1 887990 +1 888884 +1 89027 +1 890713 +1 890779 +1 891564 +1 892070 +1 89214 +1 892961 +1 893866 +1 893944 +1 894005 +1 895 +1 895367 +1 896840 +1 897357 +1 898 +1 899258 +1 899263 +1 900656 +1 902416 +1 902560 +1 903104 +1 904004 +1 904389 +1 90512 +1 905136 +1 905663 +1 906728 +1 906928 +1 907455 +1 907886 +1 908239 +1 908963 +1 909 +1 909307 +1 909902 +1 91 +1 910332 +1 911 +1 913794 +1 913857 +1 914300 +1 916372 +1 918 +1 918318 +1 919441 +1 919861 +1 920130 +1 920472 +1 921862 +1 922043 +1 924969 +1 925 +1 925734 +1 928269 +1 929 +1 929113 +1 929721 +1 929787 +1 929808 +1 932 +1 932160 +1 933 +1 933675 +1 934495 +1 934747 +1 934899 +1 935 +1 935007 +1 935127 +1 935192 +1 935637 +1 935727 +1 935789 +1 935827 +1 936 +1 936346 +1 936787 +1 937 +1 937255 +1 938234 +1 938753 +1 939 +1 939221 +1 94 +1 940 +1 940324 +1 940932 +1 943 +1 943128 +1 943631 +1 945246 +1 945379 +1 945781 +1 946254 +1 947 +1 947880 +1 948162 +1 948505 +1 948617 +1 948861 +1 949245 +1 949658 +1 949757 +1 950261 +1 950794 +1 951961 +1 952311 +1 953772 +1 954523 +1 954842 +1 955534 +1 956785 +1 95762 +1 95770 +1 957737 +1 959774 +1 963517 +1 963580 +1 963861 +1 964535 +1 964776 +1 965 +1 965708 +1 967675 +1 967963 +1 968364 +1 969822 +1 970449 +1 97090 +1 973063 +1 973936 +1 974706 +1 974972 +1 975291 +1 976572 +1 976863 +1 978236 +1 978993 +1 981044 +1 981095 +1 981735 +1 982389 +1 983418 +1 984091 +1 984196 +1 987755 +1 987850 +1 987900 +1 988 +1 98805 +1 990 +1 990746 +1 991189 +1 991386 +1 991694 +1 992467 +1 993 +1 994491 +1 994595 +1 995087 +1 995849 +1 997895 +1 998269 +1 998779 +1 999792 +2 1228 +2 1284 +2 1287 +2 1438 +2 1456 +2 146 +2 1645 +2 1683 +2 1730 +2 1745 +2 1795 +2 18 +2 1850 +2 1941 +2 1961 +2 2057 +2 2162 +2 217 +2 2365 +2 2454 +2 2526 +2 2536 +2 2599 +2 2649 +2 2700 +2 2740 +2 277 +2 286 +2 2870 +2 2908 +2 2918 +2 2947 +2 3004 +2 3028 +2 3058 +2 312 +2 3210 +2 3295 +2 333 +2 3366 +2 3400 +2 340810 +2 3477 +2 362 +2 3636 +2 3660 +2 3684 +2 3704 +2 3800 +2 3832 +2 390 +2 3937 +2 4085 +2 489 +2 697 +2 769 +2 906 +2 915053 +2 957 +3 1144 +3 2026 +3 2325 +3 2633 +3 3397 +83 NULL +PREHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(20, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(20, b), b order by slot_count desc, slot_number +PREHOOK: type: QUERY +PREHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +POSTHOOK: query: select b, count(*) as slot_count, vector_mapjoin_slot_number(20, b) as slot_number from vectortab2korc group by vector_mapjoin_slot_number(20, b), b order by slot_count desc, slot_number +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectortab2korc +#### A masked pattern was here #### +-6917607783359897600 1 407614 +-6919476845891313664 1 915053 +-6920172215209426944 1 229307 +-6921654334727036928 1 594393 +-6933565857643814912 1 261340 +-6934304742087655424 1 771678 +-6935038507792801792 1 536531 +-6935548339131138048 1 169796 +-6938706403992854528 1 776806 +-6941777546186579968 1 842249 +-6947955278050181120 1 675785 +-6951350560260784128 1 373395 +-6957946688477274112 1 18092 +-6960947572095770624 1 64623 +-6962271229404348416 1 827947 +-6962292590214234112 1 752579 +-6968771079156654080 1 348594 +-6968892545529896960 1 602988 +-6970396058557005824 1 28630 +-6974654664348033024 1 837050 +-6975459232300236800 1 340810 +-6986178228432322560 1 848985 +-6988811476286873600 1 745999 +-6988970700649168896 1 935727 +-6992217501957169152 1 431370 +-6997233584896229376 1 949757 +-7000925438663041024 1 562799 +-7003696402314215424 1 266536 +-7011425384222244864 1 374113 +-7017212700635545600 1 992467 +-7020852530219171840 1 933675 +-7030489936116252672 1 347445 +-7035132060308643840 1 557677 +-7036607470351654912 1 172877 +-7037375807670501376 1 943631 +-7037638331316469760 1 770588 +-7038455462786334720 1 561766 +-7040248820505149440 1 702649 +-7041362811802148864 1 6154 +-7042183597114081280 1 849312 +-7046180371529351168 1 240296 +-7049618574399692800 1 331007 +-7052619594823221248 1 171271 +-7055619148037554176 1 214573 +-7055760785575665664 1 543548 +-7057750467944931328 1 390481 +-7058986555327307776 1 604193 +-7063777488249085952 1 635960 +-7078068944081002496 1 1040755 +-7079898537463537664 1 549948 +-7081500255163727872 1 385077 +-7083646746411720704 1 52511 +-7085247548404178944 1 1010544 +-7093825013581979648 1 192366 +-7094189393339678720 1 879000 +-7094827141662539776 1 887668 +-7104310188119834624 1 284265 +-7106210529681350656 1 862010 +-7109790267244814336 1 553145 +-7115054815375073280 1 216392 +-7120456708338688000 1 290786 +-7127548949860818944 1 5537 +-7138415011665043456 1 688924 +-7139677575412686848 1 788921 +-7140008543769042944 1 591894 +-7144791190333546496 1 880668 +-7145585429014888448 1 435945 +-7147490721376591872 1 371783 +-7152177800841502720 1 275004 +-7155539549555105792 1 426207 +-7158472098920390656 1 457156 +-7159700138947862528 1 238106 +-7161165959057334272 1 403108 +-7162299524557471744 1 115139 +-7172594404186693632 1 316979 +-7185369278665605120 1 31232 +-7192529627893858304 1 808450 +-7194281951646187520 1 45062 +-7195217207163166720 1 68080 +-7198372044947275776 1 819432 +-7199983995864711168 1 342939 +-7201085131997011968 1 180817 +-7209060152494817280 1 733914 +-7213775605408178176 1 199075 +-7220731681653604352 1 855815 +-7221474017515347968 1 215759 +-7228589258642194432 1 423451 +-7240213957902663680 1 173739 +-7242345057866285056 1 498590 +-7245872320493322240 1 847806 +-7246123871306244096 1 79408 +-7255010240787030016 1 341653 +-7255686273677328384 1 1033012 +-7262049693594943488 1 846144 +-7262384251828518912 1 642054 +-7262798781688651776 1 354622 +-7263060340185194496 1 256297 +-7265998318110711808 1 969822 +-7266719102957125632 1 551934 +-7270034223527993344 1 950261 +-7273590251991162880 1 158333 +-7273694358642851840 1 1044600 +-7276111129363046400 1 998269 +-7287583262310350848 1 921862 +-7292078334519894016 1 325851 +-7296096276653391872 1 597690 +-7303847963918393344 1 305774 +-7319315187617587200 1 897357 +-7326863346317598720 1 472970 +-7328087811698909184 1 579609 +-7329767178250018816 1 349897 +-7329807949048193024 1 169403 +-7330203470474985472 1 442236 +-7330413050756235264 1 170948 +-7333278178640953344 1 478099 +-7333362172439035904 1 843277 +-7340231535789727744 1 968364 +-7344146703223496704 1 519775 +-7344947507044466688 1 15151 +-7345562788132315136 1 984091 +-7356685674003021824 1 576445 +-7357888618985873408 1 967963 +-7362189611124563968 1 918318 +-7366430883634929664 1 191760 +-7378096180613840896 1 763631 +-7380731416973295616 1 5120 +-7395343938785738752 1 172239 +-7395553021620731904 1 899263 +-7399631791131074560 1 712530 +-7404052043914526720 1 275733 +-7404057145074712576 1 882188 +-7409317158045442048 1 936787 +-7409653086454030336 1 106748 +-7412431471807283200 1 216569 +-7413317118463164416 1 499057 +-7419068456205385728 1 569014 +-7420448501073051648 1 206445 +-7425160895830573056 1 278836 +-7429331808102899712 1 934747 +-7433265617153343488 1 88603 +-7442593976514420736 1 735128 +-7444070205513138176 1 552700 +-7451660755269853184 1 759744 +-7453525026342617088 1 671987 +-7455898404374921216 1 624365 +-7456869587112255488 1 522051 +-7461750143936897024 1 716291 +-7464270453557993472 1 198225 +-7469660864676585472 1 138165 +-7470307155642245120 1 829863 +-7476082621253402624 1 349057 +-7483435388852559872 1 348529 +-7488345684795342848 1 578883 +-7488415863027367936 1 68136 +-7494411162675691520 1 616080 +-7496839341561954304 1 15809 +-7497303453253402624 1 312819 +-7500200359698907136 1 130364 +-7501803640821456896 1 800607 +-7506254246954500096 1 938234 +-7507424948896415744 1 935192 +-7507578199583694848 1 178954 +-7510418793070075904 1 354438 +-7511202710200885248 1 549261 +-7511952204985049088 1 934899 +-7512289590991544320 1 697549 +-7512297136103800832 1 114471 +-7515996202498473984 1 881933 +-7524170566881329152 1 976572 +-7526793959592140800 1 134184 +-7528526815026692096 1 110159 +-7532751268425261056 1 440281 +-7535857766791577600 1 258324 +-7535958203887706112 1 1025881 +-7536330682873937920 1 481612 +-7540104552219860992 1 60194 +-7541860097718902784 1 938753 +-7542857121910046720 1 809889 +-7547245548870025216 1 349418 +-7547432761381339136 1 272588 +-7551394356730339328 1 609351 +-7557017910095650816 1 640834 +-7558524160894427136 1 773657 +-7571293705217687552 1 1023195 +-7571957778022178816 1 269049 +-7572262898020278272 1 377005 +-7572962089372991488 1 1032261 +-7576194692683563008 1 658286 +-7593363318079610880 1 295897 +-7594824008626372608 1 642108 +-7598782894648565760 1 638122 +-7600138468036386816 1 577921 +-7603467428164009984 1 914300 +-7603569103205916672 1 42326 +-7610137349734883328 1 1025733 +-7611584069753552896 1 117408 +-7612455481940246528 1 644899 +-7612466483992051712 1 109099 +-7616522969329262592 1 894005 +-7617860842651017216 1 198566 +-7623047151287754752 1 402319 +-7623359796281999360 1 672285 +-7623405558242500608 1 427459 +-7624057992767782912 1 782956 +-7629401308029976576 1 138064 +-7637494527844343808 1 495717 +-7637755520917741568 1 152567 +-7642381493746483200 1 752667 +-7647020450676146176 1 605602 +-7661192563533062144 1 967675 +-7661250850555633664 1 908963 +-7663293054873812992 1 204669 +-7665186441284968448 1 832170 +-7668388017287020544 1 935007 +-7669169138124275712 1 107832 +-7673901622181953536 1 384771 +-7679894005808693248 1 720511 +-7686220526274502656 1 296871 +-7687052294777208832 1 959774 +-7692192232238678016 1 751316 +-7695491171376291840 1 1025994 +-7700203302632210432 1 243227 +-7703540456272994304 1 576251 +-7707242953271500800 1 836934 +-7707867749256445952 1 13437 +-7708932208121225216 1 1043431 +-7709958788604936192 1 1007094 +-7712425776235274240 1 808337 +-7720966287634112512 1 698179 +-7739424919198187520 1 442472 +-7744462446680375296 1 886263 +-7751265769984491520 1 176853 +-7751427073017544704 1 956785 +-7753051494275432448 1 937255 +-7759238919361888256 1 575781 +-7759425383684849664 1 788458 +-7772064021830574080 1 825429 +-7773957003968675840 1 330283 +-7777884099756122112 1 943128 +-7778829032042790912 1 325801 +-7779270198785875968 1 890779 +-7782344916178796544 1 40605 +-7784419454650843136 1 119061 +-7792903881635938304 1 286247 +-7793447076762345472 1 629071 +-7797149520019062784 1 540499 +-7797151404935618560 1 770232 +-7800879252150779904 1 340810 +-7802538500225777664 1 630219 +-7804116532814151680 1 1009993 +-7805985795815342080 1 838254 +-7811060170911375360 1 117148 +-7818454479651135488 1 776636 +-7819437864839495680 1 779178 +-7822452149325094912 1 975291 +-7824788571789279232 1 206671 +-7827420207675105280 1 924969 +-7831320202242228224 1 590736 +-7831595638727565312 1 369483 +-7833618000492109824 1 147871 +-7835907977757245440 1 825747 +-7838598833900584960 1 612270 +-7840338174858199040 1 428339 +-7845896959112658944 1 167028 +-7848043121524228096 1 412938 +-7849504559236210688 1 909307 +-7858505678035951616 1 564349 +-7866079955473989632 1 211507 +-7867219225874571264 1 997895 +-7868306678534193152 1 493832 +-7873753603299540992 1 685979 +-7875953567586451456 1 194404 +-7877598807023386624 1 1961 +-7878145001776152576 1 234801 +-7879864376629567488 1 165974 +-7881262505761710080 1 507365 +-7881351200983613440 1 951961 +-7883252982752665600 1 87721 +-7884460946615984128 1 352835 +-7888051992910274560 1 396861 +-7892780594910871552 1 481824 +-7893577088764174336 1 287920 +-7894382303337832448 1 327008 +-7895991410072928256 1 945781 +-7902517224300036096 1 859442 +-7903158849011843072 1 440509 +-7904188195431661568 1 399209 +-7907355742053883904 1 903104 +-7910019233726242816 1 995087 +-7911421221625077760 1 340291 +-7915999634274369536 1 750114 +-7916510129632296960 1 510454 +-7928062266382778368 1 165597 +-7928440849566146560 1 432812 +-7939634346485858304 1 5188 +-7949309059286163456 1 935827 +-7949445503604604928 1 577371 +-7953426740065312768 1 715273 +-7964801953178091520 1 767444 +-7966960765508280320 1 60151 +-7978782649203228672 1 981044 +-7989766326847807488 1 963861 +-7998947380180819968 1 808531 +-8007017894942638080 1 568534 +-8013397854633648128 1 833136 +-8016589197379289088 1 470214 +-8017791189288869888 1 20026 +-8018511948141748224 1 765143 +-8021859935185928192 1 715345 +-8022573309127000064 1 297940 +-8023708819947323392 1 125922 +-8028275725610909696 1 869437 +-8028910243475038208 1 124876 +-8030058711611629568 1 881564 +-8034414142083170304 1 416257 +-8046189486447017984 1 386569 +-8046238369820344320 1 787918 +-8047774491688255488 1 883937 +-8051395538179063808 1 672810 +-8051587217208967168 1 235049 +-8051871680800120832 1 233703 +-8054581198284668928 1 858168 +-8067243114610532352 1 269190 +-8070535484085895168 1 283690 +-8076479329071955968 1 621754 +-8082793390939193344 1 266148 +-8084716955963252736 1 503211 +-8086577583338061824 1 935637 +-8088337436168830976 1 697451 +-8099313480512716800 1 768509 +-8103788088118018048 1 575941 +-8104684579106914304 1 85356 +-8108693586698706944 1 902560 +-8115963579415650304 1 779598 +-8117838333114212352 1 308448 +-8122639684164501504 1 391771 +-8127494999848919040 1 110719 +-8131997716860526592 1 217131 +-8136227554401107968 1 991189 +-8140349174954893312 1 928269 +-8142667274351345664 1 457726 +-8147405381260345344 1 945246 +-8158011642485825536 1 826350 +-8161047750470279168 1 611353 +-8172827216441573376 1 375483 +-8182421179156905984 1 597027 +-8191825921746305024 1 275239 +-8194062064124362752 1 263828 +-8203008052020879360 1 1043706 +-8203075743525806080 1 833756 +-8205148279289085952 1 506122 +-8214462866994339840 1 694734 +-8219876839318716416 1 369218 +-8232763638546694144 1 469520 +-8240034910581153792 1 703732 +-8240684139569233920 1 225561 +-8243487285852766208 1 650208 +-8244116388227104768 1 811504 +-8244657976255889408 1 605565 +-8260340354454503424 1 876266 +-8269917980278980608 1 245751 +-8270479187688816640 1 228686 +-8275337702906757120 1 441502 +-8280276629934981120 1 940324 +-8293833565967810560 1 78510 +-8297230235506343936 1 1029317 +-8300526097982226432 1 315172 +-8300764106868350976 1 312267 +-8302817097848307712 1 350710 +-8317591428117274624 1 368798 +-8318886086186213376 1 425272 +-8322751250650218496 1 397062 +-8330233444291084288 1 1032598 +-8335810316927213568 1 830659 +-8340523561480437760 1 708648 +-8345065519816695808 1 270238 +-8347088645602050048 1 312078 +-8357136656913686528 1 170422 +-8358130693961195520 1 131206 +-8359839265974165504 1 341194 +-8368269352975982592 1 1017674 +-8368487814665895936 1 544084 +-8369487968903897088 1 220039 +-8379109122834997248 1 215828 +-8379964450833367040 1 291692 +-8384695077413412864 1 906928 +-8387347109404286976 1 340454 +-8387536830476820480 1 455277 +-8395998375405912064 1 732756 +-8400045653258444800 1 329894 +-8411282676082565120 1 129076 +-8418913260807217152 1 452305 +-8425998949410889728 1 280628 +-8426531414463545344 1 560367 +-8430283518005846016 1 673256 +-8430370933326536704 1 589989 +-8431492599012163584 1 177161 +-8438554249514491904 1 559139 +-8445801063348281344 1 301716 +-8453491903284994048 1 361725 +-8454143651040444416 1 568696 +-8465978403747037184 1 828828 +-8469607298426437632 1 850240 +-8471480409335513088 1 752387 +-8485389240529354752 1 414850 +-8488247955875618816 1 602687 +-8490382417169408000 1 812834 +-8494118409594650624 1 206676 +-8503342882470019072 1 983418 +-8503573595507761152 1 153212 +-8507279516485566464 1 709063 +-8509547439040757760 1 544632 +-8518060755719585792 1 860799 +-8518258741831680000 1 112527 +-8521578237232529408 1 575101 +-8522878384019169280 1 1008265 +-8523434203900674048 1 899258 +-8525212657458348032 1 721913 +-8535957064499879936 1 244986 +-8536369662934401024 1 788713 +-8543982423727128576 1 449560 +-8544299740525461504 1 711273 +-8545239748068941824 1 828721 +-8546758906409312256 1 140103 +-8552393882631389184 1 459715 +-8555709701170552832 1 243390 +-8559008501282832384 1 528989 +-8559252110266564608 1 949658 +-8562524688907485184 1 315734 +-8566856504746352640 1 35660 +-8566940231897874432 1 970449 +-8570933074545745920 1 194953 +-8572823448513445888 1 16742 +-8572949572756774912 1 803344 +-8581765103969312768 1 452880 +-8581979259158929408 1 214556 +-8584520406368493568 1 50704 +-8585134536083660800 1 638188 +-8585966098173870080 1 420274 +-8593419958317056000 1 948617 +-8603817012434198528 1 191355 +-8604758220106014720 1 282478 +-8607195685207408640 1 433246 +-8615168537390571520 1 1034057 +-8619303037130301440 1 639323 +-8623238306523824128 1 1004653 +-8623965248051789824 1 89214 +-8632237187473088512 1 620308 +-8649711322250362880 1 571366 +-8651641150831362048 1 443100 +-8654433008222797824 1 854133 +-8654797319350927360 1 600485 +-8658387566611996672 1 770796 +-8659643752269242368 1 611487 +-8659692318743314432 1 919861 +-8660149447361404928 1 495633 +-8664374244449050624 1 963580 +-8664806103426252800 1 862202 +-8665218198816497664 1 578812 +-8665764757143658496 1 258511 +-8675661101615489024 1 466395 +-8675892979328212992 1 340129 +-8683802826440105984 1 480180 +-8688153842294595584 1 846819 +-8689606130068611072 1 1032116 +-8694818694700048384 1 333916 +-8696162322976997376 1 676656 +-8703026916864802816 1 892961 +-8704234107608203264 1 275507 +-8705403811649355776 1 377438 +-8710298418608619520 1 756123 +-8714995808835444736 1 498095 +-8719510423723155456 1 106231 +-8730803262481580032 1 904004 +-8731068123910987776 1 635182 +-8746702976270385152 1 859514 +-8754966081778565120 1 759648 +-8754992450211692544 1 35468 +-8756989568739835904 1 125973 +-8760655406971863040 1 498414 +-8763062627136864256 1 167880 +-8768744394742235136 1 70348 +-8782213262837530624 1 35213 +-8783777723063099392 1 249630 +-8789178184387641344 1 888884 +-8797972842900307968 1 85205 +-8807361476639629312 1 326658 +-8813211231120031744 1 277619 +-8831091081349758976 1 978993 +-8832750849949892608 1 172772 +-8833019327569510400 1 594629 +-8835408234247168000 1 192150 +-8836899523028312064 1 305431 +-8843859708698583040 1 643938 +-8844949406948671488 1 902416 +-8845239510002753536 1 807108 +-8852770376039219200 1 627430 +-8853553406533894144 1 908239 +-8856151919723003904 1 994491 +-8856821118526734336 1 12532 +-8857335871148171264 1 76441 +-8858063395050110976 1 690893 +-8859107121649893376 1 691372 +-8866442231663067136 1 468303 +-8870186814744420352 1 891564 +-8870673219965001728 1 987755 +-8875546987176206336 1 79595 +-8877053610728161280 1 162968 +-8877431933441327104 1 688278 +-8879742387365429248 1 89027 +-8881446757271846912 1 72524 +-8887058200926093312 1 381600 +-8892963883085578240 1 920472 +-8896045754034978816 1 85035 +-8914039133569400832 1 464263 +-8916987977485312000 1 40764 +-8922409715403112448 1 79781 +-8923529803981905920 1 813902 +-8927968289860370432 1 364697 +-8930307926221807616 1 233764 +-8938849835283677184 1 62468 +-8940944155843461120 1 298438 +-8941201923743703040 1 186119 +-8946656952763777024 1 691303 +-8948335470186373120 1 136110 +-8959796625322680320 1 253784 +-8961059046745669632 1 169318 +-8962547695651323904 1 664345 +-8965578088652095488 1 161400 +-8989473881707921408 1 229612 +-8990843030306717696 1 987850 +-8992599250893979648 1 826435 +-8996954350906294272 1 299388 +-9002912355472736256 1 283725 +-9004892183139811328 1 750495 +-9008631121684832256 1 859357 +-9012093603044245504 1 95762 +-9013952631912325120 1 904389 +-9014145341570203648 1 541255 +-9022154842129547264 1 350285 +-9032650742739836928 1 508500 +-9049720998034137088 1 794120 +-9051477157204770816 1 1031640 +-9058029636530003968 1 168804 +-9066993118333706240 1 878141 +-9071565764086521856 1 735824 +-9075302542655684608 1 252333 +-9075486079396069376 1 469578 +-9078662294976061440 1 200429 +-9079801920509001728 1 252598 +-9080568167841226752 1 374952 +-9080956291212132352 1 446328 +-9084940280061485056 1 1022747 +-9088239683374350336 1 764791 +-9091113592821972992 1 178062 +-9095689235523264512 1 1016790 +-9101953184875757568 1 948861 +-9102482277760983040 1 537708 +-9105358806324035584 1 880226 +-9105701280936501248 1 654262 +-9109392978217484288 1 85920 +-9117959922369060864 1 135970 +-9126793997498957824 1 657421 +-9136398397785948160 1 83823 +-9142610685888192512 1 544531 +-9145593811310010368 1 698405 +-9148197394287779840 1 279984 +-9149719074367946752 1 530577 +-9157613004431998976 1 268141 +-9175038118837149696 1 913857 +-9175279464813223936 1 686059 +-9178166810751909888 1 981095 +-9187662685618348032 1 929787 +-9189155542884474880 1 611454 +-9203804401302323200 1 905136 +-9203942396257984512 1 141156 +-9206329156028112896 1 372471 +-9210275791460499456 1 636573 +-9213132862973829120 1 103603 +-9215144824304721920 1 859437 +-9218875542187065344 1 173825 +-9219066990552760320 1 309648 +1021 1 965 +1030 1 1102 +1032 1 1088 +1039 1 1095 +1046 1 1119 +1048 1 1105 +1053 1 1108 +1055 1 1110 +1058 1 1128 +1065 1 1123 +1066 1 1120 +1074 1 1145 +1075 3 1144 +108 1 106 +1086 1 1141 +1093 1 1033 +1094 1 1034 +1095 1 1035 +1099 1 1031 +1115 1 1046 +112 1 119 +1127 1 1065 +1128 1 1062 +1132 1 1058 +1134 1 1056 +1141 1 1082 +1142 1 1081 +1145 1 1078 +1153 1 1216 +1157 1 1220 +1158 1 1223 +1165 2 1228 +1168 1 1232 +1177 1 1241 +1187 1 1248 +1189 1 1254 +1198 1 1261 +120 1 127 +1201 1 1267 +1217 1 1156 +1234 1 1174 +1243 1 1183 +1247 1 1179 +1252 1 1187 +1261 1 1194 +1270 1 1200 +1280 1 1370 +1282 1 1368 +1286 1 1372 +1287 1 1373 +1290 1 1360 +1291 1 1361 +1299 1 1352 +130 1 139 +1307 1 1344 +1312 1 1400 +1316 1 1404 +1321 1 1393 +1337 1 1376 +1341 1 1380 +1342 1 1383 +1343 1 1382 +1345 1 1311 +1346 1 1308 +135 1 142 +1366 1 1289 +1368 2 1287 +1371 2 1284 +138 1 131 +1386 1 1334 +1398 1 1323 +1409 1 1490 +1422 1 1501 +1423 1 1500 +1436 1 1486 +1439 1 1485 +1447 1 1526 +1450 1 1531 +1454 1 1535 +1458 1 1506 +1462 1 1510 +1466 1 1514 +1470 1 1518 +1477 1 1426 +1481 2 1438 +1489 1 1415 +1493 1 1411 +1495 1 1409 +1501 1 1419 +1506 1 1463 +1508 1 1457 +1509 2 1456 +1518 1 1467 +1520 1 1444 +1521 1 1445 +1524 1 1440 +1530 1 1454 +1537 2 1645 +154 2 146 +1541 1 1641 +1542 1 1642 +1545 1 1637 +1556 1 1657 +1559 1 1658 +1561 1 1652 +1566 1 1651 +1604 1 1580 +1606 1 1582 +1608 1 1568 +1613 1 1573 +1614 1 1574 +1620 1 1597 +1638 1 1548 +1641 1 1539 +1643 1 1537 +1648 1 1563 +1651 1 1560 +1667 1 1766 +1671 1 1762 +1674 1 1775 +1676 1 1769 +1678 1 1771 +168 1 163 +1681 1 1781 +169 1 162 +1693 1 1785 +1701 2 1730 +1704 1 1743 +1719 2 1745 +1726 1 1752 +1728 1 1697 +1745 1 1713 +1751 1 1719 +1752 1 1720 +1769 1 1674 +1774 1 1677 +1775 1 1676 +1777 2 1683 +1780 1 1686 +1781 1 1687 +1785 1 1691 +1786 1 1688 +1788 1 1694 +1789 1 1695 +1791 1 1693 +1796 1 1914 +1806 1 1904 +181 1 191 +1811 1 1900 +1813 1 1898 +1826 1 1886 +1827 1 1887 +1835 1 1879 +1837 1 1873 +1845 1 1864 +1846 1 1867 +1856 2 1850 +1862 1 1852 +1863 1 1853 +1864 1 1842 +1866 1 1840 +187 1 177 +1870 1 1844 +188 1 182 +1880 1 1827 +1890 1 1818 +1892 1 1820 +1899 1 1811 +19 2 18 +1906 1 1803 +1910 1 1807 +1914 2 1795 +1926 1 2033 +1937 1 2023 +1940 1 2018 +1941 1 2019 +1948 3 2026 +1955 1 2006 +1965 1 2008 +1972 1 1984 +1981 1 1993 +1983 1 1995 +1987 1 1968 +1990 1 1973 +1995 1 1976 +1999 1 1980 +2001 1 1955 +2002 1 1952 +2004 1 1958 +2009 1 1963 +2011 1 1961 +2013 1 1967 +2016 1 1937 +2017 1 1936 +2020 2 1941 +2025 1 1944 +2026 1 1947 +2029 1 1948 +203 1 198 +204 1 193 +2046 1 1934 +2056 1 2200 +2067 1 2178 +2072 1 2185 +2073 1 2184 +2085 1 2231 +2089 1 2235 +2092 1 2238 +2105 1 2218 +2106 1 2217 +2108 1 2223 +213 2 217 +2131 1 2246 +2138 1 2255 +2140 1 2249 +2144 1 2294 +2155 1 2301 +2177 1 2072 +2179 1 2074 +2180 1 2077 +2183 1 2078 +2186 1 2067 +2187 1 2066 +2189 1 2068 +2193 2 2057 +2194 1 2058 +22 1 23 +2201 1 2049 +2205 1 2053 +2214 1 2109 +2217 1 2098 +2218 1 2097 +2223 1 2100 +2227 1 2089 +2229 1 2095 +2232 1 2082 +2241 1 2140 +2244 1 2137 +2255 1 2130 +2262 1 2122 +2264 1 2116 +2270 1 2114 +2274 1 2173 +2277 1 2170 +2279 1 2168 +228 1 235 +2283 1 2164 +2285 2 2162 +2295 1 2153 +2306 1 2432 +2320 1 2451 +2323 1 2448 +2325 2 2454 +2335 1 2460 +2341 1 2469 +2348 1 2476 +2358 1 2487 +236 1 227 +2373 1 2499 +238 1 225 +2386 1 2517 +2393 2 2526 +2398 1 2521 +2400 1 2532 +2410 1 2542 +2412 2 2536 +2420 1 2545 +2426 1 2559 +2434 1 2313 +244 1 250 +2461 1 2327 +2463 3 2325 +2465 1 2344 +2469 1 2348 +2475 1 2338 +2476 1 2341 +2485 2 2365 +2487 1 2367 +2492 1 2356 +2494 1 2358 +2502 1 2377 +2506 1 2373 +2509 1 2370 +2512 1 2398 +2514 1 2396 +2515 1 2397 +2517 1 2395 +2524 1 2386 +2533 1 2408 +2539 1 2406 +2540 1 2401 +255 1 241 +2551 1 2427 +2553 1 2421 +2560 2 2740 +2563 1 2743 +2565 1 2737 +2569 1 2749 +2579 1 2726 +2580 1 2721 +2587 1 2734 +259 1 273 +2599 1 2705 +2607 1 2713 +2608 1 2695 +2619 2 2700 +2625 1 2801 +2626 1 2802 +263 2 277 +2637 1 2813 +2647 1 2790 +2649 1 2792 +2662 1 2772 +2663 1 2773 +2675 1 2752 +268 2 286 +2680 1 2763 +2682 1 2761 +2688 1 2621 +2689 1 2620 +2692 1 2617 +2700 1 2609 +2712 1 2596 +2714 1 2598 +2715 2 2599 +2719 1 2595 +2724 1 2587 +2725 1 2586 +2735 1 2576 +2745 1 2567 +275 1 256 +2752 1 2681 +2762 1 2675 +2772 1 2668 +2776 1 2656 +2786 2 2649 +279 1 260 +2790 1 2653 +2791 1 2652 +2803 3 2633 +2805 1 2639 +281 1 266 +2810 1 2624 +2811 1 2625 +2816 1 2982 +2821 1 2979 +2824 1 2990 +2835 1 2996 +2842 1 3005 +2843 2 3004 +2846 1 3001 +2847 1 3000 +2848 1 2948 +2850 1 2950 +2855 2 2947 +2862 1 2954 +2878 1 2971 +2886 1 3044 +289 1 305 +2897 2 3058 +2900 1 3063 +2903 1 3060 +2905 1 3066 +2911 1 3068 +2915 1 3011 +2919 1 3015 +2933 2 3028 +2938 1 3035 +294 1 310 +2941 1 3036 +2942 1 3039 +296 2 312 +2962 1 2876 +2968 2 2870 +2971 1 2869 +2977 1 2828 +2979 1 2830 +2984 1 2821 +2986 1 2823 +2988 1 2817 +2991 1 2818 +3002 1 2838 +3006 1 2834 +301 1 317 +302 1 318 +3021 2 2918 +3024 1 2938 +3029 1 2943 +3031 1 2941 +3036 1 2934 +3043 1 2890 +3054 1 2887 +3055 1 2886 +3058 1 2906 +3059 1 2907 +3060 2 2908 +3067 1 2899 +3071 1 2903 +3073 1 3289 +3079 2 3295 +3083 1 3283 +3084 1 3284 +3089 1 3272 +3094 1 3279 +3103 1 3270 +311 1 294 +3111 1 3325 +3118 1 3316 +3119 1 3317 +3144 1 3220 +3147 1 3223 +3159 2 3210 +3163 1 3206 +3174 1 3256 +3183 1 3249 +3190 1 3241 +3197 1 3234 +3199 1 3232 +320 1 342 +3203 1 3154 +3206 1 3159 +3208 1 3161 +3212 1 3165 +3213 1 3164 +3231 1 3151 +3232 1 3187 +3235 1 3184 +3244 1 3199 +3245 1 3198 +3248 1 3170 +3249 1 3171 +3253 1 3175 +3255 1 3173 +3263 1 3181 +3286 1 3074 +3300 1 3123 +3307 1 3132 +3322 1 3116 +3333 1 3535 +3352 1 3539 +336 1 327 +3365 1 3565 +3366 1 3566 +3397 1 3467 +34 1 32 +3401 1 3463 +3407 1 3457 +3409 1 3486 +341 1 322 +3418 2 3477 +342 1 321 +3421 1 3474 +3430 1 3498 +3443 1 3518 +3446 1 3515 +345 1 334 +3456 1 3395 +346 2 333 +3460 1 3399 +3462 3 3397 +3467 2 3400 +347 1 332 +3472 1 3410 +3478 1 3412 +3493 1 3428 +350 1 329 +3507 1 3443 +3510 1 3446 +3512 1 3448 +3533 1 3338 +3534 1 3337 +3541 1 3347 +3542 1 3344 +355 1 375 +3554 1 3367 +3555 2 3366 +3563 1 3374 +3566 1 3371 +3567 1 3370 +3568 1 3380 +3579 1 3391 +3588 2 3832 +3599 1 3827 +3606 1 3819 +3608 1 3813 +3609 1 3812 +361 1 381 +3613 1 3808 +3622 2 3800 +3625 1 3799 +3630 1 3792 +3637 1 3786 +364 1 376 +3648 1 3768 +3663 1 3767 +3664 1 3753 +367 1 379 +3672 1 3745 +3673 1 3744 +3677 1 3748 +3680 1 3738 +3682 1 3736 +3690 1 3728 +3691 1 3729 +3701 1 3726 +3702 1 3725 +3703 1 3724 +3707 1 3712 +3722 1 3711 +3724 1 3705 +3725 2 3704 +3728 2 3684 +3739 1 3695 +3747 1 3668 +3749 1 3666 +375 1 354 +3755 1 3676 +3763 1 3653 +3764 1 3650 +3769 1 3663 +3770 2 3660 +378 1 367 +3781 2 3636 +3789 1 3644 +379 1 366 +3810 1 3601 +3812 1 3607 +3823 1 3612 +3824 1 3586 +383 2 362 +3830 1 3588 +3835 1 3593 +3841 1 4079 +3848 1 4070 +3858 1 4093 +3860 1 4091 +3866 2 4085 +3874 1 4046 +3879 1 4043 +388 1 415 +3887 1 4035 +3901 1 4048 +3904 1 4010 +3907 1 4009 +391 1 412 +3910 1 4012 +3911 1 4013 +3913 1 4003 +392 1 403 +3932 1 4023 +3940 1 3980 +3941 1 3981 +3945 1 3969 +3946 1 3970 +3949 1 3973 +3958 1 3999 +3960 1 3985 +3961 1 3984 +3962 1 3987 +3965 1 3988 +3974 2 3937 +3980 1 3947 +3990 1 3952 +4018 1 3926 +4020 1 3920 +4024 1 3932 +4030 1 3930 +4037 1 3878 +4051 1 3889 +4054 1 3892 +4056 1 3898 +4075 1 3850 +4078 1 3855 +4088 1 3864 +41 1 43 +412 2 390 +417 1 440 +425 1 432 +443 1 419 +454 1 473 +455 1 472 +462 1 465 +470 1 456 +471 1 457 +481 1 508 +482 1 511 +485 1 504 +489 1 500 +49 1 50 +490 1 503 +491 1 502 +5 1 5 +500 1 488 +501 2 489 +504 1 484 +522 1 558 +523 1 559 +524 1 552 +530 1 567 +535 1 562 +579 1 611 +583 1 615 +584 1 616 +586 1 618 +587 1 619 +590 1 622 +597 1 628 +601 1 632 +612 1 582 +615 1 581 +618 1 584 +65 1 69 +650 1 679 +658 1 702 +66 1 70 +661 2 697 +663 1 699 +664 1 692 +677 1 650 +68 1 64 +681 1 646 +687 1 640 +688 1 670 +690 1 668 +691 1 669 +6923604860394528768 1 730584 +6924820982050758656 1 559959 +6926925215281774592 1 756509 +6927260280037097472 1 592467 +6928080429732536320 1 537242 +6933001829416034304 1 63094 +6933451028794925056 1 490073 +6933731240564056064 1 464629 +6934570741217755136 1 816504 +694 1 664 +6947488599548215296 1 808811 +695 1 665 +6960137166475911168 1 72582 +6962726713896484864 1 615974 +6963217546192322560 1 880517 +6964585306125008896 1 546052 +6967631925774639104 1 465781 +6969599299897163776 1 90512 +6974475559697768448 1 826200 +6982145326341423104 1 1014055 +6987889924212203520 1 807336 +6991316084916879360 1 998779 +6996686091335884800 1 814215 +7006803044329021440 1 1027327 +7013693841855774720 1 342226 +7014537632150224896 1 142670 +7017956982081404928 1 109077 +7022349041913978880 1 757243 +7027529814236192768 1 765777 +7031339012080549888 1 753364 +7039820685967343616 1 157862 +7045967493826387968 1 799010 +7049773031131283456 1 732637 +7052226236896256000 1 742356 +7054271419461812224 1 300878 +7054938591408996352 1 747602 +7060236714847412224 1 255629 +7061498706968428544 1 447554 +7061809776248545280 1 190303 +7062382339142156288 1 536726 +7062605127422894080 1 277502 +7065344324692443136 1 907886 +7068517339681259520 1 540658 +7069729473166090240 1 589445 +707 1 746 +7077311975029555200 1 315178 +7078641038157643776 1 589217 +7080269176324218880 1 715070 +7084659344078970880 1 675706 +7086206629592252416 1 713306 +7091300332052062208 1 932160 +7099005292698550272 1 833671 +71 1 67 +7107604675626008576 1 304314 +7125231541858205696 1 760984 +7128222874437238784 1 537031 +7130159794259353600 1 390997 +7130306447560826880 1 214211 +7149417430082027520 1 124734 +7153922334283776000 1 844332 +7157247449513484288 1 906728 +7164349895861829632 1 61980 +7165364563962191872 1 987900 +7166263463731421184 1 54670 +7175638927948562432 1 406610 +7186401810812059648 1 806345 +7195454019231834112 1 687270 +7198687580227043328 1 1036694 +7199539820886958080 1 445755 +7204802700490858496 1 463140 +7210160489915236352 1 844609 +7212016545671348224 1 54766 +7212090742612467712 1 974972 +7217123582035116032 1 772583 +7220131672176058368 1 963517 +7220581538170413056 1 784952 +7223569671814987776 1 222621 +7226360892091416576 1 643643 +7229607057201127424 1 645792 +723 1 763 +7231399302953377792 1 159918 +7232273749940838400 1 715692 +7235109456886816768 1 580301 +7237310132329488384 1 689819 +7238339720750948352 1 754613 +724 1 764 +7242751359672631296 1 5090 +7249443195032985600 1 939221 +7250237407877382144 1 197380 +7254710367022645248 1 461920 +7255302164215013376 1 973936 +7259955893466931200 1 878192 +7260908278294560768 1 856345 +7265141874315517952 1 627095 +7266437490436341760 1 656748 +7271786885641666560 1 909902 +7271887863395459072 1 483670 +7274777328897802240 1 113064 +7291432593139507200 1 871445 +7295502697317097472 1 182497 +7295926343524163584 1 368151 +7296164580491075584 1 340611 +7299197687217856512 1 358325 +73 1 77 +7304839835188609024 1 502601 +7308289763456000000 1 1008996 +7309156463509061632 1 674557 +7310869618402910208 1 514100 +7319711402123149312 1 300388 +7333512171174223872 1 850609 +7339426767877390336 1 1018927 +7343171468838567936 1 1024454 +7344029858387820544 1 840469 +7345991518378442752 1 833286 +7347732772348870656 1 954842 +7348598907182800896 1 372632 +735 1 759 +7354813692542304256 1 349952 +7359004378440146944 1 41621 +736 1 715 +7368920486374989824 1 620928 +7370078518278397952 1 893944 +7370803940448305152 1 333101 +7375521127126089728 1 706755 +7376467688511455232 1 893866 +7378993334503694336 1 132145 +738 1 713 +7381659098423926784 1 339834 +7384150968511315968 1 487426 +7386087924003676160 1 83202 +7391208370547269632 1 367123 +7393308503950548992 1 704450 +7394967727502467072 1 976863 +7401968422230032384 1 858157 +7410096605330227200 1 418033 +7410872053689794560 1 717188 +7411793502161182720 1 1034970 +7412924364686458880 1 1027755 +7414865343000322048 1 302028 +7418271723644403712 1 780005 +743 1 716 +7432428551399669760 1 1001633 +7432998950057975808 1 134701 +7436133434239229952 1 957737 +7440265908266827776 1 850776 +7450416810848313344 1 45499 +7452756603516190720 1 837950 +7454442625055145984 1 604611 +7454632396542074880 1 51201 +7461153404961128448 1 635261 +7471208109437304832 1 197170 +7473537548003352576 1 698582 +7486884806277611520 1 669242 +7487338208419823616 1 144965 +7487538600082554880 1 403520 +7490717730239250432 1 328681 +7491898395977523200 1 776346 +7492436934952574976 1 601655 +7497276415392407552 1 494104 +7497306924248834048 1 1027769 +7500716020874674176 1 827935 +7514552840617558016 1 162992 +7517159036469575680 1 514484 +7524958388842078208 1 915053 +7528074274555305984 1 262471 +7528211148397944832 1 743300 +7534042483076857856 1 530333 +7534145866886782976 1 660478 +7534549597202194432 1 586963 +7545689659010949120 1 28599 +7548958830580563968 1 714910 +7549858023389003776 1 151638 +7555301305375858688 1 163995 +7566273236152721408 1 77130 +7569249672628789248 1 560812 +7570474972934488064 1 798158 +7573530789362262016 1 1031080 +7575087487730196480 1 722471 +7581052107944361984 1 543042 +7581614118458335232 1 913794 +7584007864107778048 1 837408 +7592440105065308160 1 824450 +7593521922173419520 1 126978 +7596563216912211968 1 645011 +7599019810193211392 1 12895 +7608447395949109248 1 753994 +7614435638888210432 1 739117 +7620183559667081216 1 746755 +7621013099259527168 1 947880 +7625728883085025280 1 518078 +7626715182847090688 1 274063 +763 1 721 +7637152193832886272 1 1004421 +7647481735646363648 1 1041596 +7648729477297987584 1 753564 +7652123583449161728 1 152604 +7659279803863146496 1 383570 +7662037650719850496 1 526279 +7675009476762918912 1 4632 +7678790769408172032 1 704642 +7682327310082531328 1 436916 +7686992843032010752 1 445287 +7689489436826804224 1 1025479 +7690986322714066944 1 444524 +7691062622443044864 1 916372 +7696737688942567424 1 817369 +7697541332524376064 1 33947 +7700734109530767360 1 108461 +7701723309715685376 1 949245 +7705445437881278464 1 954523 +7710447533880614912 1 950794 +7718825401976684544 1 544397 +7720187583697502208 1 920130 +7731443941834678272 1 450072 +7735566678126616576 1 552524 +774 1 816 +7741854854673367040 1 141534 +7746402369011277824 1 576798 +7747874976739016704 1 17512 +7748799008146366464 1 95770 +7752740515534422016 1 557886 +7753359568986636288 1 16812 +7753882935005880320 1 840415 +7761834341179375616 1 822430 +7762823913046556672 1 526433 +7765456790394871808 1 499395 +7768984605670604800 1 686791 +7775034125776363520 1 560433 +7778936842502275072 1 226945 +7779486624537370624 1 102128 +7779735136559579136 1 506814 +7782245855193874432 1 42401 +7784169796350730240 1 626893 +7784489776013295616 1 143139 +779 1 829 +7790728456522784768 1 554862 +7792036342592348160 1 728415 +7794244032613703680 1 620176 +78 1 74 +780 1 826 +7800332581637259264 1 1015835 +7801697837312884736 1 569926 +7818464507324121088 1 123780 +782 1 824 +7823874904139849728 1 718132 +784 1 807 +7843804446688264192 1 699467 +7844258063629852672 1 83061 +7845953007588401152 1 482362 +7857878068300898304 1 112828 +7868367829080506368 1 952311 +7870277756614623232 1 142176 +7871189141676998656 1 140302 +7871554728617025536 1 873600 +7874764415950176256 1 1006282 +7885697257930588160 1 383275 +7888238729321496576 1 978236 +789 1 802 +7892026679115554816 1 116356 +7892281003266408448 1 583905 +7898670840507031552 1 45182 +7909645665163804672 1 832371 +7917494645725765632 1 922043 +7919597361814577152 1 948505 +7921639119138070528 1 29178 +7922443154272395264 1 674691 +7926898770090491904 1 652550 +7933040277013962752 1 710305 +7936149988210212864 1 295842 +7944741547145502720 1 1024770 +7947544013461512192 1 227091 +7948803266578161664 1 344448 +7955126053367119872 1 965708 +7961515985722605568 1 1003035 +7961909238130270208 1 43315 +797 1 810 +7983789401706094592 1 1039886 +7989119273552158720 1 457404 +7989160253372817408 1 459569 +7997694023324975104 1 935789 +7998357471114969088 1 814113 +7998687089080467456 1 738927 +80 1 85 +8000440057238052864 1 718071 +8002769767000145920 1 466405 +8004633750273925120 1 964776 +8011181697250631680 1 395538 +8011602724663336960 1 700699 +8014986215157530624 1 272813 +8017403886247927808 1 861656 +803 1 791 +8045070943673671680 1 318621 +8048726769133592576 1 848906 +8059284960252731392 1 572227 +8069531888205086720 1 581496 +8071961599867387904 1 68390 +8073733016154431488 1 715717 +8079573715140485120 1 1018777 +808 1 796 +8087737899452432384 1 447707 +809 1 797 +8091421389575282688 1 215522 +8099215208813903872 1 973063 +8100036735858401280 1 1022773 +8109381965028548608 1 142942 +8111757081791733760 1 945379 +8113585123802529792 1 738847 +8116738401948377088 1 404958 +812 1 792 +8120593157178228736 1 310959 +8129551357032259584 1 1037801 +8135164922674872320 1 447909 +8142241016679735296 1 193700 +8143462899383345152 1 431870 +8144552446127972352 1 382697 +8145745969573666816 1 964535 +8145750910080745472 1 740076 +8146288732715196416 1 50592 +8146492373537660928 1 308929 +8148211378319933440 1 991694 +815 1 795 +8150115791664340992 1 623215 +8156018594610790400 1 644617 +8156782979767238656 1 1178 +8160569434550403072 1 648971 +8160662610166194176 1 845589 +8163948965373386752 1 343915 +8168742078705262592 1 145378 +8169878743136043008 1 929721 +8171188598958407680 1 801229 +8183233196086214656 1 343057 +8184799300477943808 1 387363 +8190539859890601984 1 143201 +8190967051000659968 1 953772 +8192304692696383488 1 12692 +8195103847607967744 1 287854 +8199513544090730496 1 836776 +820 2 769 +8201303040648052736 1 1028718 +8201491077550874624 1 827022 +8208354137450766336 1 614376 +8210813831744118784 1 375584 +8213810702473183232 1 121749 +8219326436390821888 1 139838 +8220104397160169472 1 19294 +8221561626658881536 1 608332 +8222714144797368320 1 811147 +8223732800007864320 1 76077 +823 1 770 +8230371298967609344 1 974706 +8235179243092090880 1 216255 +8244041599171862528 1 1042464 +8254763178969915392 1 432849 +8268875586442256384 1 28798 +8269730157217062912 1 175790 +8272001752345690112 1 329033 +8279056098670198784 1 791833 +8282648443538710528 1 781652 +8283099811330506752 1 685381 +8286706213485297664 1 929113 +8287522765741301760 1 681222 +8290014929764040704 1 272013 +8290944180915871744 1 519204 +8294315622451740672 1 123922 +8295110846998233088 1 652368 +83 1 86 +8302473563519950848 1 864712 +8316336224427483136 1 543159 +8323460620425330688 1 601902 +8325227661920133120 1 458034 +8332670681629106176 1 665056 +8333523087360901120 1 750597 +8337549596011102208 1 1039170 +8345435427356090368 1 1038915 +835 1 881 +8351163199364390912 1 569025 +8362046808797306880 1 609771 +8365058996333953024 1 721699 +8367680396909404160 1 249574 +8368012468775608320 1 329934 +837 1 887 +8371939471056470016 1 471054 +8372408423196270592 1 608114 +8372588378498777088 1 981735 +8374321007870836736 1 777815 +8376440110255243264 1 202113 +8383159090746204160 1 653724 +8388363436324085760 1 900656 +8391407951622815744 1 490239 +8391785334471589888 1 79909 +8396433451610652672 1 948162 +8398862954249560064 1 1039775 +8407869317250220032 1 995849 +8410599906334097408 1 68108 +8411494452500930560 1 679287 +8415171956168417280 1 839358 +8416121695917498368 1 266317 +8417381121663746048 1 466352 +8419958579638157312 1 587560 +8424515140664360960 1 907455 +8435912708683087872 1 459239 +845 1 895 +8451612303224520704 1 699278 +8454154705460666368 1 503095 +8455496814886002688 1 414796 +8457906374051020800 1 251328 +8461498293348065280 1 234407 +8463868417649524736 1 645795 +8467976965865799680 1 826992 +8470141334513098752 1 631794 +8472429318602268672 1 735762 +8473699639908261888 1 871600 +8487573502287478784 1 593968 +8489584373231919104 1 994595 +8489735221193138176 1 586871 +85 1 80 +8501910015960735744 1 508713 +8508401924853850112 1 276469 +8509508263705477120 1 205480 +8514851182589771776 1 488804 +8514979402185596928 1 1026793 +8515682078777081856 1 668808 +8518454006987948032 1 1012347 +8519937082746634240 1 384129 +8523972434954510336 1 549458 +8524940073536954368 1 362671 +8525336514806317056 1 477135 +8525894870444638208 1 680934 +8532016240026279936 1 188263 +8536948829863198720 1 536980 +8540237852367446016 1 219051 +8543177193114779648 1 168927 +8547243497773457408 1 604502 +8551446856960942080 1 454554 +8553195689344991232 1 220227 +8554899472487596032 1 448949 +8555933456197828608 1 541247 +8555948987770511360 1 622197 +8557218322962644992 1 207996 +8558000156325707776 1 696817 +8560526613401714688 1 840278 +8569030475428511744 1 316601 +8570983266408103936 1 892070 +8571268359622172672 1 642620 +8573305425181941760 1 110424 +8577096957495025664 1 491976 +8579974641030365184 1 10331 +8583916402383601664 1 30633 +8613562211893919744 1 777789 +8625937019655200768 1 529736 +8631515095562887168 1 787220 +8637720762289659904 1 686925 +8639254009546055680 1 334148 +8641221723991433216 1 183604 +8643198489997254656 1 15835 +8644602243484803072 1 68951 +8649296591032172544 1 744123 +8652485812846567424 1 910332 +8656571350884048896 1 252662 +8660248367767076864 1 850992 +8665969966920990720 1 571270 +8666178591503564800 1 314212 +8677632093825916928 1 260142 +8677794924343164928 1 65514 +868 1 852 +8682955459667951616 1 478492 +8687042963221159936 1 311279 +8688483860094599168 1 148744 +8693036785094565888 1 12401 +8697823501349609472 1 721296 +8698055291501543424 1 763800 +8708232769657815040 1 274663 +8708845895460577280 1 883124 +871 1 855 +8714829359200747520 1 905663 +8716401555586727936 1 140150 +8720504651219001344 1 447504 +8723248113030782976 1 798933 +873 1 857 +8731960288562044928 1 360618 +8734584858442498048 1 469319 +8736061027343859712 1 401079 +874 1 858 +8752150411997356032 1 87835 +8759089349412847616 1 643740 +8759184090543857664 1 177084 +8760285623204290560 1 35855 +8761174805938331648 1 358117 +8769199243315814400 1 633047 +8773222500321361920 1 60858 +8775009214012456960 1 896840 +8779073705407963136 1 1029474 +8779711700787298304 1 481895 +878 1 862 +8780196485890555904 1 723264 +8782900615468302336 1 736941 +8783241818558193664 1 955534 +8785153741735616512 1 38624 +8792059919353348096 1 388730 +8793387410919038976 1 413671 +8795069490394882048 1 161172 +8806507556248731648 1 934495 +8808467247666241536 1 250324 +8811693967537774592 1 192729 +8815398225009967104 1 403033 +8817665768680906752 1 984196 +8822384228057604096 1 237608 +8825059717746376704 1 695689 +8829545979081744384 1 27953 +883 1 834 +8836228556823977984 1 389447 +8837420822750314496 1 343421 +8849475396952514560 1 312394 +8850055384477401088 1 277929 +8853989376829833216 1 562049 +8854495099223375872 1 560584 +8854677881758162944 1 564180 +8854715632851345408 1 887990 +8856674723376668672 1 164762 +8868529429494071296 1 383779 +8871707618793996288 1 267203 +8875745082589929472 1 454473 +888 1 841 +8895174927321243648 1 167552 +8896237972875370496 1 694766 +8897901899039473664 1 340157 +8899122608190930944 1 935127 +8900180888218329088 1 449875 +8900351886974279680 1 568772 +8900545829211299840 1 220507 +8905330479248064512 1 461629 +8910706980937261056 1 577882 +8920344895701393408 1 98805 +8920533610804609024 1 43980 +8927691194719174656 1 557391 +8928133990107881472 1 929808 +8935252708196999168 1 851378 +8936639033158410240 1 940932 +8939431770838810624 1 460912 +8945004737083555840 1 650809 +8945302550165004288 1 991386 +8962097525980225536 1 517586 +8972161729142095872 1 873975 +8979012655944220672 1 982389 +898 2 957 +8983857919580209152 1 854339 +8983912573761167360 1 266226 +8984935029383389184 1 97090 +8987827141270880256 1 358254 +8991071342495531008 1 782556 +8991442360387584000 1 126917 +8994608999945125888 1 403830 +8995562121346260992 1 600152 +8996824426131390464 1 479057 +9000633029632499712 1 990746 +9001907486943993856 1 925734 +9005866015985713152 1 187716 +9016280522993975296 1 130598 +9020143715350814720 1 566165 +9023663198045544448 1 746959 +9030480306789818368 1 594077 +9038087402564657152 1 138959 +9040958359122640896 1 440680 +9043089884440068096 1 760918 +9048002942653710336 1 528041 +9048297564833079296 1 840207 +9050032047355125760 1 344303 +9053187076403060736 1 713093 +9054887854393950208 1 775193 +9062227900376203264 1 18575 +9064847977742032896 1 673064 +9067985867711291392 1 11936 +9073672806863790080 1 1021782 +9075404705968840704 1 550576 +9078604269481148416 1 876039 +908 1 947 +9083076230151864320 1 10058 +9083704659251798016 1 142244 +9084402694981533696 1 838830 +9085381906890203136 1 843143 +9085434340468473856 1 243444 +9086905513121890304 1 392759 +9089435102788009984 1 709132 +9091082386452684800 1 722058 +9091085792947666944 1 793313 +9094945190752903168 1 175453 +9096395849845194752 1 233348 +91 1 94 +9104574294205636608 1 145855 +9107991000536498176 1 70820 +9112400579327483904 1 107474 +9114850402293882880 1 16888 +9116137265342169088 1 721176 +9117063974299148288 1 890713 +9119046173224370176 1 936346 +9123116008004288512 1 895367 +913 1 943 +9131533983989358592 1 1012897 +9132009829414584320 1 196241 +9136234417125007360 1 713458 +9136548192574529536 1 919441 +9139805788041134080 1 144984 +914 1 940 +9148071980848742400 1 253597 +9149216169284091904 1 340801 +9165199002069458944 1 595500 +9169248521377374208 1 1026723 +917 1 939 +9174894805640142848 1 707735 +918 1 936 +9180098147855769600 1 100655 +9182828596851990528 1 570492 +9185458640237641728 1 513119 +9185952983951343616 1 1036979 +9188173682239275008 1 999792 +919 1 937 +9190466190353661952 1 650630 +9191943992860327936 1 321481 +9194388393453060096 1 663992 +9199741683232399360 1 660353 +9207107990561972224 1 622425 +9207927479837319168 1 84466 +9209153648361848832 1 521797 +921 1 935 +9211455920344088576 1 946254 +922 1 932 +923 1 933 +927 1 929 +928 1 925 +939 1 918 +94 1 91 +945 1 909 +947 1 911 +950 2 906 +958 1 898 +961 1 1018 +965 1 1022 +967 1 1020 +976 1 1002 +979 1 1001 +982 1 1004 +987 1 993 +997 1 988 +999 1 990 +NULL 83 NULL diff --git ql/src/test/results/clientpositive/vector_null_projection.q.out ql/src/test/results/clientpositive/vector_null_projection.q.out index bf3984f..49ac246 100644 --- ql/src/test/results/clientpositive/vector_null_projection.q.out +++ ql/src/test/results/clientpositive/vector_null_projection.q.out @@ -115,7 +115,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: null (type: void) mode: hash outputColumnNames: _col0 @@ -140,7 +139,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: null (type: void) mode: hash outputColumnNames: _col0 @@ -164,7 +162,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: void) mode: mergepartial outputColumnNames: _col0 diff --git ql/src/test/results/clientpositive/vector_orderby_5.q.out ql/src/test/results/clientpositive/vector_orderby_5.q.out index 9a72950..456749e 100644 --- ql/src/test/results/clientpositive/vector_orderby_5.q.out +++ ql/src/test/results/clientpositive/vector_orderby_5.q.out @@ -137,14 +137,14 @@ STAGE PLANS: Group By Operator aggregations: max(b) Group By Vectorization: - aggregators: VectorUDAFMaxLong(col 3) -> bigint - className: VectorGroupByOperator + className: VectorGroupByHashOneLongKeyOperator groupByMode: HASH vectorOutput: true keyExpressions: col 7 - native: false + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: bo (type: boolean) mode: hash outputColumnNames: _col0, _col1 @@ -181,7 +181,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: boolean) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/vector_outer_join1.q.out ql/src/test/results/clientpositive/vector_outer_join1.q.out index 70bce01..ca8bfe6 100644 --- ql/src/test/results/clientpositive/vector_outer_join1.q.out +++ ql/src/test/results/clientpositive/vector_outer_join1.q.out @@ -691,8 +691,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vector_outer_join2.q.out ql/src/test/results/clientpositive/vector_outer_join2.q.out index 2265cb8..0aafb0c 100644 --- ql/src/test/results/clientpositive/vector_outer_join2.q.out +++ ql/src/test/results/clientpositive/vector_outer_join2.q.out @@ -338,8 +338,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vector_outer_join3.q.out ql/src/test/results/clientpositive/vector_outer_join3.q.out index e4e4825..f66742b 100644 --- ql/src/test/results/clientpositive/vector_outer_join3.q.out +++ ql/src/test/results/clientpositive/vector_outer_join3.q.out @@ -242,7 +242,7 @@ left outer join small_alltypesorc_a hd on hd.cstring1 = c.cstring1 ) t1 POSTHOOK: type: QUERY -{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cint (type: int)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: int)","1":"_col0 (type: int)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"cstring1 (type: string)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","TableScan Vectorization:":{"native:":"true","projectedOutputColumns:":"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]"},"OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"cint (type: int), cstring1 (type: string)","outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumns:":"[2, 6]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: int)","1":"_col0 (type: int)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col1"],"Statistics:":"Num rows: 22 Data size: 4840 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","vectorOutput:":"true","native:":"false","vectorProcessingMode:":"HASH","projectedOutputColumns:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"groupByVectorOutput:":"true","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[2, 6]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"Group By Vectorization:":{"groupByMode:":"MERGEPARTIAL","vectorOutput:":"false","native:":"false","vectorProcessingMode:":"NONE","projectedOutputColumns:":"null"},"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} +{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cint (type: int)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: int)","1":"_col0 (type: int)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"cstring1 (type: string)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","TableScan Vectorization:":{"native:":"true","projectedOutputColumns:":"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]"},"OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"cint (type: int), cstring1 (type: string)","outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumns:":"[2, 6]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: int)","1":"_col0 (type: int)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col1"],"Statistics:":"Num rows: 22 Data size: 4840 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","vectorOutput:":"true","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.groupby.native.enabled IS true","Only Long Aggregation Columns IS true","NOT One Long Key Max Columns Exceeded IS true","NOT Empty Aggregations IS true","Can Specialize GroupBy issues [] empty IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false","NOT Empty Key IS false","One Long Key IS false"],"vectorProcessingMode:":"HASH","projectedOutputColumns:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"groupByVectorOutput:":"true","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[2, 6]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"Group By Vectorization:":{"groupByMode:":"MERGEPARTIAL","vectorOutput:":"false","native:":"false","vectorProcessingMode:":"NONE","projectedOutputColumns:":"null"},"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} PREHOOK: query: select count(*) from (select c.cstring1 from small_alltypesorc_a c left outer join small_alltypesorc_a cd @@ -282,7 +282,7 @@ left outer join small_alltypesorc_a hd on hd.cstring1 = c.cstring1 ) t1 POSTHOOK: type: QUERY -{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cstring2 (type: string)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"cstring1 (type: string)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: string)","1":"_col0 (type: string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","TableScan Vectorization:":{"native:":"true","projectedOutputColumns:":"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]"},"OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"cstring1 (type: string), cstring2 (type: string)","outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumns:":"[6, 7]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 22 Data size: 4840 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: string)","1":"_col0 (type: string)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","vectorOutput:":"true","native:":"false","vectorProcessingMode:":"HASH","projectedOutputColumns:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"groupByVectorOutput:":"true","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[6, 7]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"Group By Vectorization:":{"groupByMode:":"MERGEPARTIAL","vectorOutput:":"false","native:":"false","vectorProcessingMode:":"NONE","projectedOutputColumns:":"null"},"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} +{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cstring2 (type: string)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"cstring1 (type: string)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: string)","1":"_col0 (type: string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","TableScan Vectorization:":{"native:":"true","projectedOutputColumns:":"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]"},"OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"cstring1 (type: string), cstring2 (type: string)","outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumns:":"[6, 7]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: string)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 22 Data size: 4840 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: string)","1":"_col0 (type: string)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","vectorOutput:":"true","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.groupby.native.enabled IS true","Only Long Aggregation Columns IS true","NOT One Long Key Max Columns Exceeded IS true","NOT Empty Aggregations IS true","Can Specialize GroupBy issues [] empty IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false","NOT Empty Key IS false","One Long Key IS false"],"vectorProcessingMode:":"HASH","projectedOutputColumns:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"groupByVectorOutput:":"true","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[6, 7]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"Group By Vectorization:":{"groupByMode:":"MERGEPARTIAL","vectorOutput:":"false","native:":"false","vectorProcessingMode:":"NONE","projectedOutputColumns:":"null"},"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} PREHOOK: query: select count(*) from (select c.cstring1 from small_alltypesorc_a c left outer join small_alltypesorc_a cd @@ -322,7 +322,7 @@ left outer join small_alltypesorc_a hd on hd.cstring1 = c.cstring1 and hd.cint = c.cint ) t1 POSTHOOK: type: QUERY -{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cbigint (type: bigint), cstring2 (type: string)","outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: bigint), _col3 (type: string)","1":"_col0 (type: bigint), _col1 (type: string)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"cint (type: int), cstring1 (type: string)","outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: int), _col2 (type: string)","1":"_col0 (type: int), _col1 (type: string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","TableScan Vectorization:":{"native:":"true","projectedOutputColumns:":"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]"},"OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"cint (type: int), cbigint (type: bigint), cstring1 (type: string), cstring2 (type: string)","outputColumnNames:":["_col0","_col1","_col2","_col3"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumns:":"[2, 3, 6, 7]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: bigint), _col3 (type: string)","1":"_col0 (type: bigint), _col1 (type: string)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0","_col2"],"Statistics:":"Num rows: 22 Data size: 4840 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: int), _col2 (type: string)","1":"_col0 (type: int), _col1 (type: string)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","vectorOutput:":"true","native:":"false","vectorProcessingMode:":"HASH","projectedOutputColumns:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"groupByVectorOutput:":"true","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[2, 3, 6, 7]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"Group By Vectorization:":{"groupByMode:":"MERGEPARTIAL","vectorOutput:":"false","native:":"false","vectorProcessingMode:":"NONE","projectedOutputColumns:":"null"},"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} +{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cbigint (type: bigint), cstring2 (type: string)","outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: bigint), _col3 (type: string)","1":"_col0 (type: bigint), _col1 (type: string)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"cint (type: int), cstring1 (type: string)","outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: int), _col2 (type: string)","1":"_col0 (type: int), _col1 (type: string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","TableScan Vectorization:":{"native:":"true","projectedOutputColumns:":"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]"},"OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"cint (type: int), cbigint (type: bigint), cstring1 (type: string), cstring2 (type: string)","outputColumnNames:":["_col0","_col1","_col2","_col3"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumns:":"[2, 3, 6, 7]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: bigint), _col3 (type: string)","1":"_col0 (type: bigint), _col1 (type: string)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0","_col2"],"Statistics:":"Num rows: 22 Data size: 4840 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: int), _col2 (type: string)","1":"_col0 (type: int), _col1 (type: string)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","vectorOutput:":"true","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.groupby.native.enabled IS true","Only Long Aggregation Columns IS true","NOT One Long Key Max Columns Exceeded IS true","NOT Empty Aggregations IS true","Can Specialize GroupBy issues [] empty IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false","NOT Empty Key IS false","One Long Key IS false"],"vectorProcessingMode:":"HASH","projectedOutputColumns:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"groupByVectorOutput:":"true","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[2, 3, 6, 7]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"Group By Vectorization:":{"groupByMode:":"MERGEPARTIAL","vectorOutput:":"false","native:":"false","vectorProcessingMode:":"NONE","projectedOutputColumns:":"null"},"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} PREHOOK: query: select count(*) from (select c.cstring1 from small_alltypesorc_a c left outer join small_alltypesorc_a cd diff --git ql/src/test/results/clientpositive/vector_outer_join4.q.out ql/src/test/results/clientpositive/vector_outer_join4.q.out index 125ec07..1fd617d 100644 --- ql/src/test/results/clientpositive/vector_outer_join4.q.out +++ ql/src/test/results/clientpositive/vector_outer_join4.q.out @@ -780,7 +780,7 @@ left outer join small_alltypesorc_b hd on hd.ctinyint = c.ctinyint ) t1 POSTHOOK: type: QUERY -{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cint (type: int)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: int)","1":"_col0 (type: int)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: tinyint)","1":"_col0 (type: tinyint)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","TableScan Vectorization:":{"native:":"true","projectedOutputColumns:":"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]"},"OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint), cint (type: int)","outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumns:":"[0, 2]"},"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: int)","1":"_col0 (type: int)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 33 Data size: 7348 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: tinyint)","1":"_col0 (type: tinyint)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 36 Data size: 8082 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","vectorOutput:":"true","native:":"false","vectorProcessingMode:":"HASH","projectedOutputColumns:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"groupByVectorOutput:":"true","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[0, 2]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"Group By Vectorization:":{"groupByMode:":"MERGEPARTIAL","vectorOutput:":"false","native:":"false","vectorProcessingMode:":"NONE","projectedOutputColumns:":"null"},"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} +{"PLAN VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias -> Map Local Tables:":{"$hdt$_1:cd":{"Fetch Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cint (type: int)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_3","children":{"HashTable Sink Operator":{"keys:":{"0":"_col1 (type: int)","1":"_col0 (type: int)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_5","children":{"HashTable Sink Operator":{"keys:":{"0":"_col0 (type: tinyint)","1":"_col0 (type: tinyint)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","TableScan Vectorization:":{"native:":"true","projectedOutputColumns:":"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]"},"OperatorId:":"TS_0","children":{"Select Operator":{"expressions:":"ctinyint (type: tinyint), cint (type: int)","outputColumnNames:":["_col0","_col1"],"Select Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumns:":"[0, 2]"},"Statistics:":"Num rows: 30 Data size: 6680 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col1 (type: int)","1":"_col0 (type: int)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 33 Data size: 7348 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition map:":[{"":"Left Outer Join 0 to 1"}],"keys:":{"0":"_col0 (type: tinyint)","1":"_col0 (type: tinyint)"},"Map Join Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS true","Optimized Table and Supports Key Types IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 36 Data size: 8082 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By Operator":{"aggregations:":["count()"],"Group By Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> bigint"],"className:":"VectorGroupByOperator","groupByMode:":"HASH","vectorOutput:":"true","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.groupby.native.enabled IS true","Only Long Aggregation Columns IS true","NOT One Long Key Max Columns Exceeded IS true","NOT Empty Aggregations IS true","Can Specialize GroupBy issues [] empty IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false","NOT Empty Key IS false","One Long Key IS false"],"vectorProcessingMode:":"HASH","projectedOutputColumns:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"sort order:":"","Reduce Sink Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled IS true","No PTF TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe for keys IS true","LazyBinarySerDe for values IS true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","value expressions:":"_col0 (type: bigint)","OperatorId:":"RS_32"}}}}}}}}}}}}],"Execution mode:":"vectorized","Map Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format IS true"],"groupByVectorOutput:":"true","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[0, 2]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0"}},"Local Work:":{"Map Reduce Local Work":{}},"Reduce Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS false"]},"Reduce Operator Tree:":{"Group By Operator":{"aggregations:":["count(VALUE._col0)"],"Group By Vectorization:":{"groupByMode:":"MERGEPARTIAL","vectorOutput:":"false","native:":"false","vectorProcessingMode:":"NONE","projectedOutputColumns:":"null"},"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch Operator":{"limit:":"-1","Processor Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}} PREHOOK: query: select count(*) from (select c.ctinyint from small_alltypesorc_b c left outer join small_alltypesorc_b cd diff --git ql/src/test/results/clientpositive/vector_outer_reference_windowed.q.out ql/src/test/results/clientpositive/vector_outer_reference_windowed.q.out index d611103..a0d77de 100644 --- ql/src/test/results/clientpositive/vector_outer_reference_windowed.q.out +++ ql/src/test/results/clientpositive/vector_outer_reference_windowed.q.out @@ -161,8 +161,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function sum on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE @@ -351,8 +354,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function sum on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: c1 (type: decimal(15,2)), c2 (type: decimal(15,2)) mode: hash outputColumnNames: _col0, _col1, _col2 diff --git ql/src/test/results/clientpositive/vector_reduce_groupby_decimal.q.out ql/src/test/results/clientpositive/vector_reduce_groupby_decimal.q.out index f90100d..7c7aaff 100644 --- ql/src/test/results/clientpositive/vector_reduce_groupby_decimal.q.out +++ ql/src/test/results/clientpositive/vector_reduce_groupby_decimal.q.out @@ -63,8 +63,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1, col 2, col 3 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: cint (type: int), cdouble (type: double), cdecimal1 (type: decimal(20,10)), cdecimal2 (type: decimal(23,14)) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4 @@ -102,7 +103,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: int), KEY._col1 (type: double), KEY._col2 (type: decimal(20,10)), KEY._col3 (type: decimal(23,14)) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4 diff --git ql/src/test/results/clientpositive/vector_string_concat.q.out ql/src/test/results/clientpositive/vector_string_concat.q.out index 9f6fe7d..beef804 100644 --- ql/src/test/results/clientpositive/vector_string_concat.q.out +++ ql/src/test/results/clientpositive/vector_string_concat.q.out @@ -350,8 +350,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 19 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH - projectedOutputColumns: [] keys: _col0 (type: string) mode: hash outputColumnNames: _col0 @@ -387,7 +388,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: string) mode: mergepartial outputColumnNames: _col0 diff --git ql/src/test/results/clientpositive/vector_when_case_null.q.out ql/src/test/results/clientpositive/vector_when_case_null.q.out index e002336..375e5bf 100644 --- ql/src/test/results/clientpositive/vector_when_case_null.q.out +++ ql/src/test/results/clientpositive/vector_when_case_null.q.out @@ -56,8 +56,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] keys: _col0 (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -94,7 +95,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: string) mode: mergepartial outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/vector_windowing.q.out ql/src/test/results/clientpositive/vector_windowing.q.out index 12cd4cc..eb43661 100644 --- ql/src/test/results/clientpositive/vector_windowing.q.out +++ ql/src/test/results/clientpositive/vector_windowing.q.out @@ -214,8 +214,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2, col 1, col 5 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {MIN_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: p_mfgr (type: string), p_name (type: string), p_size (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 @@ -414,8 +418,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2, col 1, col 5 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {MIN_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: p_mfgr (type: string), p_name (type: string), p_size (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 @@ -3582,8 +3590,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1, col 2, col 5, col 7 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1] + runtimeHashAggrOutputInfos: {MIN_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 2, MAX_FUNC:1, PRIMITIVE, DOUBLE, aggrOffset: 3} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 keys: p_name (type: string), p_mfgr (type: string), p_size (type: int), p_retailprice (type: double) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 @@ -4253,8 +4265,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2, col 3 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {SUM_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: p_mfgr (type: string), p_brand (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -5722,8 +5738,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2, col 1, col 5 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {MIN_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: p_mfgr (type: string), p_name (type: string), p_size (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 diff --git ql/src/test/results/clientpositive/vector_windowing_gby2.q.out ql/src/test/results/clientpositive/vector_windowing_gby2.q.out index b063d3a..b47f939 100644 --- ql/src/test/results/clientpositive/vector_windowing_gby2.q.out +++ ql/src/test/results/clientpositive/vector_windowing_gby2.q.out @@ -45,8 +45,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {SUM_FUNC:0, PRIMITIVE, LONG, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: key (type: string) mode: hash outputColumnNames: _col0, _col1 @@ -252,8 +256,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 5 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type BYTES] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: _col0 (type: int) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -458,8 +465,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3] + runtimeHashAggrOutputInfos: {SUM_FUNC:0, PRIMITIVE, DOUBLE, aggrOffset: 3, SUM_FUNC:1, PRIMITIVE, DOUBLE, aggrOffset: 4, MAX_FUNC:2, PRIMITIVE, LONG, aggrOffset: 2, SUM_FUNC:3, PRIMITIVE, DOUBLE, aggrOffset: 5} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 keys: _col0 (type: string), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 diff --git ql/src/test/results/clientpositive/vectorization_1.q.out ql/src/test/results/clientpositive/vectorization_1.q.out index 9c2ce2a..9336dea 100644 --- ql/src/test/results/clientpositive/vectorization_1.q.out +++ ql/src/test/results/clientpositive/vectorization_1.q.out @@ -81,8 +81,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function var_pop on column vector type LONG, Cannot specialize aggregation function var_samp on column vector type DOUBLE] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4, 5] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 Statistics: Num rows: 1 Data size: 184 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vectorization_12.q.out ql/src/test/results/clientpositive/vectorization_12.q.out index df3f047..f02a217 100644 --- ql/src/test/results/clientpositive/vectorization_12.q.out +++ ql/src/test/results/clientpositive/vectorization_12.q.out @@ -105,8 +105,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 5, col 3, col 6, col 10 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type LONG, Cannot specialize aggregation function stddev_pop on column vector type DOUBLE] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 keys: cdouble (type: double), cbigint (type: bigint), cstring1 (type: string), cboolean1 (type: boolean) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 diff --git ql/src/test/results/clientpositive/vectorization_13.q.out ql/src/test/results/clientpositive/vectorization_13.q.out index 5852972..59674ba 100644 --- ql/src/test/results/clientpositive/vectorization_13.q.out +++ ql/src/test/results/clientpositive/vectorization_13.q.out @@ -107,8 +107,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 10, col 0, col 8, col 4, col 6 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_pop on column vector type DOUBLE, Cannot specialize aggregation function stddev_pop on column vector type LONG] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4, 5] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 keys: cboolean1 (type: boolean), ctinyint (type: tinyint), ctimestamp1 (type: timestamp), cfloat (type: float), cstring1 (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10 @@ -441,8 +444,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 10, col 0, col 8, col 4, col 6 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_pop on column vector type DOUBLE, Cannot specialize aggregation function stddev_pop on column vector type LONG] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5] keys: cboolean1 (type: boolean), ctinyint (type: tinyint), ctimestamp1 (type: timestamp), cfloat (type: float), cstring1 (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10 @@ -479,7 +483,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: boolean), KEY._col1 (type: tinyint), KEY._col2 (type: timestamp), KEY._col3 (type: float), KEY._col4 (type: string) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10 diff --git ql/src/test/results/clientpositive/vectorization_14.q.out ql/src/test/results/clientpositive/vectorization_14.q.out index c6bd7cf..d2b98a2 100644 --- ql/src/test/results/clientpositive/vectorization_14.q.out +++ ql/src/test/results/clientpositive/vectorization_14.q.out @@ -108,8 +108,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 6, col 4, col 5, col 8, col 10 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type DOUBLE, Cannot specialize aggregation function stddev_pop on column vector type DOUBLE, Cannot specialize aggregation function var_pop on column vector type DOUBLE, Cannot specialize aggregation function var_samp on column vector type DOUBLE] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4, 5] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 keys: _col2 (type: string), _col1 (type: float), _col4 (type: double), _col0 (type: timestamp), _col3 (type: boolean) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10 diff --git ql/src/test/results/clientpositive/vectorization_15.q.out ql/src/test/results/clientpositive/vectorization_15.q.out index 8f0a879..d31b4ec 100644 --- ql/src/test/results/clientpositive/vectorization_15.q.out +++ ql/src/test/results/clientpositive/vectorization_15.q.out @@ -103,8 +103,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 4, col 10, col 5, col 6, col 0, col 2, col 8 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type DOUBLE, Cannot specialize aggregation function stddev_samp on column vector type LONG, Cannot specialize aggregation function var_pop on column vector type LONG, Cannot specialize aggregation function var_samp on column vector type LONG, Cannot specialize aggregation function stddev_pop on column vector type LONG] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4, 5] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: cfloat (type: float), cboolean1 (type: boolean), cdouble (type: double), cstring1 (type: string), ctinyint (type: tinyint), cint (type: int), ctimestamp1 (type: timestamp) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12 diff --git ql/src/test/results/clientpositive/vectorization_16.q.out ql/src/test/results/clientpositive/vectorization_16.q.out index 930b476..5cd3668 100644 --- ql/src/test/results/clientpositive/vectorization_16.q.out +++ ql/src/test/results/clientpositive/vectorization_16.q.out @@ -80,8 +80,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 5, col 6, col 8 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type DOUBLE] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 keys: cdouble (type: double), cstring1 (type: string), ctimestamp1 (type: timestamp) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 diff --git ql/src/test/results/clientpositive/vectorization_2.q.out ql/src/test/results/clientpositive/vectorization_2.q.out index 47ff8d4..5aa3bb8 100644 --- ql/src/test/results/clientpositive/vectorization_2.q.out +++ ql/src/test/results/clientpositive/vectorization_2.q.out @@ -85,8 +85,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function var_pop on column vector type LONG] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4, 5] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 9 mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 Statistics: Num rows: 1 Data size: 256 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vectorization_3.q.out ql/src/test/results/clientpositive/vectorization_3.q.out index a730ca6..1efd3c5 100644 --- ql/src/test/results/clientpositive/vectorization_3.q.out +++ ql/src/test/results/clientpositive/vectorization_3.q.out @@ -90,8 +90,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type LONG, Cannot specialize aggregation function stddev_pop on column vector type LONG, Cannot specialize aggregation function stddev_samp on column vector type DOUBLE, Cannot specialize aggregation function stddev_pop on column vector type LONG] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4, 5] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 5 mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 Statistics: Num rows: 1 Data size: 404 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vectorization_4.q.out ql/src/test/results/clientpositive/vectorization_4.q.out index 0199d7d..fd089ac 100644 --- ql/src/test/results/clientpositive/vectorization_4.q.out +++ ql/src/test/results/clientpositive/vectorization_4.q.out @@ -85,8 +85,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_pop on column vector type DOUBLE, Cannot specialize aggregation function var_pop on column vector type DOUBLE] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 6 mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4 Statistics: Num rows: 1 Data size: 252 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vectorization_5.q.out ql/src/test/results/clientpositive/vectorization_5.q.out index 33707c7..3c9d6ae 100644 --- ql/src/test/results/clientpositive/vectorization_5.q.out +++ ql/src/test/results/clientpositive/vectorization_5.q.out @@ -79,8 +79,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 7 mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4 Statistics: Num rows: 1 Data size: 28 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vectorization_9.q.out ql/src/test/results/clientpositive/vectorization_9.q.out index 930b476..5cd3668 100644 --- ql/src/test/results/clientpositive/vectorization_9.q.out +++ ql/src/test/results/clientpositive/vectorization_9.q.out @@ -80,8 +80,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 5, col 6, col 8 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function stddev_samp on column vector type DOUBLE] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 keys: cdouble (type: double), cstring1 (type: string), ctimestamp1 (type: timestamp) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 diff --git ql/src/test/results/clientpositive/vectorization_limit.q.out ql/src/test/results/clientpositive/vectorization_limit.q.out index b46e6ef..761419e 100644 --- ql/src/test/results/clientpositive/vectorization_limit.q.out +++ ql/src/test/results/clientpositive/vectorization_limit.q.out @@ -227,8 +227,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {AVG_FUNC:0, AVERAGE_DOUBLE, countAggrOffset: 2, sumAggrOffset: 3} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 keys: _col0 (type: tinyint) mode: hash outputColumnNames: _col0, _col1 @@ -361,8 +365,13 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Aggregations IS false vectorProcessingMode: HASH projectedOutputColumns: [] + runtimeHashAggrOutputInfos: {} + runtimeHashAggregateColumns: {} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 keys: ctinyint (type: tinyint) mode: hash outputColumnNames: _col0 @@ -494,6 +503,8 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 0, col 5 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false vectorProcessingMode: HASH projectedOutputColumns: [0] keys: ctinyint (type: tinyint), cdouble (type: double) @@ -656,8 +667,12 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 5 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, One Long Key IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + runtimeHashAggrOutputInfos: {SUM_FUNC:0, PRIMITIVE, LONG, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 3 keys: cdouble (type: double) mode: hash outputColumnNames: _col0, _col1 diff --git ql/src/test/results/clientpositive/vectorized_case.q.out ql/src/test/results/clientpositive/vectorized_case.q.out index 0a2e803..7748b81 100644 --- ql/src/test/results/clientpositive/vectorized_case.q.out +++ ql/src/test/results/clientpositive/vectorized_case.q.out @@ -279,8 +279,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1] mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE @@ -314,7 +315,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE @@ -394,8 +394,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1] mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE @@ -429,7 +430,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vectorized_date_funcs.q.out ql/src/test/results/clientpositive/vectorized_date_funcs.q.out index b7ac3f9..83db523 100644 --- ql/src/test/results/clientpositive/vectorized_date_funcs.q.out +++ ql/src/test/results/clientpositive/vectorized_date_funcs.q.out @@ -1242,8 +1242,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3] mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 128 Basic stats: COMPLETE Column stats: NONE @@ -1277,7 +1278,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 128 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vectorized_distinct_gby.q.out ql/src/test/results/clientpositive/vectorized_distinct_gby.q.out index 1fe1c69..7ba50a7 100644 --- ql/src/test/results/clientpositive/vectorized_distinct_gby.q.out +++ ql/src/test/results/clientpositive/vectorized_distinct_gby.q.out @@ -52,14 +52,17 @@ STAGE PLANS: aggregations: sum(DISTINCT a), count(DISTINCT a) bucketGroup: true Group By Vectorization: - aggregators: VectorUDAFSumLong(col 0) -> bigint, VectorUDAFCount(col 0) -> bigint - className: VectorGroupByOperator + className: VectorGroupByHashOneLongKeyOperator groupByMode: HASH vectorOutput: true keyExpressions: col 0 - native: false + native: true + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1] + runtimeHashAggrOutputInfos: {SUM_FUNC:0, PRIMITIVE, LONG, aggrOffset: 3, COUNT_FUNC:1, PRIMITIVE, LONG, aggrOffset: 2} + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 4 keys: a (type: int) mode: hash outputColumnNames: _col0, _col1, _col2 @@ -167,8 +170,11 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 2 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function std on column vector type LONG] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 5 keys: cint (type: int) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4 diff --git ql/src/test/results/clientpositive/vectorized_mapjoin.q.out ql/src/test/results/clientpositive/vectorized_mapjoin.q.out index b915e87..f7b12e3 100644 --- ql/src/test/results/clientpositive/vectorized_mapjoin.q.out +++ ql/src/test/results/clientpositive/vectorized_mapjoin.q.out @@ -93,8 +93,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3] mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: NONE @@ -130,7 +131,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vectorized_mapjoin2.q.out ql/src/test/results/clientpositive/vectorized_mapjoin2.q.out index 1127f8a..c6a0544 100644 --- ql/src/test/results/clientpositive/vectorized_mapjoin2.q.out +++ ql/src/test/results/clientpositive/vectorized_mapjoin2.q.out @@ -111,8 +111,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, Only Long Aggregation Columns IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true, Can Specialize GroupBy issues [] empty IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -148,7 +149,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vectorized_parquet_types.q.out ql/src/test/results/clientpositive/vectorized_parquet_types.q.out index e096c72..7dfc784 100644 --- ql/src/test/results/clientpositive/vectorized_parquet_types.q.out +++ ql/src/test/results/clientpositive/vectorized_parquet_types.q.out @@ -357,8 +357,9 @@ STAGE PLANS: vectorOutput: true keyExpressions: col 1 native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT Empty Key IS true, One Long Key IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function count on column vector type BYTES, Cannot specialize aggregation function stddev_pop on column vector type DOUBLE, Cannot specialize aggregation function max on column vector type DECIMAL] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5] keys: ctinyint (type: tinyint) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6 @@ -395,7 +396,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null keys: KEY._col0 (type: tinyint) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6 diff --git ql/src/test/results/clientpositive/vectorized_shufflejoin.q.out ql/src/test/results/clientpositive/vectorized_shufflejoin.q.out index d1d5e55..abde535 100644 --- ql/src/test/results/clientpositive/vectorized_shufflejoin.q.out +++ ql/src/test/results/clientpositive/vectorized_shufflejoin.q.out @@ -77,7 +77,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: NONE @@ -125,7 +124,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 92 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vectorized_timestamp.q.out ql/src/test/results/clientpositive/vectorized_timestamp.q.out index e229215..ba8fe09 100644 --- ql/src/test/results/clientpositive/vectorized_timestamp.q.out +++ ql/src/test/results/clientpositive/vectorized_timestamp.q.out @@ -134,8 +134,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type TIMESTAMP, Cannot specialize aggregation function max on column vector type TIMESTAMP] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 mode: hash outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 80 Basic stats: COMPLETE Column stats: NONE @@ -324,8 +327,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type TIMESTAMP] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE @@ -435,8 +441,11 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function variance on column vector type TIMESTAMP, Cannot specialize aggregation function var_pop on column vector type TIMESTAMP, Cannot specialize aggregation function var_samp on column vector type TIMESTAMP, Cannot specialize aggregation function std on column vector type TIMESTAMP, Cannot specialize aggregation function stddev on column vector type TIMESTAMP, Cannot specialize aggregation function stddev_pop on column vector type TIMESTAMP, Cannot specialize aggregation function stddev_samp on column vector type TIMESTAMP] empty IS false vectorProcessingMode: HASH projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6] + hashAggregationElementInfo: keyOffset 1, aggrBaseOffset 2, hashEleFixedLongLength 2 mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6 Statistics: Num rows: 1 Data size: 560 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vectorized_timestamp_funcs.q.out ql/src/test/results/clientpositive/vectorized_timestamp_funcs.q.out index 4bb3564..df23526 100644 --- ql/src/test/results/clientpositive/vectorized_timestamp_funcs.q.out +++ ql/src/test/results/clientpositive/vectorized_timestamp_funcs.q.out @@ -734,8 +734,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function min on column vector type TIMESTAMP, Cannot specialize aggregation function max on column vector type TIMESTAMP, Cannot specialize aggregation function count on column vector type TIMESTAMP] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3] mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 96 Basic stats: COMPLETE Column stats: NONE @@ -769,7 +770,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 96 Basic stats: COMPLETE Column stats: NONE @@ -848,8 +848,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function sum on column vector type TIMESTAMP] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0] mode: hash outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -883,7 +884,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE @@ -974,8 +974,9 @@ STAGE PLANS: groupByMode: HASH vectorOutput: true native: false + nativeConditionsMet: hive.vectorized.execution.groupby.native.enabled IS true, NOT One Long Key Max Columns Exceeded IS true, NOT Empty Aggregations IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, NOT Empty Key IS false, One Long Key IS false, Only Long Aggregation Columns IS false, Can Specialize GroupBy issues [Cannot specialize aggregation function avg on column vector type TIMESTAMP, Cannot specialize aggregation function variance on column vector type TIMESTAMP, Cannot specialize aggregation function var_pop on column vector type TIMESTAMP, Cannot specialize aggregation function var_samp on column vector type TIMESTAMP, Cannot specialize aggregation function std on column vector type TIMESTAMP, Cannot specialize aggregation function stddev on column vector type TIMESTAMP, Cannot specialize aggregation function stddev_pop on column vector type TIMESTAMP, Cannot specialize aggregation function stddev_samp on column vector type TIMESTAMP] empty IS false vectorProcessingMode: HASH - projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7] mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 Statistics: Num rows: 1 Data size: 672 Basic stats: COMPLETE Column stats: NONE @@ -1009,7 +1010,6 @@ STAGE PLANS: vectorOutput: false native: false vectorProcessingMode: NONE - projectedOutputColumns: null mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 Statistics: Num rows: 1 Data size: 672 Basic stats: COMPLETE Column stats: NONE diff --git vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java index b87ec55..6c7c46c 100644 --- vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java +++ vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java @@ -26,8 +26,10 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import org.apache.tools.ant.BuildException; @@ -1147,6 +1149,34 @@ {"VectorUDAFVarMerge", "VectorUDAFVarSampFinal", "FINAL,VARIANCE_SAMPLE"}, {"VectorUDAFVarMerge", "VectorUDAFStdPopFinal", "FINAL,STD"}, {"VectorUDAFVarMerge", "VectorUDAFStdSampFinal", "FINAL,STD_SAMPLE"}, + + // VectorGroupBy template, [ , ] + + // Count any kind of column type + // {"AggrColCountOnly"}, + + {"AggrColHashLong", "Long"}, + + // Generate classes for the permutation of aggregation functions. + // + // AVG(LONG) will use DOUBLE_SUM and COUNT. + // VARIANCE flavors on LONG will use DOUBLE_SUM, COUNT, and DOUBLE_VARIANCE. + // + {"AggrColHashLongClasses", "Long", "COUNT,LONG_MIN,LONG_MAX,LONG_SUM,DOUBLE_SUM,DOUBLE_VARIANCE"}, + {"AggrColHashLongClasses", "Long", "COUNT,LONG_MIN,LONG_MAX,LONG_SUM,DOUBLE_SUM,DOUBLE_VARIANCE"}, + {"AggrColHashLongClasses", "Long", "COUNT,LONG_MIN,LONG_MAX,LONG_SUM,DOUBLE_SUM,DOUBLE_VARIANCE"}, + + // {"AggrCol", "Double", "DoubleMin,DoubleMax,DoubleSum,Count,Variance"}, + // {"AggrCol", "Decimal", "DecimalMin,DecimalMax,DecimalSum,Count,Variance"}, + + {"AggrColStreamingLong", "Long", "COUNT,LONG_MIN,LONG_MAX,LONG_SUM,DOUBLE_SUM,DOUBLE_VARIANCE"}, + + // Generate map from aggregation function permutations to column aggregation class. + {"AggrColMap", "Long", "COUNT,LONG_MIN,LONG_MAX,LONG_SUM,DOUBLE_SUM,DOUBLE_VARIANCE"}, + // {"AggrColMap", "Double", "DoubleMin,DoubleMax,DoubleSum,Count,Variance"}, + // {"AggrColMap", "Decimal", "DecimalMin,DecimalMax,DecimalSum,Count,Variance"}, + + {"GroupByHashLongOperator", "Long"}, }; @@ -1156,9 +1186,19 @@ private String expressionOutputDirectory; private String expressionClassesDirectory; private String expressionTemplateDirectory; + private String udafOutputDirectory; private String udafClassesDirectory; private String udafTemplateDirectory; + + private String groupByAggregationOutputDirectory; + private String groupByAggregationClassesDirectory; + private String groupByAggregationTemplateDirectory; + + private String groupByOperatorOutputDirectory; + private String groupByOperatorClassesDirectory; + private String groupByOperatorTemplateDirectory; + private GenVectorTestCode testCodeGen; static String joinPath(String...parts) { @@ -1195,6 +1235,26 @@ public void init(String templateBaseDir, String buildDir) { udafTemplateDirectory = joinPath(generationDirectory.getAbsolutePath(), "UDAFTemplates"); + String groupByAggregation = joinPath("org", "apache", "hadoop", + "hive", "ql", "exec", "vector", "groupby", "aggregation", "gen"); + File groupByAggregationOutput = new File(joinPath(buildPath, groupByAggregation)); + File groupByAggregationClasses = new File(joinPath(compiledPath, groupByAggregation)); + groupByAggregationOutputDirectory = groupByAggregationOutput.getAbsolutePath(); + groupByAggregationClassesDirectory = groupByAggregationClasses.getAbsolutePath(); + + groupByAggregationTemplateDirectory = + joinPath(generationDirectory.getAbsolutePath(), "GroupByAggregationTemplates"); + + String groupByOperator = joinPath("org", "apache", "hadoop", + "hive", "ql", "exec", "vector", "groupby", "operator", "gen"); + File groupByOperatorOutput = new File(joinPath(buildPath, groupByOperator)); + File groupByOperatorClasses = new File(joinPath(compiledPath, groupByOperator)); + groupByOperatorOutputDirectory = groupByOperatorOutput.getAbsolutePath(); + groupByOperatorClassesDirectory = groupByOperatorClasses.getAbsolutePath(); + + groupByOperatorTemplateDirectory = + joinPath(generationDirectory.getAbsolutePath(), "GroupByOperatorTemplates"); + File testCodeOutput = new File( joinPath(buildDir, "generated-test-sources", "java", "org", @@ -1402,6 +1462,18 @@ private void generate() throws Exception { } else if (tdesc[0].equals("TimestampArithmeticDate")) { generateTimestampArithmeticDate(tdesc); + } else if (tdesc[0].equals("AggrColCountOnly")) { + generateAggrColCountOnly(tdesc); + } else if (tdesc[0].equals("AggrColHashLong")) { + generateAggrColHash(tdesc); + } else if (tdesc[0].equals("AggrColHashLongClasses")) { + generateAggrColHashClasses(tdesc); + } else if (tdesc[0].equals("AggrColStreamingLong")) { + generateAggrColStreaming(tdesc); + } else if (tdesc[0].equals("AggrColMap")) { + generateAggrColMap(tdesc); + } else if (tdesc[0].equals("GroupByHashLongOperator")) { + generateGroupByHashOperator(tdesc); } else { continue; } @@ -3295,6 +3367,766 @@ private static boolean isTimestampIntervalType(String type) { || type.equals("interval_day_time")); } + /** + * + * These comments cover the class generation for Vector GROUP BY. + * + * Class are generated to calculate specific sets of aggregations for a vector column for + * a hash table entry. + * + * For example, VectorGroupByAggrColLongNonSelectedNoNullsMinCountSum in the generated + * package org.apache.hadoop.hive.ql.exec.vector.groupby.aggregation.gen will do aggregation + * for the MIN, COUNT(column), and SUM aggregation functions on a LongColumnVector. + * + * The base abstract class is VectorGroupByAggrCol. The apply method will perform the + * aggregations for consecutive rows that all have the same key. The hash table entry + * (already looked up) passes the first aggregation offset to calculate with using the + * colBaseAggrLongIndex parameter. + * + * The pattern in the class name is: + * VectorGroupByAggrCol + + + + * e.g. VectorGroupByAggrCol + Long NonSelectedNoNulls MinCountSum + * + * Current vector column types are Long and Double. + * + * NOTE: The columns are non-key columns. Since key columns are equal for the hash table entry, + * their aggregation is trivial and handled in general classes in the VectorGroupByCommonOutput + * class at hash table flush time (not hash key lookup time). + * + * Since a batch's (input) column has fixed flags for isRepeated, selectedInUse, and noNulls -- + * we determine the batch variation at the beginning of processing a batch. For better + * performance we do not want to have to check those fixed flags inside our column aggregation + * function each time. + * + * The simplest batch variation is RepeatingNoNulls. Vector entry 0 is defined for isRepeating + * to be the value for the whole column (regardless of the selected array). + * + * SelectedNulls is perhaps the most complicated because it has to go through the selected array + * to get to each row and has to then check for null. + * + * Classes are generated by the AggrCol.txt templates. + * + * ----------------------------------------------------------------------------------------------- + * + * Since a COUNT(column) by itself can operate on any ColumnVector, those generated classes + * have the form without the : + * VectorGroupByAggrCol + + Count + * + * It is generated by the AggrColCount.txt templates. + * The code for just a COUNT(column) is simpler than that mix in MIN, MAX, SUM, etc. + * + * ----------------------------------------------------------------------------------------------- + * + * The AggrColMap template is used to generate a mapping from a number that represents + * the set of aggregation functions (MIN, MAX, SUM) to an array of the batch variation classes + * that will do the aggregation(s). + * + * ----------------------------------------------------------------------------------------------- + * + * The aggregations functions are ordered so map lookup will work and so the aggregation + * calculations can be done in the same order in all classes so the aggregation offsets are + * deterministic. That is, MIN will always be done before a MAX (if there is one) and + * MAX before COUNT, etc. + * + * So that is why we generate ordered permutations below. + * + */ + + // NOTE: Copy of enums from VectorGroupByAggrCol since we can't reference the definition here from + // this point in the project... + + public static enum ColumnVectorType { + NONE ("None"), // Useful when the type of column vector has not be determined yet. + LONG ("Long"), + DOUBLE ("Double"), + BYTES ("Bytes"), + DECIMAL ("Decimal"), + TIMESTAMP ("Timestamp"), + INTERVAL_DAY_TIME ("IntervalDayTime"), + STRUCT ("Struct"), + LIST ("List"), + MAP ("Map"), + UNION ("Union"); + + public final String string; + + ColumnVectorType(String string) { + this.string = string; + } + } + + public enum GenVectorAggregation { + NONE ("None", 0), + COUNT ("Count", 1), + MIN ("Min", 2), + MAX ("Max", 4), + SUM ("Sum", 5), + VARIANCE ("Variance", 6); + + public final String string; + public final int order; + + public static final GenVectorAggregation[] genVectorAggregation = GenVectorAggregation.values(); + + GenVectorAggregation(String string, int order) { + this.string = string; + this.order = order; + } + } + + /* + * Column aggregations supported for the LONG, DOUBLE, DECIMAL, BYTES, and TIMESTAMP column vector + * data types. + */ + public enum InputColVecTypeAggregation { + + COUNT (GenVectorAggregation.COUNT, 0, ColumnVectorType.NONE), // All types. + + LONG_MIN (GenVectorAggregation.MIN, 1, ColumnVectorType.LONG), + LONG_MAX (GenVectorAggregation.MAX, 2, ColumnVectorType.LONG), + LONG_SUM (GenVectorAggregation.SUM, 3, ColumnVectorType.LONG), + + DOUBLE_MIN (GenVectorAggregation.MIN, 4, ColumnVectorType.DOUBLE), + DOUBLE_MAX (GenVectorAggregation.MAX, 5, ColumnVectorType.DOUBLE), + DOUBLE_SUM (GenVectorAggregation.SUM, 6, ColumnVectorType.DOUBLE), + DOUBLE_VARIANCE (GenVectorAggregation.VARIANCE, 7, ColumnVectorType.DOUBLE), + + DECIMAL_MIN (GenVectorAggregation.MIN, 8, ColumnVectorType.DECIMAL), + DECIMAL_MAX (GenVectorAggregation.MAX, 9, ColumnVectorType.DECIMAL), + DECIMAL_SUM (GenVectorAggregation.SUM, 10, ColumnVectorType.DECIMAL), + DECIMAL_VARIANCE (GenVectorAggregation.VARIANCE, 11, ColumnVectorType.DECIMAL), + + BYTES_MIN (GenVectorAggregation.MIN, 12, ColumnVectorType.BYTES), + BYTES_MAX (GenVectorAggregation.MAX, 13, ColumnVectorType.BYTES), + + TIMESTAMP_MIN (GenVectorAggregation.MIN, 14, ColumnVectorType.TIMESTAMP), + TIMESTAMP_MAX (GenVectorAggregation.MAX, 15, ColumnVectorType.TIMESTAMP), + TIMESTAMP_SUM (GenVectorAggregation.SUM, 16, ColumnVectorType.TIMESTAMP), + TIMESTAMP_VARIANCE (GenVectorAggregation.VARIANCE, 17, ColumnVectorType.TIMESTAMP), + + // Only PARTIAL2 and FINAL modes (i.e. Merge). They do not appear in combination and they + // will be handled by single classes. + COUNT_MERGE (GenVectorAggregation.NONE, 18, ColumnVectorType.LONG), + AVERAGE_DOUBLE_MERGE (GenVectorAggregation.NONE, 19, ColumnVectorType.STRUCT), + AVERAGE_DECIMAL_MERGE (GenVectorAggregation.NONE, 20, ColumnVectorType.STRUCT), + VARIANCE_MERGE (GenVectorAggregation.NONE , 21, ColumnVectorType.STRUCT); + + public final GenVectorAggregation genVectorAggregation; + public final String name; + public final int value; + public final int mask; + public final ColumnVectorType columnVectorType; + + public static final InputColVecTypeAggregation[] simpleColVecTypeAggregationValues = + InputColVecTypeAggregation.values(); + + InputColVecTypeAggregation(GenVectorAggregation genVectorAggregation, int value, ColumnVectorType columnVectorType) { + this.genVectorAggregation = genVectorAggregation; + String name; + if (columnVectorType == ColumnVectorType.NONE) { + name = genVectorAggregation.string; + } else { + String columnVectorTypeName = columnVectorType.name(); + name = columnVectorTypeName.charAt(0) + columnVectorTypeName.substring(1).toLowerCase() + genVectorAggregation.string; + } + this.name = name; + this.value = value; + this.mask = 1 << value; + this.columnVectorType = columnVectorType; + } + } + + public static final Map stringToSimpleColVecTypeAggregationMap = + new HashMap(); + static { + for (InputColVecTypeAggregation simpleColVecTypeAggregation : InputColVecTypeAggregation.values()) { + stringToSimpleColVecTypeAggregationMap.put(simpleColVecTypeAggregation.name(), simpleColVecTypeAggregation); + } + } + + private void orderedPermutationsRecursion(List input, + List> accumulate) { + List firstList = input.subList(0, 1); + List firstRemoved = input.subList(1, input.size()); + if (firstRemoved.size() == 0) { + accumulate.add(firstList); + accumulate.add(firstRemoved); + } else { + List> subAccumulate = new ArrayList>(); + orderedPermutationsRecursion(firstRemoved, subAccumulate); + accumulate.addAll(subAccumulate); + for (List variation : subAccumulate) { + List newList = new ArrayList(firstList); + newList.addAll(variation); + accumulate.add(newList); + } + } + } + private List> orderedPermutations(List input) { + List> accumulate = new ArrayList>(); + orderedPermutationsRecursion(input, accumulate); + return accumulate; + } + + /* + private void orderedPermutationsRecursion(List input, + List> accumulate) { + List firstList = input.subList(0, 1); + List firstRemoved = input.subList(1, input.size()); + if (firstRemoved.size() == 0) { + accumulate.add(firstList); + accumulate.add(firstRemoved); + } else { + List> subAccumulate = new ArrayList>(); + orderedPermutationsRecursion(firstRemoved, subAccumulate); + accumulate.addAll(subAccumulate); + for (List variation : subAccumulate) { + List newList = new ArrayList(firstList); + newList.addAll(variation); + accumulate.add(newList); + } + } + } + private List> orderedPermutations(List input) { + List> accumulate = new ArrayList>(); + orderedPermutationsRecursion(input, accumulate); + return accumulate; + } + */ + + private void generateAggrColCountOnly(String[] tdesc) throws Exception { + String templateName = tdesc[0]; + List singlePermutation = new ArrayList(1); + singlePermutation.add(InputColVecTypeAggregation.COUNT); + generateAggrColPermutation(templateName, "None", singlePermutation, AggrColKind.HASH); + } + + private List> determineDesiredPermutations( + List> permutations) { + List> desiredPermutations = new ArrayList>(); + for (List permutation : permutations) { + + // When the permutation is only COUNT(column), it is handled separately by the + // count any column type classes. + if (permutation.size() == 0 || + (permutation.size() == 1 && permutation.get(0) == InputColVecTypeAggregation.COUNT)) { + continue; + } + // Also, if DOUBLE_VARIANCE is included, then we will always have COUNT and DOUBLE_SUM. + boolean sawVariance = false; + boolean sawDoubleSum = false; + boolean sawCount = false; + for (InputColVecTypeAggregation aggregation : permutation) { + switch (aggregation) { + case DOUBLE_VARIANCE: + sawVariance = true; + break; + case DOUBLE_SUM: + sawDoubleSum = true; + break; + case COUNT: + sawCount = true; + break; + default: + break; + } + } + if (sawVariance && (!sawDoubleSum || !sawCount)) { + continue; + } + desiredPermutations.add(permutation); + } + return desiredPermutations; + } + + private String addMethod(String templateName, HashKeyVariation hashKeyVariation, + BatchProcessing batchProcessing, + HashMethodModifier[] modifierPermutation) throws Exception { + + //Read the template into a string; + File templateFile = new File(joinPath(this.groupByAggregationTemplateDirectory, templateName + ".txt")); + String templateString = readFile(templateFile); + + List definedList = new ArrayList(); + + String hashKeyVariationCommentPhrase = ""; + String hashKeyVariationName = ""; + if (hashKeyVariation != null) { + definedList.add(hashKeyVariation.name()); + hashKeyVariationCommentPhrase = hashKeyVariation.commentPhrase; + hashKeyVariationName = hashKeyVariation.name + "Key"; + } + + templateString = templateString.replaceAll("", hashKeyVariationCommentPhrase); + templateString = templateString.replaceAll("", hashKeyVariationName); + + if (batchProcessing != null) { + templateString = templateString.replaceAll("", batchProcessing.commentPhrase); + templateString = templateString.replaceAll("", batchProcessing.name); + String logicalOrBatchIndex; + if (batchProcessing == BatchProcessing.LOGICAL) { + definedList.add("LOGICAL_BATCH_PROCESSING"); + logicalOrBatchIndex = "logicalIndex"; + } else { + logicalOrBatchIndex = "batchIndex"; + } + templateString = templateString.replaceAll("", logicalOrBatchIndex); + } + + StringBuilder sbModifier = new StringBuilder(); + if (modifierPermutation != null) { + for (HashMethodModifier hashMethodModifier : modifierPermutation) { + sbModifier.append(hashMethodModifier.name); + + definedList.add(hashMethodModifier.name()); + } + } + templateString = templateString.replaceAll("", sbModifier.toString()); + + StringBuilder sbModifierPhrase = new StringBuilder(); + if (modifierPermutation != null) { + for (HashMethodModifier hashMethodModifier : modifierPermutation) { + if (sbModifierPhrase.length() > 0) { + sbModifierPhrase.append(" and"); + } + sbModifierPhrase.append(hashMethodModifier.commentPhrase); + } + } + templateString = templateString.replaceAll("", sbModifierPhrase.toString()); + + // For now, no Grouping Sets. + String groupingSets = ""; + templateString = templateString.replaceAll("", groupingSets); + String groupingSetIdParam = ""; + templateString = templateString.replaceAll("", groupingSetIdParam); + + templateString = + evaluateIfDefined(templateString, definedList); + + return templateString; + } + + private static String methodsTemplateName = "AggrColHashLongMethods"; + private static String repeatedKeyMethodsTemplateName = "AggrColHashLongRepeatedKeyMethods"; + + private void generateAggrColHash(String[] tdesc) throws Exception { + String templateName = tdesc[0]; + String columnVectorType = tdesc[1]; + + StringBuilder sb = new StringBuilder(); + + // For first column, we need to supply the key so it can be assigned/verified in the hash element. + // We also need to handle COUNT(*). + // + // {PHYSICAL|LOGICAL} X {ONE_LONG|FIXED_LEN|VAR_LEN} X FIRST_COLUMN X [COUNT_STAR] + // + List firstModifierPermutations = new ArrayList(); + firstModifierPermutations.add(HashMethodModifier.firstColumnArray); + firstModifierPermutations.add(HashMethodModifier.firstColumnAndCountStarColumnArray); + + HashKeyVariation[] methodHashKeyVariations = new HashKeyVariation[] { + HashKeyVariation.HASH_ONE_LONG, + HashKeyVariation.HASH_FIXED_LEN, + HashKeyVariation.HASH_VAR_LEN}; + + for (HashKeyVariation hashKeyVariation : methodHashKeyVariations) { + for (BatchProcessing batchProcessing : BatchProcessing.values()) { + for (HashMethodModifier[] modifierPermutation : firstModifierPermutations) { + sb.append(addMethod(methodsTemplateName, hashKeyVariation, batchProcessing, modifierPermutation)); + sb.append("\n"); + } + } + } + + // {PHYSICAL|LOGICAL} + for (BatchProcessing batchProcessing : BatchProcessing.values()) { + sb.append(addMethod(methodsTemplateName, HashKeyVariation.HASH_ANY, batchProcessing, null)); + sb.append("\n"); + } + + String methodsInsert = sb.toString(); + + sb = new StringBuilder(); + + List firstRepeatedModifierPermutations = new ArrayList(); + firstRepeatedModifierPermutations.add(HashMethodModifier.firstColumnArray); + firstRepeatedModifierPermutations.add(HashMethodModifier.firstColumnAndCountStarColumnArray); + + for (HashKeyVariation hashKeyVariation : methodHashKeyVariations) { + for (HashMethodModifier[] modifierPermutation : firstRepeatedModifierPermutations) { + sb.append(addMethod(repeatedKeyMethodsTemplateName, hashKeyVariation, null, modifierPermutation)); + sb.append("\n"); + } + } + + List remainingRepeatedModifierPermutations = new ArrayList(); + remainingRepeatedModifierPermutations.add(new HashMethodModifier[0]); + + for (HashMethodModifier[] modifierPermutation : remainingRepeatedModifierPermutations) { + sb.append(addMethod(repeatedKeyMethodsTemplateName, HashKeyVariation.HASH_ANY, null, modifierPermutation)); + sb.append("\n"); + } + + String repeatedKeyMethodsInsert = sb.toString(); + + //Read the template into a string; + File templateFile = new File(joinPath(this.groupByAggregationTemplateDirectory, templateName + ".txt")); + String templateString = readFile(templateFile); + + templateString = templateString.replaceAll("", repeatedKeyMethodsInsert); + templateString = templateString.replaceAll("", methodsInsert); + + String className = "VectorGroupByAggrColHash"; + + writeFile(templateFile.lastModified(), groupByAggregationOutputDirectory, groupByAggregationClassesDirectory, + className, templateString); + } + + private void generateAggrColHashClasses(String[] tdesc) throws Exception { + String templateName = tdesc[0]; + String columnVectorType = tdesc[1]; + String variationString = tdesc[2]; + + String[] simpleAggregationStringsSplit = tdesc[2].split(","); + List aggregationList = new ArrayList(); + for (String aggregationString : simpleAggregationStringsSplit) { + InputColVecTypeAggregation aggregation = stringToSimpleColVecTypeAggregationMap.get(aggregationString); + if (aggregation == null) { + throw new RuntimeException("aggregation " + aggregationString + " not found in " + stringToSimpleColVecTypeAggregationMap.toString()); + } + aggregationList.add(aggregation); + } + List> permutations = orderedPermutations(aggregationList); + + List> desiredPermutations = + determineDesiredPermutations(permutations); + + for (List desiredPermutation : desiredPermutations) { + generateAggrColPermutation(templateName, columnVectorType, + desiredPermutation, AggrColKind.HASH); + } + } + + private void generateAggrColStreaming(String[] tdesc) throws Exception { + String columnVectorType = tdesc[1]; + String templateName = tdesc[0]; + + String[] simpleAggregationStringsSplit = tdesc[2].split(","); + List aggregationList = new ArrayList(); + for (String aggregationString : simpleAggregationStringsSplit) { + InputColVecTypeAggregation aggregation = stringToSimpleColVecTypeAggregationMap.get(aggregationString); + if (aggregation == null) { + throw new RuntimeException("aggregation " + aggregationString + " not found in " + stringToSimpleColVecTypeAggregationMap.toString()); + } + aggregationList.add(aggregation); + } + List> permutations = orderedPermutations(aggregationList); + + List> desiredPermutations = + determineDesiredPermutations(permutations); + + for (List desiredPermutation : desiredPermutations) { + generateAggrColPermutation(templateName, columnVectorType, + desiredPermutation, AggrColKind.STREAMING); + } + } + + private void generateGroupByHashOperator(String[] tdesc) throws Exception { + String templateName = tdesc[0]; + String columnVectorType = tdesc[1]; + + List operatorPermutations = new ArrayList(); + operatorPermutations.add(new OperatorModifier[0]); + operatorPermutations.add(OperatorModifier.countStarColumnArray); + + HashKeyVariation[] methodHashKeyVariations = new HashKeyVariation[] { + HashKeyVariation.HASH_ONE_LONG}; + + for (HashKeyVariation hashKeyVariation : methodHashKeyVariations) { + for (OperatorModifier[] operatorPermutation : operatorPermutations) { + generateGroupByOperatorVariation( + templateName, columnVectorType, hashKeyVariation, operatorPermutation); + } + } + } + + private void generateGroupByOperatorVariation(String templateName, String columnVectorTypeName, + HashKeyVariation hashKeyVariation, OperatorModifier[] operatorPermutations) + throws Exception{ + + //Read the template into a string; + File templateFile = new File(joinPath(this.groupByOperatorTemplateDirectory, templateName + ".txt")); + String templateString = readFile(templateFile); + + StringBuilder sbNames = new StringBuilder(); + List definedList = new ArrayList(); + String withCountStar = ""; + for (OperatorModifier operatorModifier : operatorPermutations) { + sbNames.append(operatorModifier.name); + definedList.add(operatorModifier.name()); + if (operatorModifier == OperatorModifier.COUNT_STAR) { + withCountStar = operatorModifier.name; + } + } + String optionalModifierNamesString = sbNames.toString(); + + String className = "VectorGroupByHash" + hashKeyVariation.name + "Key" + optionalModifierNamesString + "Operator"; + + templateString = templateString.replaceAll("", className); + + templateString = templateString.replaceAll("", withCountStar); + + templateString = + evaluateIfDefined(templateString, definedList); + + writeFile(templateFile.lastModified(), groupByOperatorOutputDirectory, groupByOperatorClassesDirectory, + className, templateString); + } + + private String makeCombinedAggregateSimpleNames(List permutation) { + StringBuilder sb = new StringBuilder(); + boolean isFirst = true; + ColumnVectorType currentColumnVectorType = null; + for (InputColVecTypeAggregation aggregation : permutation) { + if (aggregation == null) { + throw new RuntimeException("aggregation is null?"); + } + if (aggregation.genVectorAggregation == null) { + throw new RuntimeException("genVectorAggregation is null?"); + } + if (isFirst) { + isFirst = false; + currentColumnVectorType = aggregation.columnVectorType; + + // Don't output a type for COUNT. + if (currentColumnVectorType != ColumnVectorType.NONE){ + sb.append(currentColumnVectorType.string); + } + } else if (currentColumnVectorType != aggregation.columnVectorType) { + currentColumnVectorType = aggregation.columnVectorType; + + // Don't output a type for COUNT. + if (currentColumnVectorType != ColumnVectorType.NONE){ + sb.append(currentColumnVectorType.string); + } + } + sb.append(aggregation.genVectorAggregation.string); + } + return sb.toString(); + } + + private String evaluateIfDefinedAgainstPermutation(String linesString, + List permutation, AggrColKind aggrColVariation, + List extraOptions) { + List definedList = new ArrayList(permutation.size()); + for (InputColVecTypeAggregation aggregation : permutation) { + definedList.add(aggregation.name()); + } + if (extraOptions != null) { + definedList.addAll(extraOptions); + } + return evaluateIfDefined(linesString, definedList); + } + + public enum AggrColKind { + HASH ("Hash"), + STREAMING ("Streaming"); + + public final String name; + AggrColKind(String name) { + this.name = name; + } + } + + public enum BatchProcessing { + LOGICAL ("Logical", "logical IS selectedInUse"), + PHYSICAL ("Physical", "physical NOT selectedInUse"); + + public final String name; + public final String commentPhrase; + BatchProcessing(String name, String commentPhrase) { + this.name = name; + this.commentPhrase = commentPhrase; + } + } + + public enum HashKeyVariation { + HASH_ANY ("Any", "any"), + HASH_ONE_LONG ("OneLong", "one long"), + HASH_FIXED_LEN ("FixedLen", "fixed length"), + HASH_VAR_LEN ("VarLen", "variable length"); + + public final String name; + public final String commentPhrase; + HashKeyVariation(String name, String commentPhrase) { + this.name = name; + this.commentPhrase = commentPhrase; + } + } + + public enum HashMethodModifier { + FIRST_COLUMN ("ForFirstCol", " first aggregation column"), + COUNT_STAR ("WithCountStar", " count star"); + + public final String name; + public final String commentPhrase; + HashMethodModifier(String name, String commentPhrase) { + this.name = name; + this.commentPhrase = commentPhrase; + } + + static HashMethodModifier[] firstColumnArray = + new HashMethodModifier[] {FIRST_COLUMN}; + static HashMethodModifier[] firstColumnAndCountStarColumnArray = + new HashMethodModifier[] {FIRST_COLUMN, COUNT_STAR}; + + } + + public enum OperatorModifier { + COUNT_STAR ("WithCountStar", " count star"); + + public final String name; + public final String commentPhrase; + OperatorModifier(String name, String commentPhrase) { + this.name = name; + this.commentPhrase = commentPhrase; + } + + static OperatorModifier[] countStarColumnArray = + new OperatorModifier[] {COUNT_STAR}; + + + } + + private void generateAggrColPermutation(String templateName, String columnVectorTypeName, + List permutation, AggrColKind aggrColVariation) throws Exception { + + boolean isOnlyCount = + (permutation.size() == 1 && permutation.get(0) == InputColVecTypeAggregation.COUNT); + + //Read the template into a string; + File templateFile = new File(joinPath(this.groupByAggregationTemplateDirectory, templateName + ".txt")); + String templateString = readFile(templateFile); + + String combinedAggregateNames = makeCombinedAggregateSimpleNames(permutation); + + String className = "VectorGroupByAggr" + aggrColVariation.name + "Key" + (isOnlyCount ? "" : columnVectorTypeName) + "Col" + combinedAggregateNames; + templateString = templateString.replaceAll("", className); + + List extraOptions = new ArrayList(); + + templateString = evaluateIfDefinedAgainstPermutation(templateString, permutation, aggrColVariation, extraOptions); + + int i = 0; + for (InputColVecTypeAggregation aggregate : permutation) { + String offsetName = "<" + aggregate.name + "OffsetAdd>"; + if (i == 0) { + // No add needed for 0. + templateString = templateString.replaceAll(offsetName, " /* " + aggregate.name() + " */"); + } else { + templateString = templateString.replaceAll(offsetName, " + " + Integer.toString(i) + " /* " + aggregate.name() + " */" ); + } + i++; + } + + templateString = templateString.replaceAll("", Integer.toString(permutation.size())); + + writeFile(templateFile.lastModified(), groupByAggregationOutputDirectory, groupByAggregationClassesDirectory, + className, templateString); + } + + private void generateAggrColMapFile(String templateName, String columnVectorType, + List> desiredPermutations, AggrColKind aggrColVariation) + throws Exception { + + String mapClassName = + "VectorGroupByAggr" + aggrColVariation.name + "Key" + columnVectorType + "ColMap"; + + String mapVariableName = "aggr" + aggrColVariation.name + "Key" + columnVectorType.toLowerCase() + "ColMap"; + + StringBuilder sb = new StringBuilder(); + for (List permutation : desiredPermutations) { + if (permutation.size() == 0) { + continue; + } + + boolean isCountOnly = (permutation.size() == 1 && permutation.get(0) == InputColVecTypeAggregation.COUNT); + + String aggregateCommentSet = permutation.toString(); + String combinedAggregateNames = makeCombinedAggregateSimpleNames(permutation); + + String className = + "VectorGroupByAggr" + aggrColVariation.name + "Key" + columnVectorType + "Col" + combinedAggregateNames; + + int mask = 0; + for (InputColVecTypeAggregation aggregation : permutation) { + mask |= aggregation.mask; + } + + // Example: + + // + // [MIN,MAX,SUM] + // + // longAggrColMap.put(34, VectorGroupByAggrColLongMinMaxSum.class); + // + + sb.append(" // "); + sb.append(aggregateCommentSet); + sb.append("\n"); + + sb.append(" //\n"); + + sb.append(" "); + sb.append(mapVariableName); + sb.append(".put("); + sb.append(((Integer) mask).toString()); + sb.append(", "); + sb.append(className); + sb.append(".class);\n"); + + sb.append("\n"); + } + String assignMapBody = sb.toString(); + + //Read the template into a string; + File templateFile = new File(joinPath(this.groupByAggregationTemplateDirectory, templateName + ".txt")); + String templateString = readFile(templateFile); + + templateString = templateString.replaceAll("", mapClassName); + templateString = templateString.replaceAll("", mapVariableName); + String vectorGroupByAggrColBase = "VectorGroupByAggrCol" + aggrColVariation.name + "Base"; + templateString = templateString.replaceAll("", vectorGroupByAggrColBase); + templateString = templateString.replaceAll("", assignMapBody); + + writeFile(templateFile.lastModified(), groupByAggregationOutputDirectory, groupByAggregationClassesDirectory, + mapClassName, templateString); + } + + private void generateAggrColMap(String[] tdesc) + throws Exception { + + String templateName = tdesc[0]; + String columnVectorType = tdesc[1]; + + String[] simpleAggregationStringsSplit = tdesc[2].split(","); + List aggregationList = new ArrayList(); + for (String aggregationString : simpleAggregationStringsSplit) { + InputColVecTypeAggregation aggregation = stringToSimpleColVecTypeAggregationMap.get(aggregationString); + if (aggregation == null) { + throw new RuntimeException("aggregation " + aggregationString + " not found in " + stringToSimpleColVecTypeAggregationMap.toString()); + } + aggregationList.add(aggregation); + } + List> permutations = orderedPermutations(aggregationList); + + List> desiredPermutations = + determineDesiredPermutations(permutations); + + generateAggrColMapFile(templateName, columnVectorType, desiredPermutations, AggrColKind.HASH); + generateAggrColMapFile(templateName, columnVectorType, desiredPermutations, AggrColKind.STREAMING); + } + private boolean containsDefinedStrings(Set defineSet, String commaDefinedString) { String[] definedStrings = commaDefinedString.split(","); boolean result = false;