Re: Recreate C functions?
От | Elliot Chance |
---|---|
Тема | Re: Recreate C functions? |
Дата | |
Msg-id | 4CF7016C-9372-447C-A3B9-A782213DF18C@gmail.com обсуждение исходный текст |
Ответ на | Re: Recreate C functions? (Pavel Stehule <pavel.stehule@gmail.com>) |
Ответы |
Re: Recreate C functions?
|
Список | pgsql-general |
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 <elliotchance@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.oThen create the function:CREATE FUNCTION plpgsql_test(text) RETURNS integerAS '/storage/Scripts/plpgsql/funcs', 'plpgsql_test'LANGUAGE C STRICT IMMUTABLE;So far it works:select plpgsql_test('abc');100The 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
В списке pgsql-general по дате отправления: