Larry Rosenman <ler@lerctr.org> writes:
> pg_dump: query to get function name of oid - failed: ERROR: oidin:
> error in "-": can't parse "-"
Actually, I'm seeing it here too ... seems to have been a side-effect
of the change that I recently made to declare pg_index.indproc as
regproc instead of plain Oid. pg_dump is expecting "0" for empty
indproc but it's now getting "-". Hmm, maybe that change wasn't a
good idea; is it likely to break anything besides pg_dump?
Anyway, the quick-hack answer is to change line 4374 in pg_dump.c from
if (strcmp(indinfo[i].indproc, "0") == 0)
to
if (strcmp(indinfo[i].indproc, "-") == 0 || strcmp(indinfo[i].indproc, "0") == 0)
You shouldn't need to revert your sources for this --- apply the patch,
compile a new pg_dump, and use it against your yesterday's server.
BTW, I have to congratulate you on your bravery. I sure wouldn't keep
data I cared about in CVS tip ;-)
regards, tom lane