This looks like a place where the sprintf is being caught with too long a
string. Although 487 bytes shouldn't be too long; perhaps the rest of
what's in there is causing sprintf to hooch. The limit is supposed to be
around 1kB. I'll try changing the fmt style string to a series of appends.
It's less efficient, but may work.
From: Patrick Welche,SCC,ext.35710,
Sent: 00/01/07 12:56
Subject: [HACKERS] pg_dump problem
% pg_dump -sv regression > foo
-- dumping out user-defined procedural languages
-- dumping out user-defined functions
Segmentation fault (core dumped)
#0 0x4810dc02 in vfprintf ()
#1 0x480c4963 in vsprintf ()
#2 0x48078e8a in appendPQExpBuffer (str=0x616e746f,
fmt=0x3d20656d <Address 0x3d20656d out of bounds>) at
#3 0x6c732065 in ?? ()
% tail foo
' LANGUAGE 'plpgsql';
CREATE FUNCTION "tg_iface_biu" ( ) RETURNS opaque AS '
select into sysrec * from
ie., it stops in mid flight, the line is
select into sysrec * from system where name = new.sysname;
so it seems that the PQExpBuffer may well be to full ?
-s means dumpSchema(), getFuncs(), dumpFuncs(), dumpOneFunc()
appendPQExpBuffer(q, " ) RETURNS %s%s AS '%s' LANGUAGE '%s';\n",
(finfo[i].retset) ? " SETOF " : "",
so it cored while printing func_def ?! which is only 487 bytes long..
Rather confused.. Are any of you seeing this?