Thread: Advisory locks

Advisory locks

From
"Tom Paynter"
Date:
Hello All,

I have a quick question about advisory locks, that I have not been able to
figure out from the documentation.


Say I have two tables:
CREATE TABLE table_a
(
table_a_id        serial primary key,
some more rows....
);

CREATE TABLE table_b
(
table_b_id        serial primary key,
some more rows....
);


And I execute the following lines (from separate sessions):
SELECT pg_advisory_lock(table_a_id) FROM table_a WHERE table_a_id=5;
SELECT pg_advisory_lock(table_b_id) FROM table_b WHERE table_b_id=5;


Will this try to acquire the same lock?
Or is the id tied to the table somehow?


Thanks for your time.
Tom




Re: Advisory locks

From
"Tom Paynter"
Date:
Thank you Sándor,

Just out of interest, is the following done just to make sure a row exists:
SELECT pg_advisory_lock(table_a_id) FROM table_a WHERE table_a_id=5;

As opposed to:
SELECT pg_advisory_lock(5);

Cheers,
Tom



On Wed, February 11, 2015 10:40 am, daku.sandor@gmail.com wrote:
> The parameter of the pg_advisory_lock is a simple bigint and of course it
> is completely unaware of the source of the value.
>
> Regards,
> Sándor Daku
>
>
>   Original Message  
> From: Tom Paynter
> Sent: 2015. február 11., szerda 11:33
> To: pgsql-sql@postgresql.org
> Subject: [SQL] Advisory locks
>
>
> Hello All,
>
>
> I have a quick question about advisory locks, that I have not been able
> to figure out from the documentation.
>
>
> Say I have two tables:
> CREATE TABLE table_a
> (
> table_a_id serial primary key, some more rows.... );
>
>
> CREATE TABLE table_b
> (
> table_b_id serial primary key, some more rows.... );
>
>
>
> And I execute the following lines (from separate sessions):
> SELECT pg_advisory_lock(table_a_id) FROM table_a WHERE table_a_id=5;
> SELECT pg_advisory_lock(table_b_id) FROM table_b WHERE table_b_id=5;
>
>
>
> Will this try to acquire the same lock?
> Or is the id tied to the table somehow?
>
>
>
> Thanks for your time.
> Tom
>
>
>
>
> --
> Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-sql
>
>





Re: Advisory locks

From
daku.sandor@gmail.com
Date:
The parameter of the pg_advisory_lock is a simple bigint and of course it is completely unaware of the source of the
value.

Regards,
Sándor Daku

  Original Message  
From: Tom Paynter
Sent: 2015. február 11., szerda 11:33
To: pgsql-sql@postgresql.org
Subject: [SQL] Advisory locks

Hello All,

I have a quick question about advisory locks, that I have not been able to
figure out from the documentation.


Say I have two tables:
CREATE TABLE table_a
(
table_a_id serial primary key,
some more rows....
);

CREATE TABLE table_b
(
table_b_id serial primary key,
some more rows....
);


And I execute the following lines (from separate sessions):
SELECT pg_advisory_lock(table_a_id) FROM table_a WHERE table_a_id=5;
SELECT pg_advisory_lock(table_b_id) FROM table_b WHERE table_b_id=5;


Will this try to acquire the same lock?
Or is the id tied to the table somehow?


Thanks for your time.
Tom



--
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql