问题描述
我想使用 optimizer_stats 函数,例如:
select optimizer_stats();
然后它返回
SELECT: no such operator 'optimizer_stats'
但我可以在 sys.functions 表 (id=5976) 中找到它。
我也发现像 reverse(string) 这样的 UDF 也不能使用:
sql>select reverse('abc');
SELECT: no such unary operator 'reverse(char)'
那有什么问题?
解决方法
MonetDB 中的函数绑定在模式中。您无法找到这些函数,因为您当前的架构不是“sys”。将您的会话架构更改为“sys”或使用完整路径(例如 sys.reverse('abc'))。
在默认分支(下一个功能版本)中,我添加了一个“搜索路径”变量,以便在找不到 SQL 对象时搜索其他模式。默认情况下,它包含“sys”架构。