Gunnar Wolf dijo [Thu, Jan 20, 2011 at 06:23:26PM -0600]:
> Desconozco las sutilezas de las reglas, pero... ¿Qué pasa si..
> 
> • Abro una transacción
> • Hago un select
> • Hago rollback
> 
> ..?
> 
> ¿Se registra o no?

Ok, acá me encontré la respuesta:
+------------------------------------------------------------
| http://www.mail-archive.com/pgsql-general@postgresql.org/msg74280.html
+------------------------------------------------------------
| > But is nowhere stated if (multiple) commands inside a rule are
| > treated
| > as an implicit transaction as a whole.
| 
| If you don't specifically open a transaction at the top level (i.e. in
| 'psql' or SQL from your application's code), PG will encapsulate every
| query you execute within its own transaction.  The statements in any
| rules called will execute in the context of that transaction, along
| with any other operations such as trigger calls, table updates,
| whatever.  If something in that implicit transaction fails, it will be
| rolled back; otherwise, it will be committed once the statement is
| finished. 
| 
| Also, you need to think of rules as 'query rewrites' rather than
| 'code that executes', because that's what they are.
| 
| I hope that helps.
| 
| -Doug
+------------------------------------------------------------

En pocas palabras: Una regla reescribe las solicitudes, por lo cual
todo lo que dispares desde una regla queda inscripto en la misma
transacción en la que estabas.
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a