我可以在Postgres找到我的PLPython功能吗?

时间:2013-04-05 14:15:24

标签: postgresql plpython

我在特定架构中创建了一些函数,但“函数”部分内部没有任何内容..

我创建了这个例子的函数:

CREATE FUNCTION pymax (a integer, b integer)
  RETURNS integer
AS $$
  if a > b:
  return a
return b
$$ LANGUAGE plpythonu;

1 个答案:

答案 0 :(得分:1)

如果名称不是模式限定的,则在当前模式中创建一个函数(如其他对象)。您当前的架构由search_path的当前设置定义。

查看您当前的search_path

SHOW search_path;

设置search_path的方法有很多种,在此相关答案中更多:
How does the search_path influence identifier resolution and the "current schema"

要确定数据库中是否存在任何具有类似名称的函数:

SELECT n.nspname, p.proname, pg_get_function_arguments(p.oid) As args
FROM   pg_proc p
JOIN   pg_namespace n ON n.oid = p.pronamespace
WHERE  p.proname ILIKE '%pymax%';

如果找不到任何内容,则数据库中不存在这些功能。也许你错误地在另一个数据库中创建了它?