定义 UDx 接受的参数

可以通过实施 getParameterType() 在 UDx 的工厂类(ScalarFunctionFactoryAggregateFunctionFactory 等)中定义其接受的参数。此方法与 getReturnType() 相似:对作为参数传入的 SizedColumnTypes 对象调用特定于数据类型的方法。每个函数调用都会设置参数的名称、数据类型和宽度或精度(如果数据类型需要此设置)。

设置参数属性(仅限 C++)

使用 C++ API 将参数添加到 getParameterType() 函数时,您还可以设置每个参数的属性。例如,您可以在 UDx 需要时定义一个参数。这样做可告知 Vertica 服务器每次调用 UDx 必须提供指定的参数,否则查询将失败。

通过将对象传递至 SizedColumnTypes::Properties 类,可以定义下列四个参数属性:

设置参数属性(仅限 R)

在 R UDx 中使用参数时,您必须在名为 parametertypecallback 的工厂函数中指定一个字段。此字段指向回调函数,而该回调函数定义函数所需的参数。回调函数定义了具有以下属性的四列数据帧:

如果任何列保留为空(或忽略 parametertypecallback 函数),则 Vertica 将使用默认值。

有关详细信息,请参阅Parametertypecallback 函数