定义 UDx 接受的参数
可以通过实施 getParameterType()
在 UDx 的工厂类(ScalarFunctionFactory
和 AggregateFunctionFactory
等)中定义其接受的参数。此方法与 getReturnType()
相似:对作为参数传入的 SizedColumnTypes
对象调用特定于数据类型的方法。每个函数调用都会设置参数的名称、数据类型和宽度或精度(如果数据类型需要此设置)。
设置参数属性(仅限 C++)
使用 C++ API 将参数添加到 getParameterType()
函数时,您还可以设置每个参数的属性。例如,您可以在 UDx 需要时定义一个参数。这样做可告知 Vertica 服务器每次调用 UDx 必须提供指定的参数,否则查询将失败。
通过将对象传递至 SizedColumnTypes::Properties
类,可以定义下列四个参数属性:
设置参数属性(仅限 R)
在 R UDx 中使用参数时,您必须在名为 parametertypecallback
的工厂函数中指定一个字段。此字段指向回调函数,而该回调函数定义函数所需的参数。回调函数定义了具有以下属性的四列数据帧:
如果任何列保留为空(或忽略 parametertypecallback
函数),则 Vertica 将使用默认值。
有关详细信息,请参阅Parametertypecallback 函数。