Alvaro Herrera escribió:
Oswaldo Hernández escribió:
OK. He hecho una función que lee la tabla pg_locks, obtiene los
advisory del pid actual y los desbloquea uno a uno, reservando un
rango para otros posibles usos.
¿Una función que los lee uno a uno? Seguro que eso se debe poder hacer
en una sola línea de código SQL.
Grrr, tengo demasiado metido el 'for' en la cabeza ;)
select
pg_advisory_unlock((lk.classid::int8 << 32) + lk.objid::integer)
from
pg_locks lk
where
pid = pg_backend_pid()
and locktype = 'advisory'
and classid <> 0
Esta ultima condición es el rango que reservo.
Saludos,
--
Oswaldo Hernández
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo