/**
* 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.Arrays;
import org.apache.hadoop.hive.ql.exec.vector.VectorColumnOutputMapping;
import org.apache.hadoop.hive.ql.exec.vector.VectorColumnSourceMapping;
import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
/**
* VectorMapJoinInfo.
*
* A convenience data structure that has information needed to vectorize map join.
*
* 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 again by the VectorMapJoinOperator's
* constructors and later during execution.
*/
public class VectorMapJoinInfo {
private static final long serialVersionUID = 1L;
private int[] bigTableKeyColumnMap;
private String[] bigTableKeyColumnNames;
private TypeInfo[] bigTableKeyTypeInfos;
private VectorExpression[] bigTableKeyExpressions;
private int[] bigTableValueColumnMap;
private String[] bigTableValueColumnNames;
private TypeInfo[] bigTableValueTypeInfos;
private VectorExpression[] bigTableValueExpressions;
private VectorColumnOutputMapping bigTableRetainedMapping;
private VectorColumnOutputMapping bigTableOuterKeyMapping;
private VectorColumnSourceMapping smallTableMapping;
private VectorColumnSourceMapping projectionMapping;
public VectorMapJoinInfo() {
bigTableKeyColumnMap = null;
bigTableKeyColumnNames = null;
bigTableKeyTypeInfos = null;
bigTableKeyExpressions = null;
bigTableValueColumnMap = null;
bigTableValueColumnNames = null;
bigTableValueTypeInfos = null;
bigTableValueExpressions = null;
bigTableRetainedMapping = null;
bigTableOuterKeyMapping = null;
smallTableMapping = null;
projectionMapping = null;
}
public int[] getBigTableKeyColumnMap() {
return bigTableKeyColumnMap;
}
public void setBigTableKeyColumnMap(int[] bigTableKeyColumnMap) {
this.bigTableKeyColumnMap = bigTableKeyColumnMap;
}
public String[] getBigTableKeyColumnNames() {
return bigTableKeyColumnNames;
}
public void setBigTableKeyColumnNames(String[] bigTableKeyColumnNames) {
this.bigTableKeyColumnNames = bigTableKeyColumnNames;
}
public TypeInfo[] getBigTableKeyTypeInfos() {
return bigTableKeyTypeInfos;
}
public void setBigTableKeyTypeInfos(TypeInfo[] bigTableKeyTypeInfos) {
this.bigTableKeyTypeInfos = bigTableKeyTypeInfos;
}
public VectorExpression[] getBigTableKeyExpressions() {
return bigTableKeyExpressions;
}
public void setBigTableKeyExpressions(VectorExpression[] bigTableKeyExpressions) {
this.bigTableKeyExpressions = bigTableKeyExpressions;
}
public int[] getBigTableValueColumnMap() {
return bigTableValueColumnMap;
}
public void setBigTableValueColumnMap(int[] bigTableValueColumnMap) {
this.bigTableValueColumnMap = bigTableValueColumnMap;
}
public String[] getBigTableValueColumnNames() {
return bigTableValueColumnNames;
}
public void setBigTableValueColumnNames(String[] bigTableValueColumnNames) {
this.bigTableValueColumnNames = bigTableValueColumnNames;
}
public TypeInfo[] getBigTableValueTypeInfos() {
return bigTableValueTypeInfos;
}
public void setBigTableValueTypeInfos(TypeInfo[] bigTableValueTypeInfos) {
this.bigTableValueTypeInfos = bigTableValueTypeInfos;
}
public VectorExpression[] getBigTableValueExpressions() {
return bigTableValueExpressions;
}
public void setBigTableValueExpressions(VectorExpression[] bigTableValueExpressions) {
this.bigTableValueExpressions = bigTableValueExpressions;
}
public void setBigTableRetainedMapping(VectorColumnOutputMapping bigTableRetainedMapping) {
this.bigTableRetainedMapping = bigTableRetainedMapping;
}
public VectorColumnOutputMapping getBigTableRetainedMapping() {
return bigTableRetainedMapping;
}
public void setBigTableOuterKeyMapping(VectorColumnOutputMapping bigTableOuterKeyMapping) {
this.bigTableOuterKeyMapping = bigTableOuterKeyMapping;
}
public VectorColumnOutputMapping getBigTableOuterKeyMapping() {
return bigTableOuterKeyMapping;
}
public void setSmallTableMapping(VectorColumnSourceMapping smallTableMapping) {
this.smallTableMapping = smallTableMapping;
}
public VectorColumnSourceMapping getSmallTableMapping() {
return smallTableMapping;
}
public void setProjectionMapping(VectorColumnSourceMapping projectionMapping) {
this.projectionMapping = projectionMapping;
}
public VectorColumnSourceMapping getProjectionMapping() {
return projectionMapping;
}
}