AnalyticFunctionFactory 类
AnalyticFunctionFactory
类将向 Vertica 提供有关 UDAnF 的元数据:其参数数量和数据类型及其返回值的数据类型。该类还会实例化 AnalyticFunction
的子类。
AnalyticFunctionFactory
子类必须实施以下方法:
-
getPrototype()
可描述函数的输入参数和输出值。可以通过对传递到方法的两个ColumnTypes
对象调用函数来设置这些值。 -
createAnalyticFunction()
可提供AnalyticFunction
的实例,Vertica 可以调用此实例以处理 UDAnF 函数调用。 -
getReturnType()
可提供有关函数输出的详细信息。通过此方法,您可以设置输出值的宽度(如果函数将返回可变宽度值,例如 VARCHAR),或者设置输出值的精度(如果该输出值具有可设置的精度,例如 TIMESTAMP)。
API
AnalyticFunctionFactory API 提供了以下通过子类扩展的方法:
virtual AnalyticFunction * createAnalyticFunction (ServerInterface &srvInterface)=0;
virtual void getPrototype(ServerInterface &srvInterface,
ColumnTypes &argTypes, ColumnTypes &returnType)=0;
virtual void getReturnType(ServerInterface &srvInterface,
const SizedColumnTypes &argTypes, SizedColumnTypes &returnType)=0;
virtual void getParameterType(ServerInterface &srvInterface,
SizedColumnTypes ¶meterTypes);
AnalyticFunctionFactory API 提供了以下通过子类扩展的方法:
public abstract AnalyticFunction createAnalyticFunction (ServerInterface srvInterface);
public abstract void getPrototype(ServerInterface srvInterface, ColumnTypes argTypes, ColumnTypes returnType);
public abstract void getReturnType(ServerInterface srvInterface, SizedColumnTypes argTypes,
SizedColumnTypes returnType) throws UdfException;
public void getParameterType(ServerInterface srvInterface, SizedColumnTypes parameterTypes);