1

我有一些导致这种情况发生的 SQL 语句:

NOTICE:  word is too long to be indexed
DETAIL:  Words longer than 2047 characters are ignored.

首先不生成这些通知的最简单方法是什么?(这是一个很长的故事,为什么我想这样做。)

这种陈述的一个例子是:

update rev set html = regexp_replace(html,
                         '***=<a href="' || old.url || '">',
                         '<a href="' || new.url || '">',
                         'gi')
        where id in (
            select id
                    from rev
                    where to_tsvector('tags_only', html) @@
                      plainto_tsquery('tags_only','<a href="' || old.url || '">')
        )

这不是带有长 url 的 A 标签或任何导致问题的东西。它可能是嵌入式 CDATA 样式的图形。我不在乎它们没有被索引,无论它们是什么。我只是希望这些通知不会发生。

4

1 回答 1

3

如果您不介意取消所有通知,只需更改 PostgreSQL 错误报告级别。client_min_messages定义发送给客户端的最低级别的错误/警告/通知消息,log_min_messages对保存在日志中的消息也是如此。可能的值为:DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO, NOTICE, WARNING, ERROR, LOG, FATAL, PANIC

编辑:

仅对此查询禁用:SET LOCAL client_min_messages TO WARNING;

仅对此会话禁用:SET SESSION client_min_messages TO WARNING;

对此用户禁用:ALTER ROLE username SET client_min_messages TO WARNING;

于 2012-10-17T01:03:05.547 回答