Обсуждение: pgsql --echo-errors --quiet and setval

Поиск
Список
Период
Сортировка

pgsql --echo-errors --quiet and setval

От
Les
Дата:

  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

Re: pgsql --echo-errors --quiet and setval

От
Adrian Klaver
Дата:
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




Re: pgsql --echo-errors --quiet and setval

От
"David G. Johnston"
Дата:
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.

Re: pgsql --echo-errors --quiet and setval

От
Tom Lane
Дата:
"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



Re: pgsql --echo-errors --quiet and setval

От
"David G. Johnston"
Дата:
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.