Re: Recreate C functions?

From: Elliot Chance <elliotchance(at)gmail(dot)com>
To: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Recreate C functions?
Date: 2010-12-14 09:07:03
Message-ID: 4CF7016C-9372-447C-A3B9-A782213DF18C@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)gmail(dot)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(at)postgresql(dot)org)
>> To make changes to your subscription:
>> http://www.postgresql.org/mailpref/pgsql-general
>>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message MICHÁLEK Jan Mgr. 2010-12-14 09:07:06 create language 'plpythonu' on win failed
Previous Message Elliot Chance 2010-12-14 09:01:26 Fwd: Recreate C functions?