将 UDR 指定给用户定义的虚拟处理器类

SQL CREATE FUNCTION 语句注册用户定义的例程。例如,以下 CREATE FUNCTION 语句注册用户定义的例程 GreaterThanEqual(),并指定对于该例程的调用由名为 UDR 的用户定义的 VP 类执行:
CREATE FUNCTION GreaterThanEqual(ScottishName, ScottishName)
   RETURNS boolean 
   WITH (CLASS = UDR  )
   EXTERNAL NAME ‘/usr/lib/objects/udrs.so'
   LANGUAGE C
要执行该函数,onconfig 文件必须包含定义 UDR 类的 VPCLASS 参数。否则,对 GreaterThanEqual 函数的调用将失败。
提示: CLASS 例程修饰符可为 VP 类指定任何名称。注册 UDR 时,无需有该类名。然而,尝试运行 UDR 且其指定了用于执行的用户定义 VP 类时,此类必须存在并且必须为其指定虚拟处理器。
要配置 UDR 类,请在 onconfig 文件中包含如下类似行。此行将配置带有两个虚拟处理器并且没有优先级迟滞的 UDR 类。
VPCLASS     UDR  ,num=2,noage

前面的行将 UDR VP 类定义为生成的 VP 类;即该 VP 类允许 C 语言 UDR 生成必须访问 UDR VP 类的其他线程。有关如何使用 VPCLASS 配置参数的更多信息,请参阅 GBase 8s 管理员参考

有关 CREATE FUNCTION 语句的更多信息,请参阅 GBase 8s SQL 指南:语法