2017-07-06 84 views
1

在SQL中使用本机Python代码Monetdb中的UDF非常强大。但是,调试这些UDF可以从更多的支持中受益。特别是,如果我使用旧式打印('调试信息'),它会消失在黑色的大空洞中。如何在MonetDB中调试SQL/Python UDF

create function dummy() 
returns string 
language python{ 
    print('Entering the dummy UDF') 
    return 'hello'; 
}; 

如何从服务器或MonetDB客户端检索此信息。

回答

1

我调试上周:)

第1步一些Python UDF:首先确保你的Python代码在Python解释器至少工作。

第2步:在Python UDF中,编写您的调试信息。例如:

f = open('/tmp/debug.out', 'w') 
    f.write('my debugging info\n') 
    f.close() 

这并不理想,但它的工作原理。另外,我用它来导出我的Python UDF的参数值。通过这种方式,我可以使用从MonetDB收到的确切数据在Python解释器中运行Python UDF的正文。