/** * 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 org.apache.hadoop.hive.ql.exec.vector.ColumnVector.Type; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; /** * VectorGroupByAggregrationInfo. * * A convenience data structure that has information needed to vectorize reduce sink. * * 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 VectorReduceSinkOperator's * constructors and later during execution. */ public class VectorReduceSinkInfo { private static final long serialVersionUID = 1L; private boolean useUniformHash; private int[] reduceSinkKeyColumnMap; private TypeInfo[] reduceSinkKeyTypeInfos; private Type[] reduceSinkKeyColumnVectorTypes; private VectorExpression[] reduceSinkKeyExpressions; private int[] reduceSinkValueColumnMap; private TypeInfo[] reduceSinkValueTypeInfos; private Type[] reduceSinkValueColumnVectorTypes; private VectorExpression[] reduceSinkValueExpressions; private int[] reduceSinkBucketColumnMap; private TypeInfo[] reduceSinkBucketTypeInfos; private Type[] reduceSinkBucketColumnVectorTypes; private VectorExpression[] reduceSinkBucketExpressions; private int[] reduceSinkPartitionColumnMap; private TypeInfo[] reduceSinkPartitionTypeInfos; private Type[] reduceSinkPartitionColumnVectorTypes; private VectorExpression[] reduceSinkPartitionExpressions; public VectorReduceSinkInfo() { useUniformHash = false; reduceSinkKeyColumnMap = null; reduceSinkKeyTypeInfos = null; reduceSinkKeyColumnVectorTypes = null; reduceSinkKeyExpressions = null; reduceSinkValueColumnMap = null; reduceSinkValueTypeInfos = null; reduceSinkValueColumnVectorTypes = null; reduceSinkValueExpressions = null; reduceSinkBucketColumnMap = null; reduceSinkBucketTypeInfos = null; reduceSinkBucketColumnVectorTypes = null; reduceSinkBucketExpressions = null; reduceSinkPartitionColumnMap = null; reduceSinkPartitionTypeInfos = null; reduceSinkPartitionColumnVectorTypes = null; reduceSinkPartitionExpressions = null; } public boolean getUseUniformHash() { return useUniformHash; } public void setUseUniformHash(boolean useUniformHash) { this.useUniformHash = useUniformHash; } public int[] getReduceSinkKeyColumnMap() { return reduceSinkKeyColumnMap; } public void setReduceSinkKeyColumnMap(int[] reduceSinkKeyColumnMap) { this.reduceSinkKeyColumnMap = reduceSinkKeyColumnMap; } public TypeInfo[] getReduceSinkKeyTypeInfos() { return reduceSinkKeyTypeInfos; } public void setReduceSinkKeyTypeInfos(TypeInfo[] reduceSinkKeyTypeInfos) { this.reduceSinkKeyTypeInfos = reduceSinkKeyTypeInfos; } public Type[] getReduceSinkKeyColumnVectorTypes() { return reduceSinkKeyColumnVectorTypes; } public void setReduceSinkKeyColumnVectorTypes(Type[] reduceSinkKeyColumnVectorTypes) { this.reduceSinkKeyColumnVectorTypes = reduceSinkKeyColumnVectorTypes; } public VectorExpression[] getReduceSinkKeyExpressions() { return reduceSinkKeyExpressions; } public void setReduceSinkKeyExpressions(VectorExpression[] reduceSinkKeyExpressions) { this.reduceSinkKeyExpressions = reduceSinkKeyExpressions; } public int[] getReduceSinkValueColumnMap() { return reduceSinkValueColumnMap; } public void setReduceSinkValueColumnMap(int[] reduceSinkValueColumnMap) { this.reduceSinkValueColumnMap = reduceSinkValueColumnMap; } public TypeInfo[] getReduceSinkValueTypeInfos() { return reduceSinkValueTypeInfos; } public void setReduceSinkValueTypeInfos(TypeInfo[] reduceSinkValueTypeInfos) { this.reduceSinkValueTypeInfos = reduceSinkValueTypeInfos; } public Type[] getReduceSinkValueColumnVectorTypes() { return reduceSinkValueColumnVectorTypes; } public void setReduceSinkValueColumnVectorTypes(Type[] reduceSinkValueColumnVectorTypes) { this.reduceSinkValueColumnVectorTypes = reduceSinkValueColumnVectorTypes; } public VectorExpression[] getReduceSinkValueExpressions() { return reduceSinkValueExpressions; } public void setReduceSinkValueExpressions(VectorExpression[] reduceSinkValueExpressions) { this.reduceSinkValueExpressions = reduceSinkValueExpressions; } public int[] getReduceSinkBucketColumnMap() { return reduceSinkBucketColumnMap; } public void setReduceSinkBucketColumnMap(int[] reduceSinkBucketColumnMap) { this.reduceSinkBucketColumnMap = reduceSinkBucketColumnMap; } public TypeInfo[] getReduceSinkBucketTypeInfos() { return reduceSinkBucketTypeInfos; } public void setReduceSinkBucketTypeInfos(TypeInfo[] reduceSinkBucketTypeInfos) { this.reduceSinkBucketTypeInfos = reduceSinkBucketTypeInfos; } public Type[] getReduceSinkBucketColumnVectorTypes() { return reduceSinkBucketColumnVectorTypes; } public void setReduceSinkBucketColumnVectorTypes(Type[] reduceSinkBucketColumnVectorTypes) { this.reduceSinkBucketColumnVectorTypes = reduceSinkBucketColumnVectorTypes; } public VectorExpression[] getReduceSinkBucketExpressions() { return reduceSinkBucketExpressions; } public void setReduceSinkBucketExpressions(VectorExpression[] reduceSinkBucketExpressions) { this.reduceSinkBucketExpressions = reduceSinkBucketExpressions; } public int[] getReduceSinkPartitionColumnMap() { return reduceSinkPartitionColumnMap; } public void setReduceSinkPartitionColumnMap(int[] reduceSinkPartitionColumnMap) { this.reduceSinkPartitionColumnMap = reduceSinkPartitionColumnMap; } public TypeInfo[] getReduceSinkPartitionTypeInfos() { return reduceSinkPartitionTypeInfos; } public void setReduceSinkPartitionTypeInfos(TypeInfo[] reduceSinkPartitionTypeInfos) { this.reduceSinkPartitionTypeInfos = reduceSinkPartitionTypeInfos; } public Type[] getReduceSinkPartitionColumnVectorTypes() { return reduceSinkPartitionColumnVectorTypes; } public void setReduceSinkPartitionColumnVectorTypes(Type[] reduceSinkPartitionColumnVectorTypes) { this.reduceSinkPartitionColumnVectorTypes = reduceSinkPartitionColumnVectorTypes; } public VectorExpression[] getReduceSinkPartitionExpressions() { return reduceSinkPartitionExpressions; } public void setReduceSinkPartitionExpressions(VectorExpression[] reduceSinkPartitionExpressions) { this.reduceSinkPartitionExpressions = reduceSinkPartitionExpressions; } }