public abstract class OperandTypes
extends java.lang.Object
This class defines singleton instances of strategy objects for operand
type checking. ReturnTypes
and InferTypes
provide similar strategies
for operand type inference and operator return type inference.
Note to developers: avoid anonymous inner classes here except for unique, non-generalizable strategies; anything else belongs in a reusable top-level class. If you find yourself copying and pasting an existing strategy's anonymous inner class, you're making a mistake.
SqlOperandTypeChecker
,
ReturnTypes
,
InferTypes
Modifier and Type | Class and Description |
---|---|
private static class |
OperandTypes.PeriodOperandTypeChecker
Operand type checker that accepts period types:
PERIOD (DATETIME, DATETIME)
PERIOD (DATETIME, INTERVAL)
[ROW] (DATETIME, DATETIME)
[ROW] (DATETIME, INTERVAL)
|
Modifier | Constructor and Description |
---|---|
private |
OperandTypes() |
Modifier and Type | Method and Description |
---|---|
static SqlOperandTypeChecker |
and(SqlOperandTypeChecker... rules)
Creates a checker that passes if all of the rules pass.
|
static SqlSingleOperandTypeChecker |
and(SqlSingleOperandTypeChecker... rules)
Creates a single-operand checker that passes if all of the rules
pass.
|
static FamilyOperandTypeChecker |
family(java.util.List<SqlTypeFamily> families)
Creates a checker that passes if each operand is a member of a
corresponding family.
|
static FamilyOperandTypeChecker |
family(java.util.List<SqlTypeFamily> families,
java.util.function.Predicate<java.lang.Integer> optional)
Creates a checker that passes if each operand is a member of a
corresponding family, and allows specified parameters to be optional.
|
static FamilyOperandTypeChecker |
family(SqlTypeFamily... families)
Creates a checker that passes if each operand is a member of a
corresponding family.
|
static SqlOperandTypeChecker |
or(SqlOperandTypeChecker... rules)
Creates a checker that passes if any one of the rules passes.
|
static SqlSingleOperandTypeChecker |
or(SqlSingleOperandTypeChecker... rules)
Creates a single-operand checker that passes if any one of the rules
passes.
|
static SqlOperandTypeChecker |
repeat(SqlOperandCountRange range,
SqlSingleOperandTypeChecker... rules)
Creates a checker that passes if all of the rules pass for each operand,
using a given operand count strategy.
|
static SqlOperandTypeChecker |
sequence(java.lang.String allowedSignatures,
SqlSingleOperandTypeChecker... rules)
Creates an operand checker from a sequence of single-operand checkers.
|
static SqlOperandTypeChecker |
variadic(SqlOperandCountRange range) |
public static final SqlSingleOperandTypeChecker NILADIC
public static final SqlOperandTypeChecker VARIADIC
public static final SqlOperandTypeChecker ONE_OR_MORE
public static final SqlSingleOperandTypeChecker BOOLEAN
public static final SqlSingleOperandTypeChecker BOOLEAN_BOOLEAN
public static final SqlSingleOperandTypeChecker NUMERIC
public static final SqlSingleOperandTypeChecker INTEGER
public static final SqlSingleOperandTypeChecker NUMERIC_OPTIONAL_INTEGER
public static final SqlSingleOperandTypeChecker NUMERIC_INTEGER
public static final SqlSingleOperandTypeChecker NUMERIC_NUMERIC
public static final SqlSingleOperandTypeChecker EXACT_NUMERIC
public static final SqlSingleOperandTypeChecker EXACT_NUMERIC_EXACT_NUMERIC
public static final SqlSingleOperandTypeChecker BINARY
public static final SqlSingleOperandTypeChecker STRING
public static final FamilyOperandTypeChecker STRING_STRING
public static final FamilyOperandTypeChecker STRING_STRING_STRING
public static final SqlSingleOperandTypeChecker CHARACTER
public static final SqlSingleOperandTypeChecker DATETIME
public static final SqlSingleOperandTypeChecker INTERVAL
public static final SqlSingleOperandTypeChecker PERIOD
public static final SqlSingleOperandTypeChecker PERIOD_OR_DATETIME
public static final FamilyOperandTypeChecker INTERVAL_INTERVAL
public static final SqlSingleOperandTypeChecker MULTISET
public static final SqlSingleOperandTypeChecker ARRAY
public static final SqlSingleOperandTypeChecker COLLECTION
public static final SqlSingleOperandTypeChecker COLLECTION_OR_MAP
public static final SqlSingleOperandTypeChecker NULLABLE_LITERAL
public static final SqlSingleOperandTypeChecker LITERAL
public static final SqlSingleOperandTypeChecker POSITIVE_INTEGER_LITERAL
public static final SqlSingleOperandTypeChecker SAME_SAME
public static final SqlSingleOperandTypeChecker SAME_SAME_INTEGER
public static final SqlSingleOperandTypeChecker SAME_SAME_SAME
public static final SqlOperandTypeChecker SAME_VARIADIC
public static final SqlOperandTypeChecker COMPARABLE_ORDERED_COMPARABLE_ORDERED
public static final SqlOperandTypeChecker COMPARABLE_ORDERED
public static final SqlOperandTypeChecker COMPARABLE_UNORDERED_COMPARABLE_UNORDERED
public static final SqlSingleOperandTypeChecker STRING_SAME_SAME
public static final SqlSingleOperandTypeChecker STRING_SAME_SAME_SAME
public static final SqlSingleOperandTypeChecker STRING_STRING_INTEGER
public static final SqlSingleOperandTypeChecker STRING_STRING_INTEGER_INTEGER
public static final SqlSingleOperandTypeChecker STRING_INTEGER
public static final SqlSingleOperandTypeChecker CBSTRING_INTEGER
public static final SqlSingleOperandTypeChecker STRING_SAME_SAME_INTEGER
public static final SqlSingleOperandTypeChecker ANY
public static final SqlSingleOperandTypeChecker ANY_ANY
public static final SqlSingleOperandTypeChecker ANY_NUMERIC
public static final SqlSingleOperandTypeChecker INTERVAL_SAME_SAME
public static final SqlSingleOperandTypeChecker NUMERIC_INTERVAL
public static final SqlSingleOperandTypeChecker INTERVAL_NUMERIC
public static final SqlSingleOperandTypeChecker DATETIME_INTERVAL
public static final SqlSingleOperandTypeChecker DATETIME_INTERVAL_INTERVAL
public static final SqlSingleOperandTypeChecker DATETIME_INTERVAL_INTERVAL_TIME
public static final SqlSingleOperandTypeChecker DATETIME_INTERVAL_TIME
public static final SqlSingleOperandTypeChecker INTERVAL_DATETIME
public static final SqlSingleOperandTypeChecker INTERVALINTERVAL_INTERVALDATETIME
public static final SqlSingleOperandTypeChecker PLUS_OPERATOR
public static final SqlSingleOperandTypeChecker MULTIPLY_OPERATOR
public static final SqlSingleOperandTypeChecker DIVISION_OPERATOR
public static final SqlSingleOperandTypeChecker MINUS_OPERATOR
public static final FamilyOperandTypeChecker MINUS_DATE_OPERATOR
public static final SqlSingleOperandTypeChecker NUMERIC_OR_INTERVAL
public static final SqlSingleOperandTypeChecker NUMERIC_OR_STRING
public static final SqlSingleOperandTypeChecker RECORD_COLLECTION
COLLECTION
public static final SqlSingleOperandTypeChecker SCALAR_OR_RECORD_COLLECTION
public static final SqlSingleOperandTypeChecker SCALAR_OR_RECORD_COLLECTION_OR_MAP
public static final SqlOperandTypeChecker MULTISET_MULTISET
public static final SqlOperandTypeChecker SET_OP
public static final SqlOperandTypeChecker RECORD_TO_SCALAR
public static FamilyOperandTypeChecker family(SqlTypeFamily... families)
public static FamilyOperandTypeChecker family(java.util.List<SqlTypeFamily> families, java.util.function.Predicate<java.lang.Integer> optional)
public static FamilyOperandTypeChecker family(java.util.List<SqlTypeFamily> families)
public static SqlOperandTypeChecker or(SqlOperandTypeChecker... rules)
public static SqlOperandTypeChecker and(SqlOperandTypeChecker... rules)
public static SqlSingleOperandTypeChecker or(SqlSingleOperandTypeChecker... rules)
public static SqlSingleOperandTypeChecker and(SqlSingleOperandTypeChecker... rules)
public static SqlOperandTypeChecker sequence(java.lang.String allowedSignatures, SqlSingleOperandTypeChecker... rules)
public static SqlOperandTypeChecker repeat(SqlOperandCountRange range, SqlSingleOperandTypeChecker... rules)
public static SqlOperandTypeChecker variadic(SqlOperandCountRange range)
Copyright © 2012–2019 The Apache Software Foundation. All rights reserved.