Re: sobre savepoints

From: Raúl Andrés Duque Murillo <ra_duque(at)yahoo(dot)com(dot)mx>
To: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>, "Linos" <info(at)linos(dot)es>
Cc: "Lista PostgreSql" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: sobre savepoints
Date: 2008-08-01 10:02:28
Message-ID: 2FE5AA64E6AD4574B88DA2E47DEC29A1@Principal
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

--------------------------------------------------
From: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>
Sent: Thursday, July 31, 2008 9:19 PM
To: "Linos" <info(at)linos(dot)es>
Cc: "Lista PostgreSql" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] sobre savepoints

> Linos escribió:
>> tambien podria dentro de la funcion quizas lanzar primero el select y
>> segun lanzar un insert o un update, no? deberia ser mas rapido que el
>> savepoint? lo que no se como resolver en plpsql es el tema del numero de
>> columnas variable pero supongo q habra alguna forma, no?
>
> El problema es que para hacer un select para verificar si necesitas
> update o insert, necesitarias bloquear la tabla de antemano; de lo
> contrario puede pasar que hagas el select, diga que no esta el registro,
> y justo algun otro proceso lo inserte antes que tu alcances a
> insertarlo.
>
> Si no te complica bloquear la tabla, entonces creo que este
> procedimiento seria lo mas rapido. (Digo "creo" porque es posible que
> la otra alternativa es hacerlo con un "upsert" usando un savepoint. Hay
> un procedimiento de ejemplo de esto en la documentacion de Postgres. La
> gracia del upsert es que solo tienes que hacer un recorrido de la tabla
> en el caso que funcione a la primera; en cambio si bloqueas la tabla
> tienes que hacer primero el select y despues el insert o update, o sea
> son dos recorridos en todos los casos. Sin embargo tiene la desventaja
> de tener que crear y destruir el savepoint por cada registro).
>

Alvaro ... el UPSERT lo veo dentro de los TODO de postgresql .... o estoy
equivocado?

Atentamente,

RAUL DUQUE
Bogotá, Colombia

> --
> Alvaro Herrera
> http://www.PlanetPostgreSQL.org/
> "After a quick R of TFM, all I can say is HOLY CR** THAT IS COOL!
> PostgreSQL was
> amazing when I first started using it at 7.2, and I'm continually
> astounded by
> learning new features and techniques made available by the continuing work
> of
> the development team."
> Berend Tober,
> http://archives.postgresql.org/pgsql-hackers/2007-08/msg01009.php
> --
> TIP 4: No hagas 'kill -9' a postmaster
>
> __________ Information from ESET Smart Security, version of virus
> signature database 3316 (20080731) __________
>
> The message was checked by ESET Smart Security.
>
> http://www.eset.com
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alejandro D. Burne 2008-08-01 11:56:57 Postgresql y web services
Previous Message Alvaro Herrera 2008-08-01 02:19:16 Re: sobre savepoints