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