Excerpts from Alejandro Carrillo's message of mar may 29 14:15:18 -0400 2012:
> Ok, entiendo. Ya llegue a ese archivo a través de la ruta 
> pgsql\data\base\16641 y copie el archivo 58031. ¿Ahora como quito el hint bit
> de "xmax committed" y coloco el valor de "xmax" en 0, usando el editor 
> hexadecimal (en donde coloco en el archivo esos cambios)?

Usa pg_filedump para averiguar el offset de cada tupla.  Luego mira en
htup.h la definición de HeapTupleHeaderData para saber en qué posición
de la cabecera de tupla está cada elemento; tú buscas t_infomask y
t_xmax.  Una forma simple puede ser ver el pg_filedump de cada tupla qué
valor tiene cada campo, y encontrar ese valor en el editor (ojo con
valores little endian: los bytes se ponen al revés).  Tocas el archivo,
grabas, y luego un nuevo pg_filedump te dirá si has modificado la
posición correcta.

Otra opción que se me acaba de ocurrir es tener el servidor corriendo, y
usando GDB modificar los valores "en caliente" en el buffer que tiene la
página de datos correspondiente.  Neceesitas saber suficiente de GDB
y tener familiaridad con el código de Postgres para saber qué tocar y
cómo .. pero al menos no tienes que estar moviendo bytes a mano.  Como
nunca lo he hecho, no explicaré cómo se hace porque no lo sé.

-- 
Álvaro Herrera <alvhe...@alvh.no-ip.org>
-
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