From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Elliot Chance <elliotchance(at)gmail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Recreate C functions? |
Date: | 2010-12-14 08:49:55 |
Message-ID: | AANLkTikvD-_+YeHMsrWSwH=3e4bPD0YQHV=8jt9ZHM8u@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
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?
>
you need reload library. I don't know, if it is really necessary, but
I restart server when I reinstall (after recompilation) some code.
Regards
Pavel Stehule
> 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
>
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2010-12-14 08:52:14 | Re: Recreate C functions? |
Previous Message | Elliot Chance | 2010-12-14 08:32:37 | Recreate C functions? |