【发布时间】:2017-06-18 20:44:57
【问题描述】:
我最近在使用 pgAdmin III 很长时间后安装了 pgAdmin 4。我注意到在使用 RAISE NOTICE 运行 plpgsql 函数后,Messages 下没有显示任何内容。我去了https://www.postgresql.org/docs/current/static/plpgsql-errors-and-messages.html并尝试做:
set client_min_messages = 'NOTICE';
还尝试设置为各种级别的 DEBUG,但仍然没有出现。使用 pgAdmin III 连接时会出现通知,所以我认为两者之间存在一些我没有看到的差异。
如果有人问,我只是尝试了 Postgres 中的一个示例函数来测试它:
CREATE FUNCTION somefunc() RETURNS integer AS $$
<< outerblock >>
DECLARE
quantity integer := 30;
BEGIN
RAISE NOTICE 'Quantity here is %', quantity; -- Prints 30
quantity := 50;
--
-- Create a subblock
--
DECLARE
quantity integer := 80;
BEGIN
RAISE NOTICE 'Quantity here is %', quantity; -- Prints 80
RAISE NOTICE 'Outer quantity here is %', outerblock.quantity; -- Prints 50
END;
RAISE NOTICE 'Quantity here is %', quantity; -- Prints 50
RETURN quantity;
END;
$$ LANGUAGE plpgsql;
在 pgAdmin III 中,提出了预期的通知:
注意:这里的数量是 30 上下文: PL/pgSQL 函数 somefunc() 在 RAISE 的第 6 行 注意:这里的数量是 80 上下文: PL/pgSQL 函数 somefunc() 第 14 行,位于 RAISE 注意:这里的外部数量是 50 上下文: PL/pgSQL 函数 somefunc() 第 15 行,位于 RAISE 注意:这里的数量是 50 上下文:PL/pgSQL 函数 somefunc() 第 18 行 RAISE
总查询运行时间:14 毫秒。 检索到 1 行。
提前感谢您的任何建议或答案!
【问题讨论】:
-
我可以确认这个问题与 osx 上的 1.1 版本有关。我发现 osx 版本也存在其他问题(连接到 Heroku 时无法过滤非活动数据库)。我相信通过将其作为问题记录在他们的团队中会更好地解决这个问题。
标签: postgresql plpgsql pgadmin-4