Netezza 7.2 UDF实例化方法调用两次

时间:2017-09-26 20:27:01

标签: netezza

注册Netezza UDF后,我有一个使用UDF的select语句。我发现对于该select语句,UDF的实例化方法被调用两次。知道为什么吗?

样本选择stmt:

select my_udf(somecolumn, 'some parm info') from evtest;

我认为udf的实例化只会被调用一次,但是它会被调用两次,这让我感到困惑。

由于

1 个答案:

答案 0 :(得分:1)

好吧,我想我已经解开了这个谜团。

我相信在语句准备期间会调用实例化方法,然后在实际执行语句时再次调用它。

我的推理: 我在构造函数中添加了一个logMsg stmt,我看到对于这两个调用中的每一个,日志消息都转到了两个不同的日志文件。这个实验不是用_v_dual完成的,而是用。完成的。

我的logMsg调用都没有转到/nz/kit/log/dbos/dbos.log,这是针对在主机上运行的用户定义函数。

我的日志消息中只有一条转到/nz/kit/log/postgres/pg.log,这是用于在系统目录或语句准备时运行的函数

我的日志消息都转到了 /nz/kit/log/sysmgr/sysmgr.log,用于在SPU上运行的函数。

我认为,这回答了我原来的问题。