public abstract static class ExpressionEvaluator.Evaluator extends Object
| Modifier and Type | Field and Description |
|---|---|
protected Object |
maxVal |
protected Object |
minVal |
protected long |
nullCnt |
protected org.apache.flink.table.types.logical.LogicalType |
type |
protected Object |
val |
| Constructor and Description |
|---|
Evaluator() |
| Modifier and Type | Method and Description |
|---|---|
static ExpressionEvaluator.Evaluator |
bindCall(org.apache.flink.table.expressions.CallExpression call,
org.apache.flink.table.data.RowData indexRow,
org.apache.flink.table.types.logical.RowType.RowField[] queryFields)
Binds the evaluator with specific call expression.
|
ExpressionEvaluator.Evaluator |
bindColStats(org.apache.flink.table.data.RowData indexRow,
org.apache.flink.table.types.logical.RowType.RowField[] queryFields,
org.apache.flink.table.expressions.FieldReferenceExpression expr) |
ExpressionEvaluator.Evaluator |
bindFieldReference(org.apache.flink.table.expressions.FieldReferenceExpression expr) |
ExpressionEvaluator.Evaluator |
bindVal(org.apache.flink.table.expressions.ValueLiteralExpression vExpr) |
abstract boolean |
eval() |
protected Object val
protected Object minVal
protected Object maxVal
protected long nullCnt
protected org.apache.flink.table.types.logical.LogicalType type
public static ExpressionEvaluator.Evaluator bindCall(org.apache.flink.table.expressions.CallExpression call, org.apache.flink.table.data.RowData indexRow, org.apache.flink.table.types.logical.RowType.RowField[] queryFields)
Three steps to bind the call: 1. map the evaluator instance; 2. bind the field reference; 3. bind the column stats.
Normalize the expression to simplify the subsequent decision logic: always put the literal expression in the RHS.
public ExpressionEvaluator.Evaluator bindColStats(org.apache.flink.table.data.RowData indexRow, org.apache.flink.table.types.logical.RowType.RowField[] queryFields, org.apache.flink.table.expressions.FieldReferenceExpression expr)
public ExpressionEvaluator.Evaluator bindVal(org.apache.flink.table.expressions.ValueLiteralExpression vExpr)
public ExpressionEvaluator.Evaluator bindFieldReference(org.apache.flink.table.expressions.FieldReferenceExpression expr)
public abstract boolean eval()
Copyright © 2022 The Apache Software Foundation. All rights reserved.