OK, my fault, in the docs: "After it is used for the first time, a dynamically loaded object file is retained in memory. Future calls in the same session to the function(s) in that file will only incur the small overhead of a symbol table lookup. If you need to force a reload of an object file, for example after recompiling it, begin a fresh session."
So this works for testing: psql -U fts -c "select plpgsql_test('abc');" On 14/12/2010, at 7:52 PM, Pavel Stehule wrote: > Hello > > it's maybe offtopic - you use a deprecated API > > better to use V1 interface. > > Regards > > Pavel Stehule > > 2010/12/14 Elliot Chance <elliotcha...@gmail.com>: >> Hi, >> >> I seem to be having trouble recreating C functions, the source: >> >> === test.c ==== >> #include <postgres.h> >> #include <fmgr.h> >> >> PG_MODULE_MAGIC; >> >> int32 plpgsql_test(text* s) { >> return 100; >> } >> === end === >> >> Then compile: >> $ cc -fpic -c -I/usr/include/pgsql/server test.c >> $ ld -shared -o funcs.so test.o >> >> Then create the function: >> CREATE FUNCTION plpgsql_test(text) RETURNS integer >> AS '/storage/Scripts/plpgsql/funcs', 'plpgsql_test' >> LANGUAGE C STRICT IMMUTABLE; >> >> So far it works: >>> select plpgsql_test('abc'); >> 100 >> >> The problem is if I change test.c like: >> return 200; >> >> Then recompile, drop and create the function it still returns 100? However >> if I compile it as funcs2.so it will then create the function with the >> correct 200 result ... what am I doing wrong? >> >> Thanks, >> Elliot >> >> >> -- >> Sent via pgsql-general mailing list (pgsql-general@postgresql.org) >> To make changes to your subscription: >> http://www.postgresql.org/mailpref/pgsql-general >>