Thread: Re: [HACKERS] pg_dump 'die_on_errors'

Re: [HACKERS] pg_dump 'die_on_errors'

From
Philip Warner
Date:
At 02:32 PM 12/08/2004, Philip Warner wrote:
>At 01:27 PM 12/08/2004, Bruce Momjian wrote:
>Set client_min_messages to WARNING?
>
>Sounds like a plan.

Attached patch sets client_min_messages as above and gives some
context to errors messages, eg:

pg_restore: [archiver (db)] Error from TOC Entry 19; 1255 16438403 FUNCTION foo() pjw
pg_restore: [archiver (db)] could not execute query: ERROR:  no schema has been selected to create in
pg_restore: [archiver (db)] could not execute query: ERROR:  schema "public" does not exist
pg_restore: [archiver (db)] Error from TOC Entry 1475; 0 0 ACL public postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  schema "public" does not exist
pg_restore: [archiver (db)] could not execute query: ERROR:  schema "public" does not exist
pg_restore: [archiver (db)] could not execute query: ERROR:  schema "public" does not exist
pg_restore: [archiver (db)] could not execute query: ERROR:  schema "public" does not exist



----------------------------------------------------------------
Philip Warner                    |     __---_____
Albatross Consulting Pty. Ltd.   |----/       -  \
(A.B.N. 75 008 659 498)          |          /(@)   ______---_
Tel: (+61) 0500 83 82 81         |                 _________  \
Fax: (+61) 03 5330 3172          |                 ___________ |
Http://www.rhyme.com.au          |                /           \|
                                 |    --________--
PGP key available upon request,  |  /
and from pgp.mit.edu:11371       |/
Attachment

Re: [HACKERS] pg_dump 'die_on_errors'

From
Tom Lane
Date:
Philip Warner <pjw@rhyme.com.au> writes:
> Attached patch sets client_min_messages as above and gives some
> context to errors messages, eg:

> pg_restore: [archiver (db)] Error from TOC Entry 19; 1255 16438403 FUNCTION foo() pjw
> pg_restore: [archiver (db)] could not execute query: ERROR:  no schema has been selected to create in

It'd be substantially *more* helpful if it reported the failing command.
(The TOC entry label is not of interest to anyone except pg_dump hackers
such as yourself.)  I went around a release or so back and made sure
that pg_dump would always give the text of a failed query, but I forgot
to consider pg_restore :-(

            regards, tom lane

Re: [HACKERS] pg_dump 'die_on_errors'

From
Philip Warner
Date:
At 01:32 AM 16/08/2004, Tom Lane wrote:
>It'd be substantially *more* helpful if it reported the failing command.

They are two different problems; the TOC entry is important for any
multiline command  or to rerun the command easily later.

Whereas displaying the failed SQL command is a matter of fixing the error
messages.

The latter is complicated by failed COPY commands which, with die-on-errors
off, results in the data being processed as a command, so dumping the
command will dump all of the data.

In the case of long commands, should the whole command be dumped? eg. (eg.
several pages of function definition).

In the case of the COPY command, I'm not sure what to do. Obviously, it
would be best to avoid sending the data, but the data and command are
combined (from memory). Also, the 'data' may be in the form of INSERT
statements.

Attached patch produces the first 125 chars of the command:

pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC Entry 26; 1255 16449270 FUNCTION
plpgsql_call_handler() pjw
pg_restore: [archiver (db)] could not execute query: ERROR:  function
"plpgsql_call_handler" already exists with same argument types
     Command was: CREATE FUNCTION plpgsql_call_handler() RETURNS
language_handler
     AS '/var/lib/pgsql-8.0b1/lib/plpgsql', 'plpgsql_call_han...
pg_restore: [archiver (db)] Error from TOC Entry 27; 1255 16449271 FUNCTION
plpgsql_validator(oid) pjw
pg_restore: [archiver (db)] could not execute query: ERROR:  function
"plpgsql_validator" already exists with same argument types
     Command was: CREATE FUNCTION plpgsql_validator(oid) RETURNS void
     AS '/var/lib/pgsql-8.0b1/lib/plpgsql', 'plpgsql_validator'
     LANGU...





----------------------------------------------------------------
Philip Warner                    |     __---_____
Albatross Consulting Pty. Ltd.   |----/       -  \
(A.B.N. 75 008 659 498)          |          /(@)   ______---_
Tel: (+61) 0500 83 82 81         |                 _________  \
Fax: (+61) 03 5330 3172          |                 ___________ |
Http://www.rhyme.com.au          |                /           \|
                                  |    --________--
PGP key available upon request,  |  /
and from pgp.mit.edu:11371       |/
Attachment

pg_dump print error location

From
Bruce Momjian
Date:
Patch applied.  Thanks.

---------------------------------------------------------------------------


Philip Warner wrote:
> At 01:32 AM 16/08/2004, Tom Lane wrote:
> >It'd be substantially *more* helpful if it reported the failing command.
>
> They are two different problems; the TOC entry is important for any
> multiline command  or to rerun the command easily later.
>
> Whereas displaying the failed SQL command is a matter of fixing the error
> messages.
>
> The latter is complicated by failed COPY commands which, with die-on-errors
> off, results in the data being processed as a command, so dumping the
> command will dump all of the data.
>
> In the case of long commands, should the whole command be dumped? eg. (eg.
> several pages of function definition).
>
> In the case of the COPY command, I'm not sure what to do. Obviously, it
> would be best to avoid sending the data, but the data and command are
> combined (from memory). Also, the 'data' may be in the form of INSERT
> statements.
>
> Attached patch produces the first 125 chars of the command:
>
> pg_restore: [archiver (db)] Error while PROCESSING TOC:
> pg_restore: [archiver (db)] Error from TOC Entry 26; 1255 16449270 FUNCTION
> plpgsql_call_handler() pjw
> pg_restore: [archiver (db)] could not execute query: ERROR:  function
> "plpgsql_call_handler" already exists with same argument types
>      Command was: CREATE FUNCTION plpgsql_call_handler() RETURNS
> language_handler
>      AS '/var/lib/pgsql-8.0b1/lib/plpgsql', 'plpgsql_call_han...
> pg_restore: [archiver (db)] Error from TOC Entry 27; 1255 16449271 FUNCTION
> plpgsql_validator(oid) pjw
> pg_restore: [archiver (db)] could not execute query: ERROR:  function
> "plpgsql_validator" already exists with same argument types
>      Command was: CREATE FUNCTION plpgsql_validator(oid) RETURNS void
>      AS '/var/lib/pgsql-8.0b1/lib/plpgsql', 'plpgsql_validator'
>      LANGU...
>
>
>
>
>
> ----------------------------------------------------------------
> Philip Warner                    |     __---_____
> Albatross Consulting Pty. Ltd.   |----/       -  \
> (A.B.N. 75 008 659 498)          |          /(@)   ______---_
> Tel: (+61) 0500 83 82 81         |                 _________  \
> Fax: (+61) 03 5330 3172          |                 ___________ |
> Http://www.rhyme.com.au          |                /           \|
>                                   |    --________--
> PGP key available upon request,  |  /
> and from pgp.mit.edu:11371       |/

[ Attachment, skipping... ]

>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faqs/FAQ.html

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073