/**
* 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;
/**
* VectorReduceSinkDesc.
*
* Extra parameters beyond ReduceSinkDesc just for the VectorReduceSinkOperator.
*
* We don't extend ReduceSinkDesc because the base OperatorDesc doesn't support
* clone and adding it is a lot work for little gain.
*/
public class VectorReduceSinkDesc extends AbstractVectorDesc {
private static final long serialVersionUID = 1L;
public static enum ReduceSinkKeyType {
NONE,
LONG,
STRING,
MULTI_KEY
}
private ReduceSinkKeyType reduceSinkKeyType;
private VectorReduceSinkInfo vectorReduceSinkInfo;
public VectorReduceSinkDesc() {
reduceSinkKeyType = ReduceSinkKeyType.NONE;
vectorReduceSinkInfo = null;
}
public ReduceSinkKeyType reduceSinkKeyType() {
return reduceSinkKeyType;
}
public void setReduceSinkKeyType(ReduceSinkKeyType reduceSinkKeyType) {
this.reduceSinkKeyType = reduceSinkKeyType;
}
public void setVectorReduceSinkInfo(VectorReduceSinkInfo vectorReduceSinkInfo) {
this.vectorReduceSinkInfo = vectorReduceSinkInfo;
}
public VectorReduceSinkInfo getVectorReduceSinkInfo() {
return vectorReduceSinkInfo;
}
private boolean isVectorizationReduceSinkNativeEnabled;
private String engine;
private boolean isEmptyKey;
private boolean isEmptyValue;
private boolean isEmptyBuckets;
private boolean isEmptyPartitions;
private boolean hasPTFTopN;
private boolean hasDistinctColumns;
private boolean isKeyBinarySortable;
private boolean isValueLazyBinary;
private boolean isUnexpectedCondition;
/*
* The following conditions are for native Vector ReduceSink.
*/
public void setIsVectorizationReduceSinkNativeEnabled(boolean isVectorizationReduceSinkNativeEnabled) {
this.isVectorizationReduceSinkNativeEnabled = isVectorizationReduceSinkNativeEnabled;
}
public boolean getIsVectorizationReduceSinkNativeEnabled() {
return isVectorizationReduceSinkNativeEnabled;
}
public void setEngine(String engine) {
this.engine = engine;
}
public String getEngine() {
return engine;
}
public void setIsEmptyKey(boolean isEmptyKey) {
this.isEmptyKey = isEmptyKey;
}
public boolean getIsEmptyKey() {
return isEmptyKey;
}
public void setIsEmptyValue(boolean isEmptyValue) {
this.isEmptyValue = isEmptyValue;
}
public boolean getIsEmptyValue() {
return isEmptyValue;
}
public void setIsEmptyBuckets(boolean isEmptyBuckets) {
this.isEmptyBuckets = isEmptyBuckets;
}
public boolean getIsEmptyBuckets() {
return isEmptyBuckets;
}
public void setIsEmptyPartitions(boolean isEmptyPartitions) {
this.isEmptyPartitions = isEmptyPartitions;
}
public boolean getIsEmptyPartitions() {
return isEmptyPartitions;
}
public void setHasPTFTopN(boolean hasPTFTopN) {
this.hasPTFTopN = hasPTFTopN;
}
public boolean getHasPTFTopN() {
return hasPTFTopN;
}
public void setHasDistinctColumns(boolean hasDistinctColumns) {
this.hasDistinctColumns = hasDistinctColumns;
}
public boolean getHasDistinctColumns() {
return hasDistinctColumns;
}
public void setIsKeyBinarySortable(boolean isKeyBinarySortable) {
this.isKeyBinarySortable = isKeyBinarySortable;
}
public boolean getIsKeyBinarySortable() {
return isKeyBinarySortable;
}
public void setIsValueLazyBinary(boolean isValueLazyBinary) {
this.isValueLazyBinary = isValueLazyBinary;
}
public boolean getIsValueLazyBinary() {
return isValueLazyBinary;
}
public void setIsUnexpectedCondition(boolean isUnexpectedCondition) {
this.isUnexpectedCondition = isUnexpectedCondition;
}
public boolean getIsUnexpectedCondition() {
return isUnexpectedCondition;
}
}