Re: Why "ERROR: dtoi4: integer out of range" on pg_dump
От | Tom Lane |
---|---|
Тема | Re: Why "ERROR: dtoi4: integer out of range" on pg_dump |
Дата | |
Msg-id | 6676.999553589@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Why "ERROR: dtoi4: integer out of range" on pg_dump (Martin Weinberg <weinberg@osprey.astro.umass.edu>) |
Ответы |
Re: Why "ERROR: dtoi4: integer out of range" on pg_dump
|
Список | pgsql-hackers |
Martin Weinberg <weinberg@osprey.astro.umass.edu> writes: > DumpComment: SELECT failed: 'ERROR: dtoi4: integer out of range Hmm. I can reproduce this error message if I suppose that you have OIDs exceeding 2 billion. pg_dump will produce queries like: regression=# select * from pg_description where objoid = 2500000000; ERROR: dtoi4: integer out of range A short-term workaround is to hack pg_dump so that it explicitly coerces the literal to OID and/or quotes the literal: regression=# select * from pg_description where objoid = 2500000000::oid;objoid | classoid | objsubid | description --------+----------+----------+------------- (0 rows) regression=# select * from pg_description where objoid = '2500000000';objoid | classoid | objsubid | description --------+----------+----------+------------- (0 rows) This is done in many places in pg_dump, but not in DumpComment which is relatively new code :-( A longer-term question is how to persuade the parser to get this right without such help. I think that this is another variant of the perennial numeric-precision issue and will not be real easy to fix. regards, tom lane
В списке pgsql-hackers по дате отправления: