Thread: [SQL] Static variable inside PL/pgSQL (or) native C function

[SQL] Static variable inside PL/pgSQL (or) native C function

From
athinivas
Date:
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

Re: [SQL] Static variable inside PL/pgSQL (or) native C function

From
Pavel Stehule
Date:
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

Re: [SQL] Static variable inside PL/pgSQL (or) native C function

From
"David G. Johnston"
Date:
On Fri, Sep 29, 2017 at 6:46 AM, athinivas <athinivas@gmail.com> 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​

Re: [SQL] Static variable inside PL/pgSQL (or) native C function

From
athinivas
Date:
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

Re: [SQL] Static variable inside PL/pgSQL (or) native C function

From
Pavel Stehule
Date:


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 &lt;

> athinivas@

> &gt; 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