/** * 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.parse; import java.util.Map; import org.apache.hadoop.fs.Path; /** * ExplainConfiguration */ public class ExplainConfiguration { public enum VectorizationDetailLevel { SUMMARY(4), OPERATOR(3), EXPRESSION(2), DETAIL(1); public final int rank; VectorizationDetailLevel(int rank) { this.rank = rank; } }; private boolean extended = false; private boolean formatted = false; private boolean dependency = false; private boolean logical = false; private boolean authorize = false; private boolean userLevelExplain = false; private boolean vectorization = false; private boolean vectorizationOnly = false; private VectorizationDetailLevel vectorizationDetailLevel = VectorizationDetailLevel.SUMMARY; private Path explainRootPath; private Map<String, Long> opIdToRuntimeNumRows; public enum AnalyzeState { RUNNING, ANALYZING }; private AnalyzeState analyze = null; public boolean isExtended() { return extended; } public void setExtended(boolean extended) { this.extended = extended; } public boolean isFormatted() { return formatted; } public void setFormatted(boolean formatted) { this.formatted = formatted; } public boolean isDependency() { return dependency; } public void setDependency(boolean dependency) { this.dependency = dependency; } public boolean isLogical() { return logical; } public void setLogical(boolean logical) { this.logical = logical; } public boolean isAuthorize() { return authorize; } public void setAuthorize(boolean authorize) { this.authorize = authorize; } public AnalyzeState getAnalyze() { return analyze; } public void setAnalyze(AnalyzeState analyze) { this.analyze = analyze; } public boolean isUserLevelExplain() { return userLevelExplain; } public void setUserLevelExplain(boolean userLevelExplain) { this.userLevelExplain = userLevelExplain; } public boolean isVectorization() { return vectorization; } public void setVectorization(boolean vectorization) { this.vectorization = vectorization; } public boolean isVectorizationOnly() { return vectorizationOnly; } public void setVectorizationOnly(boolean vectorizationOnly) { this.vectorizationOnly = vectorizationOnly; } public VectorizationDetailLevel getVectorizationDetailLevel() { return vectorizationDetailLevel; } public void setVectorizationDetailLevel(VectorizationDetailLevel vectorizationDetailLevel) { this.vectorizationDetailLevel = vectorizationDetailLevel; } public Path getExplainRootPath() { return explainRootPath; } public void setExplainRootPath(Path explainRootPath) { this.explainRootPath = explainRootPath; } public Map<String, Long> getOpIdToRuntimeNumRows() { return opIdToRuntimeNumRows; } public void setOpIdToRuntimeNumRows(Map<String, Long> opIdToRuntimeNumRows) { this.opIdToRuntimeNumRows = opIdToRuntimeNumRows; } }