public class TypeCheckingExpVisitor extends LogicalExpressionVisitor
currentWalker, DEFAULT_SCOPE, plan
Constructor and Description |
---|
TypeCheckingExpVisitor(OperatorPlan expPlan,
CompilationMessageCollector msgCollector,
LogicalRelationalOperator relOp) |
Modifier and Type | Method and Description |
---|---|
static boolean |
schemaEqualsForMatching(Schema inputSchema,
Schema udfSchema,
EvalFunc.SchemaType udfSchemaType,
boolean ignoreByteArrays)
Compare two schemas for equality for argument matching purposes.
|
void |
visit(AddExpression binOp) |
void |
visit(AndExpression andExp) |
void |
visit(BinCondExpression binCond) |
void |
visit(CastExpression cast)
For Basic Types:
0) Casting to itself is always ok
1) Casting from number to number is always ok
2) ByteArray to anything is ok
3) number to chararray is ok
For Composite Types:
Recursively traverse the schemas till you get a basic type
|
void |
visit(DereferenceExpression deref) |
void |
visit(DivideExpression binOp) |
void |
visit(EqualExpression binOp) |
void |
visit(GreaterThanEqualExpression binOp) |
void |
visit(GreaterThanExpression binOp) |
void |
visit(LessThanEqualExpression binOp) |
void |
visit(LessThanExpression binOp) |
void |
visit(MapLookupExpression map) |
void |
visit(ModExpression binOp) |
void |
visit(MultiplyExpression binOp) |
void |
visit(NegativeExpression negExp) |
void |
visit(NotEqualExpression binOp) |
void |
visit(NotExpression notExp) |
void |
visit(OrExpression orExp) |
void |
visit(RegexExpression rg)
RegexExpression expects CharArray as input
Itself always returns Boolean |
void |
visit(SubtractExpression binOp) |
void |
visit(UserFuncExpression func) |
visit, visit, visit, visit
getPlan, popWalker, pushWalker, visit
public TypeCheckingExpVisitor(OperatorPlan expPlan, CompilationMessageCollector msgCollector, LogicalRelationalOperator relOp) throws FrontendException
FrontendException
public void visit(AddExpression binOp) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(SubtractExpression binOp) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(MultiplyExpression binOp) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(DivideExpression binOp) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(ModExpression binOp) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(NegativeExpression negExp) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(NotExpression notExp) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(OrExpression orExp) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(AndExpression andExp) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(LessThanExpression binOp) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(LessThanEqualExpression binOp) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(GreaterThanExpression binOp) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(GreaterThanEqualExpression binOp) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(EqualExpression binOp) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(NotEqualExpression binOp) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(CastExpression cast) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(RegexExpression rg) throws FrontendException
RegexExpression
expects CharArray as input
Itself always returns Booleanvisit
in class LogicalExpressionVisitor
rg
- FrontendException
public void visit(BinCondExpression binCond) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(MapLookupExpression map) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(DereferenceExpression deref) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public void visit(UserFuncExpression func) throws FrontendException
visit
in class LogicalExpressionVisitor
FrontendException
public static boolean schemaEqualsForMatching(Schema inputSchema, Schema udfSchema, EvalFunc.SchemaType udfSchemaType, boolean ignoreByteArrays) throws FrontendException
inputSchema
- udfSchema
- ignoreByteArrays
- FrontendException
Copyright © 2007-2017 The Apache Software Foundation