[Pgsql-ayuda] Sacando "CONTEXT:" del log (y del mensaje de error que devuelve)

Alvaro Herrera Munoz alvherre@dcc.uchile.cl
Fri, 12 Dec 2003 19:55:41 -0300


On Fri, Dec 12, 2003 at 07:12:17PM -0300, Fernando Papa wrote:

> > On Fri, Dec 12, 2003 at 06:43:23PM -0300, Fernando Papa wrote:
> > 
> > > ERROR:  TR_CORE_USUARIOS_USERNAME_DUPLICATED_USERNAME
> > 
> > De donde salio este string?  Ciertamente no es parte de los 
> > mensajes del backend.
> 
> No, es cierto. este es un mensaje que sale con el raise error que se ejecuta
> dentro del plpgsql.

Ah, ok.

> > No uses el mensaje de error.  Usa el codigo de error.  Es 
> > mucho mas confiable ... y si pones los mensajes en espa?ol, 
> > todo tu codigo se va a las pailas.
> 
> pero no existe un codigo de error... el error lo estoy forzando yo con el
> raise error.

Entiendo.  En ese caso tendras que quitar todo lo que viene despues del
campo principal del mensaje, a mano.  No es dificil.


> Mmmm... vos decis que me manda el mensaje de error en campos diferentes? creo
> que lo recibo todo concatenado...  Tengo un postgres 7.4 en solaris que solo
> me muestra la parte ERROR:, mientras que el de linux me concatena todo...
> ERROR y CONTEXT.

Si, lo recibes todo concatenado porque la biblioteca de PHP no se ha
actualizado para usar los campos.

Si compilaste PHP con la libpq de Pg 7.4, entonces recibes todos los
campos de error.  En cambio si la compilas con la libpq de una version
anterior, recibes solo el cuerpo principal.  Al menos eso es lo que
entiendo leyendo el codigo.  Puedes parchar el codigo para que no
envie los otros campos (contexto, hint, detalle, etc)


Del log del servidor lo puedes sacar poniendo la opcion log_error_verbosity
a terse.

-- 
Alvaro Herrera (<alvherre[@]dcc.uchile.cl>)
"I would rather have GNU than GNOT."  (ccchips, lwn.net/Articles/37595/)