Re: Row level lock in plpgsql

From: "Juan P(dot) Aviles" <jputem(at)yahoo(dot)es>
To: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Row level lock in plpgsql
Date: 2005-04-07 17:44:35
Message-ID: 20050407174435.10976.qmail@web26209.mail.ukl.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> wrote:

Define "no me funciono". Aca funciona perfectamente:

"no me funciono" : Lo que hago ha manera de prueba es en un procedimiento:

Select into reg * from tabla1 where prod='prod1' order by registro for update; para obtener los valores de la fila que quiero bloquear. y su posterior Insert en la misma tabla con los datos nuevos y en otro procedimiento hago lo mismo salvo que entre el select y el insert hago un loop de un cierto tiempo. Despues llamo al segundo procedimiento y luego al primero cosa que el segundo se quede en el loop (con la fila bloqueada supuestamente por el for update) y luego lanzo el primer procedimiento, pero, este me afecta de inmediato la fila sin tomar en cuenta el bloqueo. Es es lo que no me funciona. :)

En ningun caso he probado la forma que tu sugieres con perform me puedes dar mas datos acerca de esto, de todas maneras lo voy a probar de inmediato.

alvherre=# create table a (foo int);
CREATE TABLE
alvherre=# insert into a values (1);
INSERT 17311 1
alvherre=# create function asd (int ) returns void language plpgsql as
$$ begin perform * from a where foo=$1 for update; return; end$$;
CREATE FUNCTION
alvherre=# begin;
BEGIN
alvherre=# select asd(1);
asd
-----

(1 fila)

En otra sesion:

alvherre=# select asd(1);

se queda bloqueado hasta que haga commit en la primera.

Tendra algo que ver que trabajo con autocommit desde python ????

Tengo entendido que cualquier procedimiento que yo llame desde python o desde cualquier lenguaje automaticamente inicia una transaccion y hace un commit si esta termina bien o un rollback si termina mal.

Juan Pablo Avilés


---------------------------------

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Camilo Ismael Felipe Panadeiros 2005-04-07 17:54:47 problemas con funciones de fecha en pl-pgsql
Previous Message Mario A. Soto Cordones 2005-04-07 17:30:24 Re: Duda sobre constraints