@Internal public final class UnknownCallContext extends Object implements CallContext
CallContext
with unknown data types.Constructor and Description |
---|
UnknownCallContext(DataTypeFactory typeFactory,
String name,
FunctionDefinition functionDefinition,
int argumentCount,
boolean isGroupedAggregation) |
Modifier and Type | Method and Description |
---|---|
List<DataType> |
getArgumentDataTypes()
Returns a resolved list of the call's argument types.
|
<T> Optional<T> |
getArgumentValue(int pos,
Class<T> clazz)
Returns the literal value of the argument at the given position, given that the argument is a
literal, is not null, and can be expressed as an instance of the provided class.
|
DataTypeFactory |
getDataTypeFactory()
Enables to lookup types in a catalog and resolve RAW types.
|
FunctionDefinition |
getFunctionDefinition()
Returns the function definition that defines the function currently being called.
|
String |
getName()
Returns the function's name usually referencing the function in a catalog.
|
Optional<DataType> |
getOutputDataType()
Returns the inferred output data type of the function call.
|
boolean |
isArgumentLiteral(int pos)
Returns whether the argument at the given position is a value literal.
|
boolean |
isArgumentNull(int pos)
Returns
true if the argument at the given position is a literal and null ,
false otherwise. |
boolean |
isGroupedAggregation()
Returns whether the function call happens as part of an aggregation that defines grouping
columns.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
fail, newValidationError
public UnknownCallContext(DataTypeFactory typeFactory, String name, FunctionDefinition functionDefinition, int argumentCount, boolean isGroupedAggregation)
public DataTypeFactory getDataTypeFactory()
CallContext
getDataTypeFactory
in interface CallContext
public FunctionDefinition getFunctionDefinition()
CallContext
getFunctionDefinition
in interface CallContext
public boolean isArgumentLiteral(int pos)
CallContext
isArgumentLiteral
in interface CallContext
public boolean isArgumentNull(int pos)
CallContext
true
if the argument at the given position is a literal and null
,
false
otherwise.
Use CallContext.isArgumentLiteral(int)
before to check if the argument is actually a literal.
isArgumentNull
in interface CallContext
public <T> Optional<T> getArgumentValue(int pos, Class<T> clazz)
CallContext
It supports conversions to default conversion classes of LogicalTypes
.
This method should not be called with other classes.
Use CallContext.isArgumentLiteral(int)
before to check if the argument is actually a literal.
getArgumentValue
in interface CallContext
public String getName()
CallContext
Note: The name is meant for debugging purposes only.
getName
in interface CallContext
public List<DataType> getArgumentDataTypes()
CallContext
getArgumentDataTypes
in interface CallContext
public Optional<DataType> getOutputDataType()
CallContext
It does this by inferring the input argument data type using ArgumentTypeStrategy.inferArgumentType(CallContext, int, boolean)
of a wrapping call (if
available) where this function call is an argument. For example, takes_string(this_function(NULL))
would lead to a DataTypes.STRING()
because the
wrapping call expects a string argument.
getOutputDataType
in interface CallContext
public boolean isGroupedAggregation()
CallContext
E.g. SELECT COUNT(*) FROM t
is not a grouped aggregation but SELECT
COUNT(*) FROM t GROUP BY k
is.
isGroupedAggregation
in interface CallContext
Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.