Re: Nueva pregunta transaccion

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Mariano Lauría <mlauria2004(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Nueva pregunta transaccion
Date: 2006-06-08 19:58:13
Message-ID: 20060608195813.GC20220@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Mariano Lauría escribió:
> Bueno muy bien , lo del html y mayusculas me parace barbaro que me lo hayan
> aclarado, ahora me parece que la lista no esta para medir la capacidad de
> la gente por sobre las preguntas que se realizan si es asi ok lo acepto y
> se terminó.

El tema del HTML en mi caso es simplemente porque mi cliente de correo
no muestra el texto limpiamente, por lo tanto es dificil de leer.

Por otro lado el tema de la netiqueta es siempre buena tenerla presente.
Pero no te preocupes -- te lo vamos a decir esta vez, y nunca mas
(puesto que asumo que nunca mas va a ser necesario).

Si quieres destacar texto, tipicamente se usa *esto* (que en algunos
clientes de correo se marca con negrilla) o _esto_ (subrayado) o /esto/
(italica o cursiva).

> Igualmente te voy a explicar Alvaro que no soy un experto en esto pero
> tampoco un novato que se pone hacer preguntas "raras" :

No te preocupes, no me interesa tu curriculum. Lo que quiero es que me
digas para que lo quieres para saber si el uso que le estas dando es
correcto o no. Ha tocado aca en esta lista que algun novato llega y
pregunta "como se hace tal cosa?" Y uno les responde exactamente eso.
Pero llegan de vuelta "ah, mira, no me sirve, hice lo que me dijiste
pero mi computadora exploto". Y entonces aparece una tremenda
explicacion que si hubieran dado al principio, habria estado claro que
la respuesta que se les dio no era adecuada por tal o cual razon.

> Para que cada uno de mis comandos (insert, delete, update) este
> representados en una transacción necesito saber, cuando se dispara cada
> trigger de mis tablas publicadas la transacción en curso para luego guardar
> esos datos en una de mis tablas (del sistema) y distribuir esas
> transacciones;

Sugerencia: no uses el ID de transaccion. Por que no? Porque no esta
garantizado que sea constante en una transaccion. Tu codigo va a
empezar a fallar en el instante en que agregues uso de savepoints. No
los usas? Bien, pero y cuando uses una funcion en PL/pgSQL que use
EXCEPTION? Supon que man~ana se te olvida el asunto de los ID de
transaccion ...

Oh, si llegas a usar PL/perl, vas a tener problemas rapidamente porque
eso tambien abre subtransacciones internamente, sin decirtelo.

Y ahora en pgsql-hackers se esta discutiendo que EXPLAIN podria llegar a
usar subtransacciones internamente, sin decirtelo. Y uno nunca sabe
cuando VACUUM puede ser modificado para eso (se ha discutido). En
resumen: No asumas que el ID de transaccion es constante. Puede que hoy
funcione, pero no sabes nada del futuro.

Una cosa que se me ocurre es que en lugar de usar "tablas de sistema",
uses tablas temporales para guardar la informacion sobre la transaccion;
y al final de la transaccion, tomas todo lo que guardaste ahi y lo
mueves a la "tabla de sistema", incorporando opcionalmente un
identificador de "operacion" que podria basarse en una secuencia.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mariano Lauría 2006-06-08 20:25:19 Re: Nueva pregunta transaccion
Previous Message Mariano Lauría 2006-06-08 19:41:50 Re: Nueva pregunta transaccion