Thread
-
pg_dump bug - problems along the way
Oliver Elphick <olly@lfix.co.uk> — 1998-11-20T23:30:29Z
Still trying to fix the bug with inherited check constraints... I have tried to create a min(oid) aggregate, but when I use it, I get the message `ERROR: fmgr_info: function 108994: cache lookup failed'. What is the problem, please? I created it thus: create function oid4smaller (oid, oid) returns oid as '/home/olly/cprogs/oidcompare.so' language 'c'; create aggregate min (basetype = oid, sfunc1 = oid4smaller, stype1 = oid, stype2 = oid); The C file is compiled and linked thus (for Linux x86): $ gcc -o oidcompare.o -c -I/usr/include/postgresql oidcompare.c $ gcc -shared -o oidcompare.so oidcompare.o and it says: #include <postgresql/postgres.h> Oid oid4smaller(Oid o1, Oid o2) { return (o1 < o2 ? o1 : o2); } Oid oid4larger(Oid o1, Oid o2) { return (o1 > o2 ? o1 : o2); } -- Oliver Elphick Oliver.Elphick@lfix.co.uk Isle of Wight http://www.lfix.co.uk/oliver PGP key from public servers; key ID 32B8FAA1 ======================================== "If my people, which are called by my name, shall humble themselves, and pray, and seek my face, and turn from their wicked ways; then will I hear from heaven, and will forgive their sin, and will heal their land." II Chronicles 7:14 -
Re: [HACKERS] pg_dump bug - problems along the way
jose' soares <sferac@bo.nettuno.it> — 1998-11-23T14:35:34Z
Hello Oliver, sabato, 21 novembre 98, you wrote: OE> Still trying to fix the bug with inherited check constraints... OE> I have tried to create a min(oid) aggregate, but when I use it, I get OE> the message `ERROR: fmgr_info: function 108994: cache lookup failed'. OE> What is the problem, please? OE> I created it thus: OE> create function oid4smaller (oid, oid) returns oid as OE> '/home/olly/cprogs/oidcompare.so' language 'c'; OE> create aggregate min (basetype = oid, sfunc1 = oid4smaller, OE> stype1 = oid, stype2 = oid); Try this...it works... create function oid4smaller (oid, oid) returns oid as ' begin if $1 > $2 then return $2; else return $1; end if; end; ' language 'plpgsql'; create aggregate m (basetype = oid, sfunc1 = oid4smaller, stype1 = oid, stype2 = oid); prova=> select oid from a; oid ------ 376064 376065 380064 380065 380066 380067 (6 rows) prova=> select min(oid) from a; min ------ 376064 (1 row) -Jose'-