Thread: [SQL] Static variable inside PL/pgSQL (or) native C function
Hi, Is it possible to have static variable inside pgSQL C functions (or) PL/pgSQL?? I'm having a use case where I need to update a counter inside the function & it should be thread-safe. I've tried using static variable inside the C function along with pthread_mutex_lock/pthread_mutex_unlock. And found functions are not shared among each other. Thanks, Athi -- Sent from: http://www.postgresql-archive.org/PostgreSQL-sql-f2142323.html -- Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql
Hi
2017-09-29 15:46 GMT+02:00 athinivas <athinivas@gmail.com>:
Hi,
Is it possible to have static variable inside pgSQL C functions (or)
PL/pgSQL?? I'm having a use case where I need to update a counter inside the
function & it should be thread-safe.
I've tried using static variable inside the C function along with
pthread_mutex_lock/pthread_mutex_unlock. And found functions are not shared
among each other.
no, there are no similar feature. More it should not work as you are expecting, because PostgreSQL is process based, not thread based.
For this purpose, you can write some simple extension designed over shared memory.
Regards
Pavel
Thanks,
Athi
--
Sent from: http://www.postgresql-archive.org/PostgreSQL-sql-f2142323. html
--
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql
Hi,
Is it possible to have static variable inside pgSQL C functions (or)
PL/pgSQL?? I'm having a use case where I need to update a counter inside the
function & it should be thread-safe.
I've tried using static variable inside the C function along with
pthread_mutex_lock/pthread_mutex_unlock. And found functions are not shared
among each other.
Don't know what's possible in C; pretty sure no in pl/pgsql.
Why not just use a table and SQL locking features?
Dave
David G Johnston wrote > On Fri, Sep 29, 2017 at 6:46 AM, athinivas < > athinivas@ > > wrote: > >> Hi, >> >> Is it possible to have static variable inside pgSQL C functions (or) >> PL/pgSQL?? I'm having a use case where I need to update a counter inside >> the >> function & it should be thread-safe. >> >> I've tried using static variable inside the C function along with >> pthread_mutex_lock/pthread_mutex_unlock. And found functions are not >> shared >> among each other. >> >> > Don't know what's possible in C; pretty sure no in pl/pgsql. > > Why not just use a table and SQL locking features? > > Dave Sadly, I'm doing it in slave server, so not able to use any table INSERT/UPDATE. Does current_Setting() can be used to access any global variables?? thanks, Athi -- Sent from: http://www.postgresql-archive.org/PostgreSQL-sql-f2142323.html -- Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql
2017-10-03 19:15 GMT+02:00 athinivas <athinivas@gmail.com>:
David G Johnston wrote
> On Fri, Sep 29, 2017 at 6:46 AM, athinivas <
> athinivas@
> > wrote:
>
>> Hi,
>>
>> Is it possible to have static variable inside pgSQL C functions (or)
>> PL/pgSQL?? I'm having a use case where I need to update a counter inside
>> the
>> function & it should be thread-safe.
>>
>> I've tried using static variable inside the C function along with
>> pthread_mutex_lock/pthread_mutex_unlock. And found functions are not
>> shared
>> among each other.
>>
>>
> Don't know what's possible in C; pretty sure no in pl/pgsql.
>
> Why not just use a table and SQL locking features?
>
> Dave
Sadly, I'm doing it in slave server, so not able to use any table
INSERT/UPDATE. Does current_Setting() can be used to access any global
variables??
No, it is not possible
Regards
Pavel
thanks,
Athi
--
Sent from: http://www.postgresql-archive.org/PostgreSQL-sql-f2142323. html
--
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql