【发布时间】:2013-08-11 14:51:43
【问题描述】:
PostgreSQL 9.2 中对性能至关重要的 plpgsql 函数有一个“RAISE DEBUG”语句,它为其中一个参数调用昂贵的函数,即。
RAISE DEBUG 'Details: %', expensive_function(...);
似乎即使禁用了 DEBUG 日志记录,该函数也会被调用。有没有办法可以在 IF 语句中检查当前的日志记录级别(log_min_messages 和 client_min_messages),或者只有在需要时才能调用该函数的其他方式?
【问题讨论】:
-
检查
exception子句。 postgresql.org/docs/current/static/… -
我从未阅读过任何文档来确认这一点,但我观察到 raise 语句将始终触发,您只能将配置设置为实际将日志写入客户端或服务器,或者不要。所以没有办法在你的加注之前放置一个 if 检查来检查你是否想记录。我就是这样处理的。不完美,但可以忍受。
-
我很高兴进行 IF 检查,我只是不知道条件是什么 - 这就是这个问题的意义所在。
-
@Clodoaldo Neto,我看不到 EXCEPTION 子句的相关性。你能详细说明一下吗?
标签: postgresql plpgsql