public abstract class BaseSemanticAnalyzer
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
BaseSemanticAnalyzer.tableSpec
tableSpec.
|
Modifier and Type | Field and Description |
---|---|
protected ColumnAccessInfo |
columnAccessInfo |
protected HiveConf |
conf |
protected SessionState.LogHelper |
console |
protected Context |
ctx |
protected Hive |
db |
protected FetchTask |
fetchTask |
static int |
HIVE_COLUMN_ORDER_ASC |
static int |
HIVE_COLUMN_ORDER_DESC |
protected java.util.HashMap<java.lang.String,java.lang.String> |
idToTableNameMap |
protected java.util.HashSet<ReadEntity> |
inputs
ReadEntitites that are passed to the hooks.
|
protected LineageInfo |
linfo
Lineage information for the query.
|
protected org.apache.commons.logging.Log |
LOG |
protected static java.lang.String |
ORCFILE_INPUT |
protected static java.lang.String |
ORCFILE_OUTPUT |
protected static java.lang.String |
ORCFILE_SERDE |
protected java.util.HashSet<WriteEntity> |
outputs
List of WriteEntities that are passed to the hooks.
|
protected QueryProperties |
queryProperties |
protected static java.lang.String |
RCFILE_INPUT |
protected static java.lang.String |
RCFILE_OUTPUT |
protected java.util.List<Task<? extends java.io.Serializable>> |
rootTasks |
protected static java.lang.String |
SEQUENCEFILE_INPUT |
protected static java.lang.String |
SEQUENCEFILE_OUTPUT |
protected TableAccessInfo |
tableAccessInfo |
protected static java.lang.String |
TEXTFILE_INPUT |
protected static java.lang.String |
TEXTFILE_OUTPUT |
Constructor and Description |
---|
BaseSemanticAnalyzer(HiveConf conf) |
Modifier and Type | Method and Description |
---|---|
void |
analyze(ASTNode ast,
Context ctx) |
protected void |
analyzeDDLSkewedValues(java.util.List<java.util.List<java.lang.String>> skewedValues,
ASTNode child)
Handle skewed values in DDL.
|
abstract void |
analyzeInternal(ASTNode ast) |
protected java.util.List<java.lang.String> |
analyzeSkewedTablDDLColNames(java.util.List<java.lang.String> skewedColNames,
ASTNode child)
Analyze list bucket column names
|
protected boolean |
analyzeStoredAdDirs(ASTNode child)
process stored as directories
|
static java.lang.String |
charSetString(java.lang.String charSetName,
java.lang.String charSetString) |
protected ListBucketingCtx |
constructListBucketingCtx(java.util.List<java.lang.String> skewedColNames,
java.util.List<java.util.List<java.lang.String>> skewedValues,
java.util.Map<java.util.List<java.lang.String>,java.lang.String> skewedColValueLocationMaps,
boolean isStoredAsSubDirectories,
HiveConf conf)
Construct list bucketing context.
|
protected java.util.HashMap<java.lang.String,java.lang.String> |
extractPartitionSpecs(org.antlr.runtime.tree.Tree partspec) |
ColumnAccessInfo |
getColumnAccessInfo()
Gets the column access information.
|
protected java.util.List<java.lang.String> |
getColumnNames(ASTNode ast) |
protected java.util.List<Order> |
getColumnNamesOrder(ASTNode ast) |
protected java.util.List<FieldSchema> |
getColumns(ASTNode ast) |
static java.util.List<FieldSchema> |
getColumns(ASTNode ast,
boolean lowerCase)
Get the list of FieldSchema out of the ASTNode.
|
Hive |
getDb() |
FetchTask |
getFetchTask() |
java.util.HashMap<java.lang.String,java.lang.String> |
getIdToTableNameMap() |
java.util.HashSet<ReadEntity> |
getInputs() |
LineageInfo |
getLineageInfo()
Gets the lineage information.
|
java.util.HashSet<WriteEntity> |
getOutputs() |
QueryProperties |
getQueryProperties() |
java.util.List<FieldSchema> |
getResultSchema() |
java.util.List<Task<? extends java.io.Serializable>> |
getRootTasks() |
protected java.util.List<java.lang.String> |
getSkewedValueFromASTNode(ASTNode ast)
Given a ASTNode, return list of values.
|
protected java.util.List<java.lang.String> |
getSkewedValuesFromASTNode(Node node)
Retrieve skewed values from ASTNode.
|
TableAccessInfo |
getTableAccessInfo()
Gets the table access information.
|
protected static java.lang.String |
getTypeStringFromAST(ASTNode typeNode) |
static java.lang.String |
getUnescapedName(ASTNode tableOrColumnNode)
Get dequoted name from a table/column node.
|
static java.lang.String |
getUnescapedName(ASTNode tableOrColumnNode,
java.lang.String currentDatabase) |
static java.lang.String |
getUnescapedUnqualifiedTableName(ASTNode node)
Get the unqualified name from a table node.
|
protected void |
handleGenericFileFormat(ASTNode node) |
void |
init() |
void |
initCtx(Context ctx) |
boolean |
isValidPrefixSpec(Table tTable,
java.util.Map<java.lang.String,java.lang.String> spec)
Checks if given specification is proper specification for prefix of
partition cols, for table partitioned by ds, hr, min valid ones are
(ds='2008-04-08'), (ds='2008-04-08', hr='12'), (ds='2008-04-08', hr='12', min='30')
invalid one is for example (ds='2008-04-08', min='30')
|
static void |
readProps(ASTNode prop,
java.util.Map<java.lang.String,java.lang.String> mapProp)
Converts parsed key/value properties pairs into a map.
|
protected void |
reset() |
void |
setColumnAccessInfo(ColumnAccessInfo columnAccessInfo)
Sets the column access information.
|
void |
setFetchTask(FetchTask fetchTask) |
void |
setLineageInfo(LineageInfo linfo)
Sets the lineage information.
|
void |
setTableAccessInfo(TableAccessInfo tableAccessInfo)
Sets the table access information.
|
static java.lang.String |
stripIdentifierQuotes(java.lang.String val) |
static java.lang.String |
stripQuotes(java.lang.String val) |
static java.lang.String |
unescapeIdentifier(java.lang.String val)
Remove the encapsulating "`" pair from the identifier.
|
static java.lang.String |
unescapeSQLString(java.lang.String b) |
void |
validate() |
static void |
validatePartSpec(Table tbl,
java.util.Map<java.lang.String,java.lang.String> partSpec,
ASTNode astNode,
HiveConf conf) |
protected final Hive db
protected final HiveConf conf
protected java.util.List<Task<? extends java.io.Serializable>> rootTasks
protected FetchTask fetchTask
protected final org.apache.commons.logging.Log LOG
protected final SessionState.LogHelper console
protected Context ctx
protected java.util.HashMap<java.lang.String,java.lang.String> idToTableNameMap
protected QueryProperties queryProperties
public static int HIVE_COLUMN_ORDER_ASC
public static int HIVE_COLUMN_ORDER_DESC
protected java.util.HashSet<ReadEntity> inputs
protected java.util.HashSet<WriteEntity> outputs
protected LineageInfo linfo
protected TableAccessInfo tableAccessInfo
protected ColumnAccessInfo columnAccessInfo
protected static final java.lang.String TEXTFILE_INPUT
protected static final java.lang.String TEXTFILE_OUTPUT
protected static final java.lang.String SEQUENCEFILE_INPUT
protected static final java.lang.String SEQUENCEFILE_OUTPUT
protected static final java.lang.String RCFILE_INPUT
protected static final java.lang.String RCFILE_OUTPUT
protected static final java.lang.String ORCFILE_INPUT
protected static final java.lang.String ORCFILE_OUTPUT
protected static final java.lang.String ORCFILE_SERDE
public BaseSemanticAnalyzer(HiveConf conf) throws SemanticException
SemanticException
public java.util.HashMap<java.lang.String,java.lang.String> getIdToTableNameMap()
public abstract void analyzeInternal(ASTNode ast) throws SemanticException
SemanticException
public void init()
public void initCtx(Context ctx)
public void analyze(ASTNode ast, Context ctx) throws SemanticException
SemanticException
public void validate() throws SemanticException
SemanticException
public java.util.List<Task<? extends java.io.Serializable>> getRootTasks()
public FetchTask getFetchTask()
public void setFetchTask(FetchTask fetchTask)
fetchTask
- the fetchTask to setprotected void reset()
public static java.lang.String stripIdentifierQuotes(java.lang.String val)
public static java.lang.String stripQuotes(java.lang.String val)
public static java.lang.String charSetString(java.lang.String charSetName, java.lang.String charSetString) throws SemanticException
SemanticException
public static java.lang.String getUnescapedName(ASTNode tableOrColumnNode)
tableOrColumnNode
- the table or column nodepublic static java.lang.String getUnescapedName(ASTNode tableOrColumnNode, java.lang.String currentDatabase)
public static java.lang.String getUnescapedUnqualifiedTableName(ASTNode node)
node
- the table nodepublic static java.lang.String unescapeIdentifier(java.lang.String val)
public static void readProps(ASTNode prop, java.util.Map<java.lang.String,java.lang.String> mapProp)
prop
- ASTNode parent of the key/value pairsmapProp
- property map which receives the mappingspublic static java.lang.String unescapeSQLString(java.lang.String b)
public java.util.HashSet<ReadEntity> getInputs()
public java.util.HashSet<WriteEntity> getOutputs()
public java.util.List<FieldSchema> getResultSchema()
protected java.util.List<FieldSchema> getColumns(ASTNode ast) throws SemanticException
SemanticException
protected void handleGenericFileFormat(ASTNode node) throws SemanticException
SemanticException
public static java.util.List<FieldSchema> getColumns(ASTNode ast, boolean lowerCase) throws SemanticException
SemanticException
protected java.util.List<java.lang.String> getColumnNames(ASTNode ast)
protected static java.lang.String getTypeStringFromAST(ASTNode typeNode) throws SemanticException
SemanticException
public LineageInfo getLineageInfo()
public void setLineageInfo(LineageInfo linfo)
linfo
- The LineageInfo structure that is set in the optimization phase.public TableAccessInfo getTableAccessInfo()
public void setTableAccessInfo(TableAccessInfo tableAccessInfo)
taInfo
- The TableAccessInfo structure that is set in the optimization phase.public ColumnAccessInfo getColumnAccessInfo()
public void setColumnAccessInfo(ColumnAccessInfo columnAccessInfo)
columnAccessInfo
- The ColumnAccessInfo structure that is set immediately after
the optimization phase.protected java.util.HashMap<java.lang.String,java.lang.String> extractPartitionSpecs(org.antlr.runtime.tree.Tree partspec) throws SemanticException
SemanticException
public final boolean isValidPrefixSpec(Table tTable, java.util.Map<java.lang.String,java.lang.String> spec) throws HiveException
spec
- specification key-value mapHiveException
public Hive getDb()
public QueryProperties getQueryProperties()
protected ListBucketingCtx constructListBucketingCtx(java.util.List<java.lang.String> skewedColNames, java.util.List<java.util.List<java.lang.String>> skewedValues, java.util.Map<java.util.List<java.lang.String>,java.lang.String> skewedColValueLocationMaps, boolean isStoredAsSubDirectories, HiveConf conf)
skewedColNames
- skewedValues
- skewedColValueLocationMaps
- isStoredAsSubDirectories
- protected java.util.List<java.lang.String> getSkewedValueFromASTNode(ASTNode ast)
ast
- protected java.util.List<java.lang.String> getSkewedValuesFromASTNode(Node node) throws SemanticException
node
- SemanticException
protected java.util.List<java.lang.String> analyzeSkewedTablDDLColNames(java.util.List<java.lang.String> skewedColNames, ASTNode child) throws SemanticException
skewedColNames
- child
- SemanticException
protected void analyzeDDLSkewedValues(java.util.List<java.util.List<java.lang.String>> skewedValues, ASTNode child) throws SemanticException
skewedValues
- child
- SemanticException
protected boolean analyzeStoredAdDirs(ASTNode child)
child
- public static void validatePartSpec(Table tbl, java.util.Map<java.lang.String,java.lang.String> partSpec, ASTNode astNode, HiveConf conf) throws SemanticException
SemanticException
Copyright © 2012 The Apache Software Foundation