pgsql --echo-errors --quiet and setval

Started by Lesover 2 years ago5 messagesgeneral
Jump to latest
#1Les
nagylzs@gmail.com

Dear fellow PostgreSQL users,

Today I caught this with postgresql v15, while restoring a database with
psql --echo-errors --quiet. (The dump was made using pg_dump -Fp).

It logged lots of these messages:

setval
--------
1001
(1 row)

In other words, it logs **some** things that are not errors, even though
--quiet was specified. Is this the expected behaviour? I would argue that
with --quiet --echo-errors, only errors should be logged, and setting the
value of a sequence is not an error.

Thank you,

Laszlo

#2Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Les (#1)
Re: pgsql --echo-errors --quiet and setval

On 9/8/23 12:36, Les wrote:

  Dear fellow PostgreSQL users,

Today I caught this with postgresql v15, while restoring a database with
psql  --echo-errors --quiet. (The dump was made using pg_dump -Fp).

It logged lots of these messages:

 setval
--------
   1001
(1 row)

In other words, it logs **some** things that are not errors, even though
--quiet was specified. Is this the expected behaviour? I would argue
that with --quiet --echo-errors, only errors should be logged, and
setting the value of a sequence is not an error.

No but SELECT pg_catalog.setval(...) in the dump file is a function that
has return value and that is what you are seeing.

Thank you,

    Laszlo

--
Adrian Klaver
adrian.klaver@aklaver.com

#3David G. Johnston
david.g.johnston@gmail.com
In reply to: Les (#1)
Re: pgsql --echo-errors --quiet and setval

On Fri, Sep 8, 2023 at 1:41 PM Les <nagylzs@gmail.com> wrote:

Dear fellow PostgreSQL users,

Today I caught this with postgresql v15, while restoring a database with
psql --echo-errors --quiet. (The dump was made using pg_dump -Fp).

It logged lots of these messages:

setval
--------
1001
(1 row)

In other words, it logs **some** things that are not errors, even though
--quiet was specified. Is this the expected behaviour? I would argue that
with --quiet --echo-errors, only errors should be logged, and setting the
value of a sequence is not an error.

The output of SELECT queries cannot be quieted, only redirected.

David J.

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: David G. Johnston (#3)
Re: pgsql --echo-errors --quiet and setval

"David G. Johnston" <david.g.johnston@gmail.com> writes:

On Fri, Sep 8, 2023 at 1:41 PM Les <nagylzs@gmail.com> wrote:

Today I caught this with postgresql v15, while restoring a database with
psql --echo-errors --quiet. (The dump was made using pg_dump -Fp).
It logged lots of these messages:

setval
--------
1001
(1 row)

In other words, it logs **some** things that are not errors, even though
--quiet was specified. Is this the expected behaviour? I would argue that
with --quiet --echo-errors, only errors should be logged, and setting the
value of a sequence is not an error.

The output of SELECT queries cannot be quieted, only redirected.

Yeah. You could do "\o /dev/null" or the equivalent to discard the
SELECT results, since a pg_dump script isn't going to be doing anything
that you really need to see the results of.

I'm not sure whether it'd be profitable to try to build that behavior
into the scripts themselves. One problem is that "/dev/null" doesn't
have that name on Windows, so it's hard to see how to invoke the behavior
in a platform-agnostic fashion.

regards, tom lane

#5David G. Johnston
david.g.johnston@gmail.com
In reply to: Tom Lane (#4)
Re: pgsql --echo-errors --quiet and setval

On Sun, Sep 10, 2023 at 10:43 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:

I'm not sure whether it'd be profitable to try to build that behavior

into the scripts themselves.

Teaching it not to call "print" (or making it a no-op somehow) in a certain
mode, yes, trying to redirect output it is producing, I doubt it for the
reason mentioned. It isn't difficult to add "> /dev/null" to the command
line if that is what you want - no need to touch scripts given a capable
enough shell.

David J.