Tom,
Thanks for the prompt reply. Following is the postgresql log output:
DEBUG: ProcessQuery
DEBUG: CommitTransactionCommand
DEBUG: StartTransactionCommand
DEBUG: query: SELECT Oid FROM pg_index i WHERE i.indisprimary AND
i.indrelid = '3527162388'::oid
DEBUG: ProcessQuery
DEBUG: CommitTransactionCommand
DEBUG: StartTransactionCommand
DEBUG: query: SELECT c.relname FROM pg_index i LEFT OUTER JOIN pg_class c
ON c.oid = i.indexrelid WHERE i.indrelid = 3527162388AND i.indisprimary
ERROR: dtoi4: integer out of range
DEBUG: AbortCurrentTransaction
DEBUG: proc_exit(0)
DEBUG: shmem_exit(0)
DEBUG: exit(0)
The 3527162388AND is exactly as shown in the log, with no space between the
value and the AND, I guess this is the problem, wherever it's being
generated in the code.
HTH
Thanks,
Steve
Tom Lane wrote:
> steve <steve@jlajla.com> writes:
> > When trying to pg_dump on 7.1.2 (& 7.1.3) I get the following error
> > message:
>
> > bash-2.04$ pg_dump dwh
> > getTables(): SELECT (for PRIMARY KEY NAME) failed for table nlcdmp.
> > Explanation from backend: ERROR: dtoi4: integer out of range
>
> > Several of my tables have very large OIDs (over 4 billion in some cases
>
> Hmm. Okay, I think I can see how over-2-gig OIDs might lead to that
> error message, but that doesn't really help in tracking down the specific
> location of the problem. Could you run pg_dump after doing
> export PGOPTIONS="-d2"
> so that its queries get sent to the postmaster log? Then looking at the
> log to see the last couple of queries before the failure should tell us.
>
> regards, tom lane