Re: PgAdminIII

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Jaime Casanova <systemguards(at)yahoo(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: PgAdminIII
Date: 2005-01-09 16:33:14
Message-ID: 20050109163314.GF4194@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Wed, Jan 05, 2005 at 02:10:49PM -0600, Jaime Casanova wrote:

> > Veo al crear la tabla que aparecen 6 nuevas
> > columnas: TableOid, Cmax,
> > Xmax, Cmin, Xmin y Ctid que no se que función
> > cumplen.
> >
> Son columnas propias de postgres
> - tableoid: es un identificador de objeto
> - cmax y cmin: no se
> - xmax y xmin: indican la transaccion actual, si el
> tuple (esa imagen de la fila que estas
> viendo) aun es valido. y otra funcion
> que no recuerdo.
> - ctid: no me acuerdo

tableoid es el OID de la tabla que contiene al registro en cuestion.
cmin y cmax son los Id de "comando" (CommandId) que crean/destruyen un
registro dentro de una transaccion. Sirve para evitar el "problema
Halloween", que ocurre cuando un UPDATE genera un nuevo registro que
cumple las condiciones de su propio WHERE; si el UPDATE continua mas
adelante con los registros para modificar y encuentra el nuevo registro,
intentaria actualizarlo de nuevo entrando en un bucle infinito. Este
problema (y otros de esta naturaleza) se evitan usando Cmin/Cmax.

CTID es la posicion fisica del registro dentro de la tabla; es el par
(Numero de Pagina, Posicion dentro de la Pagina).

> no las molestes a esas columnas, de hecho deberian
> estar ocultas.

> > ERROR: current transaction is aborted, commands
> > ignored until end of transaction block.
>
> Aparentemente hicistes algo mal ese mensaje indica una
> condicion de error y que ejecuto un ROLLBACK.

Cuando estas dentro de una transaccion y ocurre un error, la transaccion
todavia esta abierta pero en "estado de aborto", en el cual no puedes
hacer nada util excepto cerrar la transaccion, con lo cual sales del
estado de aborto y vuelves a operacion normal.

En 8.0 puedes salir del estado de aborto y regresar a un "punto de
salvaguarda" dentro de la transaccion, si lo has definido previamente
mediante el comando SAVEPOINT.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end." (2nd Commandment for C programmers)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-01-09 16:39:16 Re: migracion de postgresql 7.0 a 7.4
Previous Message Alvaro Herrera 2005-01-09 15:58:09 Re: Problemas con inscripcion desde postgresql.cl