Thread: pg_dump failure, can't get data out...

pg_dump failure, can't get data out...

From
Larry Rosenman
Date:
I had upgraded yesterday and *THOUGHT* all was fine. 

Forgot to pg_dump, so I restored my $PGLIB and bin directory, now get
the following when I try to pg_dump:

$ pg_dump ler >z
Password: 
pg_dump: query to get function name of oid - failed: ERROR:  oidin:
error in "-": can't parse "-"
$ 

And the debug query log:

Aug 26 19:10:05 lerami pg-prod[3861]: [1] DEBUG:  connection: host=[local] user=ler database=ler
Aug 26 19:10:05 lerami pg-prod[3861]: [2] DEBUG:  InitPostgres
Aug 26 19:10:05 lerami pg-prod[3861]: [3] DEBUG:  StartTransactionCommand
Aug 26 19:10:05 lerami pg-prod[3861]: [4] DEBUG:  query: select getdatabaseencoding()
Aug 26 19:10:05 lerami pg-prod[3861]: [5] DEBUG:  ProcessQuery
Aug 26 19:10:05 lerami pg-prod[3861]: [6] DEBUG:  CommitTransactionCommand
Aug 26 19:10:05 lerami pg-prod[3861]: [7] DEBUG:  StartTransactionCommand
Aug 26 19:10:05 lerami pg-prod[3861]: [8] DEBUG:  query: SELECT version();
Aug 26 19:10:05 lerami pg-prod[3861]: [9] DEBUG:  ProcessQuery
Aug 26 19:10:05 lerami pg-prod[3861]: [10] DEBUG:  CommitTransactionCommand
Aug 26 19:10:05 lerami pg-prod[3861]: [11] DEBUG:  StartTransactionCommand
Aug 26 19:10:05 lerami pg-prod[3861]: [12] DEBUG:  query: begin
Aug 26 19:10:05 lerami pg-prod[3861]: [13] DEBUG:  ProcessUtility: begin
Aug 26 19:10:05 lerami pg-prod[3861]: [14] DEBUG:  CommitTransactionCommand
Aug 26 19:10:05 lerami pg-prod[3861]: [15] DEBUG:  StartTransactionCommand
Aug 26 19:10:05 lerami pg-prod[3861]: [16] DEBUG:  query: set transaction isolation level serializable
Aug 26 19:10:05 lerami pg-prod[3861]: [17] DEBUG:  ProcessUtility: set transaction isolation level serializable
Aug 26 19:10:05 lerami pg-prod[3861]: [18] DEBUG:  CommitTransactionCommand
Aug 26 19:10:05 lerami pg-prod[3861]: [19] DEBUG:  StartTransactionCommand
Aug 26 19:10:05 lerami pg-prod[3861]: [20] DEBUG:  query: SELECT datlastsysoid from pg_database where datname = 'ler'
Aug 26 19:10:05 lerami pg-prod[3861]: [21] DEBUG:  ProcessQuery
Aug 26 19:10:05 lerami pg-prod[3861]: [22] DEBUG:  CommitTransactionCommand
Aug 26 19:10:05 lerami pg-prod[3861]: [23] DEBUG:  StartTransactionCommand
Aug 26 19:10:05 lerami pg-prod[3861]: [24] DEBUG:  query: select (select usename from pg_user where datdba = usesysid)
asdba from pg_database where datname = 'ler'
 
Aug 26 19:10:05 lerami pg-prod[3861]: [25] DEBUG:  ProcessQuery
Aug 26 19:10:05 lerami pg-prod[3861]: [26] DEBUG:  CommitTransactionCommand
Aug 26 19:10:05 lerami pg-prod[3861]: [27] DEBUG:  StartTransactionCommand
Aug 26 19:10:05 lerami pg-prod[3861]: [28-1] DEBUG:  query: SELECT pg_type.oid, typowner, typname, typlen, typprtlen,
typinput,typoutput, typreceive, typsend, typelem,
 
Aug 26 19:10:05 lerami pg-prod[3861]: [28-2]  typdelim, typdefault, typrelid, typalign, typstorage, typbyval,
typisdefined,(select usename from pg_user where typowner =
 
Aug 26 19:10:05 lerami pg-prod[3861]: [28-3]  usesysid) as usename, format_type(pg_type.oid, NULL) as typedefn from
pg_type
Aug 26 19:10:05 lerami pg-prod[3861]: [29] DEBUG:  ProcessQuery
Aug 26 19:10:06 lerami pg-prod[3861]: [30] DEBUG:  CommitTransactionCommand
Aug 26 19:10:06 lerami pg-prod[3861]: [31] DEBUG:  StartTransactionCommand
Aug 26 19:10:06 lerami pg-prod[3861]: [32-1] DEBUG:  query: SELECT pg_proc.oid, proname, prolang, pronargs, prorettype,
proretset,proargtypes, prosrc, probin, (select
 
Aug 26 19:10:06 lerami pg-prod[3861]: [32-2]  usename from pg_user where proowner = usesysid) as usename,
proiscachable,proisstrict from pg_proc where pg_proc.oid >
 
Aug 26 19:10:06 lerami pg-prod[3861]: [32-3]  '16554'::oid
Aug 26 19:10:06 lerami pg-prod[3861]: [33] DEBUG:  ProcessQuery
Aug 26 19:10:06 lerami pg-prod[3861]: [34] DEBUG:  CommitTransactionCommand
Aug 26 19:10:06 lerami pg-prod[3861]: [35] DEBUG:  StartTransactionCommand
Aug 26 19:10:06 lerami pg-prod[3861]: [36-1] DEBUG:  query: SELECT pg_aggregate.oid, aggname, aggtransfn, aggfinalfn,
aggtranstype,aggbasetype, agginitval, 't'::boolean as
 
Aug 26 19:10:06 lerami pg-prod[3861]: [36-2]  convertok, (select usename from pg_user where aggowner = usesysid) as
usenamefrom pg_aggregate
 
Aug 26 19:10:06 lerami pg-prod[3861]: [37] DEBUG:  ProcessQuery
Aug 26 19:10:06 lerami pg-prod[3861]: [38] DEBUG:  CommitTransactionCommand
Aug 26 19:10:06 lerami pg-prod[3861]: [39] DEBUG:  StartTransactionCommand
Aug 26 19:10:06 lerami pg-prod[3861]: [40-1] DEBUG:  query: SELECT pg_operator.oid, oprname, oprkind, oprcode, oprleft,
oprright,oprcom, oprnegate, oprrest, oprjoin,
 
Aug 26 19:10:06 lerami pg-prod[3861]: [40-2]  oprcanhash, oprlsortop, oprrsortop, (select usename from pg_user where
oprowner= usesysid) as usename from pg_operator
 
Aug 26 19:10:06 lerami pg-prod[3861]: [41] DEBUG:  ProcessQuery
Aug 26 19:10:06 lerami pg-prod[3861]: [42] DEBUG:  CommitTransactionCommand
Aug 26 19:10:06 lerami pg-prod[3861]: [43] DEBUG:  StartTransactionCommand
Aug 26 19:10:06 lerami pg-prod[3861]: [44-1] DEBUG:  query: SELECT pg_class.oid, relname, relacl, relkind, (select
usenamefrom pg_user where relowner = usesysid) as
 
Aug 26 19:10:06 lerami pg-prod[3861]: [44-2]  usename, relchecks, reltriggers, relhasindex, relhasoids from pg_class
whererelname !~ '^pg_' and relkind in ('r', 'S', 'v')
 
Aug 26 19:10:06 lerami pg-prod[3861]: [44-3]  order by oid
Aug 26 19:10:06 lerami pg-prod[3861]: [45] DEBUG:  ProcessQuery
Aug 26 19:10:06 lerami pg-prod[3861]: [46] DEBUG:  CommitTransactionCommand
Aug 26 19:10:06 lerami pg-prod[3861]: [47] DEBUG:  StartTransactionCommand
Aug 26 19:10:06 lerami pg-prod[3861]: [48] DEBUG:  query: SELECT indexrelid FROM pg_index i WHERE i.indisprimary AND
i.indrelid= 20947 
 
Aug 26 19:10:06 lerami pg-prod[3861]: [49] DEBUG:  ProcessQuery
Aug 26 19:10:06 lerami pg-prod[3861]: [50] DEBUG:  CommitTransactionCommand
Aug 26 19:10:06 lerami pg-prod[3861]: [51] DEBUG:  StartTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [448-2]  relname = 'pg_class') and objsubid = 9
Aug 26 19:10:07 lerami pg-prod[3861]: [449] DEBUG:  ProcessQuery
Aug 26 19:10:07 lerami pg-prod[3861]: [450] DEBUG:  CommitTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [451] DEBUG:  StartTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [452-1] DEBUG:  query: SELECT description FROM pg_description WHERE objoid =
20974and classoid = (SELECT oid FROM pg_class where
 
Aug 26 19:10:07 lerami pg-prod[3861]: [452-2]  relname = 'pg_class') and objsubid = 10
Aug 26 19:10:07 lerami pg-prod[3861]: [453] DEBUG:  ProcessQuery
Aug 26 19:10:07 lerami pg-prod[3861]: [454] DEBUG:  CommitTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [455] DEBUG:  StartTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [456-1] DEBUG:  query: SELECT description FROM pg_description WHERE objoid =
20974and classoid = (SELECT oid FROM pg_class where
 
Aug 26 19:10:07 lerami pg-prod[3861]: [456-2]  relname = 'pg_class') and objsubid = 0
Aug 26 19:10:07 lerami pg-prod[3861]: [457] DEBUG:  ProcessQuery
Aug 26 19:10:07 lerami pg-prod[3861]: [458] DEBUG:  CommitTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [459] DEBUG:  StartTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [460-1] DEBUG:  query: SELECT description FROM pg_description WHERE objoid =
20976and classoid = (SELECT oid FROM pg_class where
 
Aug 26 19:10:07 lerami pg-prod[3861]: [460-2]  relname = 'pg_class') and objsubid = 1
Aug 26 19:10:07 lerami pg-prod[3861]: [461] DEBUG:  ProcessQuery
Aug 26 19:10:07 lerami pg-prod[3861]: [462] DEBUG:  CommitTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [463] DEBUG:  StartTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [464-1] DEBUG:  query: SELECT description FROM pg_description WHERE objoid =
20976and classoid = (SELECT oid FROM pg_class where
 
Aug 26 19:10:07 lerami pg-prod[3861]: [464-2]  relname = 'pg_class') and objsubid = 2
Aug 26 19:10:07 lerami pg-prod[3861]: [465] DEBUG:  ProcessQuery
Aug 26 19:10:07 lerami pg-prod[3861]: [466] DEBUG:  CommitTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [467] DEBUG:  StartTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [468-1] DEBUG:  query: SELECT description FROM pg_description WHERE objoid =
20976and classoid = (SELECT oid FROM pg_class where 
Aug 26 19:10:07 lerami pg-prod[3861]: [468-2]  relname = 'pg_class') and objsubid = 3
Aug 26 19:10:07 lerami pg-prod[3861]: [469] DEBUG:  ProcessQuery
Aug 26 19:10:07 lerami pg-prod[3861]: [470] DEBUG:  CommitTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [471] DEBUG:  StartTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [472-1] DEBUG:  query: SELECT description FROM pg_description WHERE objoid =
20976and classoid = (SELECT oid FROM pg_class where
 
Aug 26 19:10:07 lerami pg-prod[3861]: [472-2]  relname = 'pg_class') and objsubid = 4
Aug 26 19:10:07 lerami pg-prod[3861]: [473] DEBUG:  ProcessQuery
Aug 26 19:10:07 lerami pg-prod[3861]: [474] DEBUG:  CommitTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [475] DEBUG:  StartTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [476-1] DEBUG:  query: SELECT description FROM pg_description WHERE objoid =
20976and classoid = (SELECT oid FROM pg_class where
 
Aug 26 19:10:07 lerami pg-prod[3861]: [476-2]  relname = 'pg_class') and objsubid = 5
Aug 26 19:10:07 lerami pg-prod[3861]: [477] DEBUG:  ProcessQuery
Aug 26 19:10:07 lerami pg-prod[3861]: [478] DEBUG:  CommitTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [479] DEBUG:  StartTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [480-1] DEBUG:  query: SELECT description FROM pg_description WHERE objoid =
20976and classoid = (SELECT oid FROM pg_class where
 
Aug 26 19:10:07 lerami pg-prod[3861]: [480-2]  relname = 'pg_class') and objsubid = 6
Aug 26 19:10:07 lerami pg-prod[3861]: [481] DEBUG:  ProcessQuery
Aug 26 19:10:07 lerami pg-prod[3861]: [482] DEBUG:  CommitTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [483] DEBUG:  StartTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [484-1] DEBUG:  query: SELECT description FROM pg_description WHERE objoid =
20976and classoid = (SELECT oid FROM pg_class where
 
Aug 26 19:10:07 lerami pg-prod[3861]: [484-2]  relname = 'pg_class') and objsubid = 7
Aug 26 19:10:07 lerami pg-prod[3861]: [485] DEBUG:  ProcessQuery
Aug 26 19:10:07 lerami pg-prod[3861]: [486] DEBUG:  CommitTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [487] DEBUG:  StartTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [488-1] DEBUG:  query: SELECT description FROM pg_description WHERE objoid =
20976and classoid = (SELECT oid FROM pg_class where
 
Aug 26 19:10:07 lerami pg-prod[3861]: [488-2]  relname = 'pg_class') and objsubid = 8
Aug 26 19:10:07 lerami pg-prod[3861]: [489] DEBUG:  ProcessQuery
Aug 26 19:10:07 lerami pg-prod[3861]: [490] DEBUG:  CommitTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [491] DEBUG:  StartTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [492-1] DEBUG:  query: SELECT description FROM pg_description WHERE objoid =
20976and classoid = (SELECT oid FROM pg_class where
 
Aug 26 19:10:07 lerami pg-prod[3861]: [492-2]  relname = 'pg_class') and objsubid = 9
Aug 26 19:10:07 lerami pg-prod[3861]: [493] DEBUG:  ProcessQuery
Aug 26 19:10:07 lerami pg-prod[3861]: [494] DEBUG:  CommitTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [495] DEBUG:  StartTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [496-1] DEBUG:  query: SELECT description FROM pg_description WHERE objoid =
20976and classoid = (SELECT oid FROM pg_class where
 
Aug 26 19:10:07 lerami pg-prod[3861]: [496-2]  relname = 'pg_class') and objsubid = 10
Aug 26 19:10:07 lerami pg-prod[3861]: [497] DEBUG:  ProcessQuery
Aug 26 19:10:07 lerami pg-prod[3861]: [498] DEBUG:  CommitTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [499] DEBUG:  StartTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [500-1] DEBUG:  query: SELECT description FROM pg_description WHERE objoid =
20976and classoid = (SELECT oid FROM pg_class where
 
Aug 26 19:10:07 lerami pg-prod[3861]: [500-2]  relname = 'pg_class') and objsubid = 0
Aug 26 19:10:07 lerami pg-prod[3861]: [501] DEBUG:  ProcessQuery
Aug 26 19:10:07 lerami pg-prod[3861]: [502] DEBUG:  CommitTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [503] DEBUG:  StartTransactionCommand
Aug 26 19:10:07 lerami pg-prod[3861]: [504] DEBUG:  query: SELECT proname from pg_proc where pg_proc.oid = '-'::oid
Aug 26 19:10:07 lerami pg-prod[3861]: [505] ERROR:  oidin: error in "-": can't parse "-"
Aug 26 19:10:07 lerami pg-prod[3861]: [506] DEBUG:  AbortCurrentTransaction
Aug 26 19:10:07 lerami pg-prod[3861]: [507] DEBUG:  proc_exit(0)
Aug 26 19:10:07 lerami pg-prod[3861]: [508] DEBUG:  shmem_exit(0)
Aug 26 19:10:07 lerami pg-prod[3861]: [509] DEBUG:  exit(0)

Any ideas on how I can get my data out? 

LER

-- 
Larry Rosenman                     http://www.lerctr.org/~ler
Phone: +1 972-414-9812                 E-Mail: ler@lerctr.org
US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749


Re: pg_dump failure, can't get data out...

From
Tom Lane
Date:
Larry Rosenman <ler@lerctr.org> writes:
> I had upgraded yesterday and *THOUGHT* all was fine. 
> Forgot to pg_dump, so I restored my $PGLIB and bin directory, now get
> the following when I try to pg_dump:

Uh ... you did what exactly?  Upgraded from what to what?  And what's
this about "restoring the bin directory"?  We've forced initdb often
enough in the past weeks that I'd not think the data directory would
be interchangeable across development versions more than a few days
apart...
        regards, tom lane


Re: pg_dump failure, can't get data out...

From
Larry Rosenman
Date:
* Tom Lane <tgl@sss.pgh.pa.us> [010826 19:25]:
> Larry Rosenman <ler@lerctr.org> writes:
> > I had upgraded yesterday and *THOUGHT* all was fine. 
> > Forgot to pg_dump, so I restored my $PGLIB and bin directory, now get
> > the following when I try to pg_dump:
> 
> Uh ... you did what exactly?  Upgraded from what to what?  And what's
> this about "restoring the bin directory"?  We've forced initdb often
> enough in the past weeks that I'd not think the data directory would
> be interchangeable across development versions more than a few days
> apart...
I had dumped and initdb'd to yesterdays sources.  I then ran for a
while.  My backup ran last nite/this am. 

I then cvs update'd today, and compiled/installed.  Got the initdb
warning (missing the initdb forced, my fault, and stupid). 

I then restored my /usr/local/pgsql/bin and /usr/local/pgsql/lib
directory from the tape cut last nite. 

I then get the posted error's. 

:-( 

LER

> 
>             regards, tom lane

-- 
Larry Rosenman                     http://www.lerctr.org/~ler
Phone: +1 972-414-9812                 E-Mail: ler@lerctr.org
US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749


Re: pg_dump failure, can't get data out...

From
Tom Lane
Date:
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


Re: pg_dump failure, can't get data out...

From
Larry Rosenman
Date:
* Tom Lane <tgl@sss.pgh.pa.us> [010826 19:39]:
> 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 ;-)
It's not totally irreplaceable, but... 

Hey, I find bugs this way. 

This fix gets the data out. 

NOW, do we need a regression test for pg_dump? 

LER

> 
>             regards, tom lane

-- 
Larry Rosenman                     http://www.lerctr.org/~ler
Phone: +1 972-414-9812                 E-Mail: ler@lerctr.org
US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749


Re: pg_dump failure, can't get data out...

From
Tom Lane
Date:
Larry Rosenman <ler@lerctr.org> writes:
> NOW, do we need a regression test for pg_dump? 

We always have and still do (isn't it on the TODO list?).  Some Great
Bridge people have been poking at the problem but haven't yet come up
with a clean answer AFAIK.  The obvious approach of dumping and
reloading the regression database does not currently work well...
        regards, tom lane


Re: pg_dump failure, can't get data out...

From
Larry Rosenman
Date:
* Tom Lane <tgl@sss.pgh.pa.us> [010826 19:52]:
> Larry Rosenman <ler@lerctr.org> writes:
> > NOW, do we need a regression test for pg_dump? 
> 
> We always have and still do (isn't it on the TODO list?).  Some Great
> Bridge people have been poking at the problem but haven't yet come up
> with a clean answer AFAIK.  The obvious approach of dumping and
> reloading the regression database does not currently work well...
I understand. Thanks for the quick looksee and finding this one. :-) 

I'll be more careful with making sure pg_dump works before losing
updates and saving the pg_dump output. 


> 
>             regards, tom lane

-- 
Larry Rosenman                     http://www.lerctr.org/~ler
Phone: +1 972-414-9812                 E-Mail: ler@lerctr.org
US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749


Re: pg_dump failure, can't get data out...

From
Peter Eisentraut
Date:
Larry Rosenman writes:

> pg_dump: query to get function name of oid - failed: ERROR:  oidin:
> error in "-": can't parse "-"

It's trying to dump a functional index but the function appears to be
absent.  (Therefore the name comes out as '-'.)  It's hard to tell which
index this is because the query pg_dump uses does not ORDER BY, but if in
doubt you can try the query in pg_dump.c:getIndexes() yourself -- it will
be the first index.  Offhand I don't see a related change in pg_dump in
recent times, so it probably isn't necessarily an upgrade related issue,
it might be an inconsistent schema.

It might be easiest to remove the index in question before dumping.

-- 
Peter Eisentraut   peter_e@gmx.net   http://funkturm.homeip.net/~peter



Re: pg_dump failure, can't get data out...

From
Larry Rosenman
Date:
* Peter Eisentraut <peter_e@gmx.net> [010826 20:23]:
> Larry Rosenman writes:
> 
> > pg_dump: query to get function name of oid - failed: ERROR:  oidin:
> > error in "-": can't parse "-"
> 
> It's trying to dump a functional index but the function appears to be
> absent.  (Therefore the name comes out as '-'.)  It's hard to tell which
> index this is because the query pg_dump uses does not ORDER BY, but if in
> doubt you can try the query in pg_dump.c:getIndexes() yourself -- it will
> be the first index.  Offhand I don't see a related change in pg_dump in
> recent times, so it probably isn't necessarily an upgrade related issue,
> it might be an inconsistent schema.
> 
> It might be easiest to remove the index in question before dumping.
seems to happen on ANY table/index. 

I.E. I couldn't dump ANY user DB's. 

LER



> 
> -- 
> Peter Eisentraut   peter_e@gmx.net   http://funkturm.homeip.net/~peter

-- 
Larry Rosenman                     http://www.lerctr.org/~ler
Phone: +1 972-414-9812                 E-Mail: ler@lerctr.org
US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749


Re: pg_dump failure, can't get data out...

From
Tom Lane
Date:
Peter Eisentraut <peter_e@gmx.net> writes:
> Offhand I don't see a related change in pg_dump in
> recent times, so it probably isn't necessarily an upgrade related issue,
> it might be an inconsistent schema.

The proximate cause is that I changed pg_index.indproc from plain "oid"
to "regproc" a week ago, so the output format is different.  It seemed
like a good idea at the time ...

I have hacked pg_dump to force the output format back to oid, but I'm
sorta thinking that the schema change was ill-advised because it's
likely to break other applications that look at indproc.  Should we
change the column back to oid?
        regards, tom lane