Package io.substrait.expression
Interface FunctionArg
- All Known Subinterfaces:
EnumArg,Expression,Expression.Literal,Expression.Nested,Expression.Subquery,Expression.UserDefinedLiteral,Type
- All Known Implementing Classes:
Expression.BinaryLiteral,Expression.BoolLiteral,Expression.Cast,Expression.DateLiteral,Expression.DecimalLiteral,Expression.EmptyListLiteral,Expression.EmptyMapLiteral,Expression.FixedBinaryLiteral,Expression.FixedCharLiteral,Expression.FP32Literal,Expression.FP64Literal,Expression.I16Literal,Expression.I32Literal,Expression.I64Literal,Expression.I8Literal,Expression.IfThen,Expression.InPredicate,Expression.IntervalCompoundLiteral,Expression.IntervalDayLiteral,Expression.IntervalYearLiteral,Expression.Lambda,Expression.ListLiteral,Expression.MapLiteral,Expression.MultiOrList,Expression.NestedList,Expression.NestedStruct,Expression.NullLiteral,Expression.PrecisionTimeLiteral,Expression.PrecisionTimestampLiteral,Expression.PrecisionTimestampTZLiteral,Expression.ScalarFunctionInvocation,Expression.ScalarSubquery,Expression.SetPredicate,Expression.SingleOrList,Expression.StrLiteral,Expression.StructLiteral,Expression.Switch,Expression.TimeLiteral,Expression.TimestampLiteral,Expression.TimestampTZLiteral,Expression.UserDefinedAnyLiteral,Expression.UserDefinedStructLiteral,Expression.UUIDLiteral,Expression.VarCharLiteral,Expression.WindowFunctionInvocation,FieldReference,ImmutableEnumArg,ImmutableExpression.BinaryLiteral,ImmutableExpression.BoolLiteral,ImmutableExpression.Cast,ImmutableExpression.DateLiteral,ImmutableExpression.DecimalLiteral,ImmutableExpression.EmptyListLiteral,ImmutableExpression.EmptyMapLiteral,ImmutableExpression.FixedBinaryLiteral,ImmutableExpression.FixedCharLiteral,ImmutableExpression.FP32Literal,ImmutableExpression.FP64Literal,ImmutableExpression.I16Literal,ImmutableExpression.I32Literal,ImmutableExpression.I64Literal,ImmutableExpression.I8Literal,ImmutableExpression.IfThen,ImmutableExpression.InPredicate,ImmutableExpression.IntervalCompoundLiteral,ImmutableExpression.IntervalDayLiteral,ImmutableExpression.IntervalYearLiteral,ImmutableExpression.Lambda,ImmutableExpression.ListLiteral,ImmutableExpression.MapLiteral,ImmutableExpression.MultiOrList,ImmutableExpression.NestedList,ImmutableExpression.NestedStruct,ImmutableExpression.NullLiteral,ImmutableExpression.PrecisionTimeLiteral,ImmutableExpression.PrecisionTimestampLiteral,ImmutableExpression.PrecisionTimestampTZLiteral,ImmutableExpression.ScalarFunctionInvocation,ImmutableExpression.ScalarSubquery,ImmutableExpression.SetPredicate,ImmutableExpression.SingleOrList,ImmutableExpression.StrLiteral,ImmutableExpression.StructLiteral,ImmutableExpression.Switch,ImmutableExpression.TimeLiteral,ImmutableExpression.TimestampLiteral,ImmutableExpression.TimestampTZLiteral,ImmutableExpression.UserDefinedAnyLiteral,ImmutableExpression.UserDefinedStructLiteral,ImmutableExpression.UUIDLiteral,ImmutableExpression.VarCharLiteral,ImmutableExpression.WindowFunctionInvocation,ImmutableFieldReference,ImmutableType.Binary,ImmutableType.Bool,ImmutableType.Date,ImmutableType.Decimal,ImmutableType.FixedBinary,ImmutableType.FixedChar,ImmutableType.FP32,ImmutableType.FP64,ImmutableType.Func,ImmutableType.I16,ImmutableType.I32,ImmutableType.I64,ImmutableType.I8,ImmutableType.IntervalCompound,ImmutableType.IntervalDay,ImmutableType.IntervalYear,ImmutableType.ListType,ImmutableType.Map,ImmutableType.PrecisionTime,ImmutableType.PrecisionTimestamp,ImmutableType.PrecisionTimestampTZ,ImmutableType.Str,ImmutableType.Struct,ImmutableType.Time,ImmutableType.Timestamp,ImmutableType.TimestampTZ,ImmutableType.UserDefined,ImmutableType.UUID,ImmutableType.VarChar,Type.Binary,Type.Bool,Type.Date,Type.Decimal,Type.FixedBinary,Type.FixedChar,Type.FP32,Type.FP64,Type.Func,Type.I16,Type.I32,Type.I64,Type.I8,Type.IntervalCompound,Type.IntervalDay,Type.IntervalYear,Type.ListType,Type.Map,Type.PrecisionTime,Type.PrecisionTimestamp,Type.PrecisionTimestampTZ,Type.Str,Type.Struct,Type.Time,Type.Timestamp,Type.TimestampTZ,Type.UserDefined,Type.UUID,Type.VarChar
public interface FunctionArg
FunctionArg is a marker interface that represents an argument of a
SimpleExtension.Function invocation. Subtypes are Expression, Type, and EnumArg. Methods processing/visiting FunctionArg instances should be passed the SimpleExtension.Function and the argument index.-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceFunctionArg.FuncArgVisitor<R,C extends VisitationContext, E extends Throwable> static classConverts fromFunctionArgumenttoFunctionArg -
Method Summary
Modifier and TypeMethodDescription<R,C extends VisitationContext, E extends Throwable>
Raccept(SimpleExtension.Function fnDef, int argIdx, FunctionArg.FuncArgVisitor<R, C, E> fnArgVisitor, C context) toProto(TypeExpressionVisitor<Type, RuntimeException> typeVisitor, ExpressionVisitor<Expression, EmptyVisitationContext, RuntimeException> expressionVisitor)
-
Method Details
-
accept
<R,C extends VisitationContext, R acceptE extends Throwable> (SimpleExtension.Function fnDef, int argIdx, FunctionArg.FuncArgVisitor<R, C, throws EE> fnArgVisitor, C context) - Throws:
E extends Throwable
-
toProto
static FunctionArg.FuncArgVisitor<FunctionArgument,EmptyVisitationContext, toProtoRuntimeException> (TypeExpressionVisitor<Type, RuntimeException> typeVisitor, ExpressionVisitor<Expression, EmptyVisitationContext, RuntimeException> expressionVisitor)
-