Re: warning en el log

From: Jaime Casanova <jaime(at)2ndquadrant(dot)com>
To: "Guillermo E(dot) Villanueva" <guillermovil(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: warning en el log
Date: 2013-07-06 11:27:43
Message-ID: CAJKUy5j91Ekx7a7o8RKK5K3coB6sEWMUXfFKg-WACxA9h_EUrA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2013/7/5 Guillermo E. Villanueva <guillermovil(at)gmail(dot)com>:
>
> 2013-07-05 20:53:16 ART WARNING: uso no estandar de escape en un literal de
> cadena en car.cter 128
> 2013-07-05 20:53:16 ART HINT: Use la sintaxis de escape para cadenas, por
> ej. E'\r\n'.
>
[...]
> En versión 9.1 directamente el sistema no funciona y casi seguro que es por
> esto.
>

El caracter \ según el estándar SQL no tiene ningún significado
especial. Aunque estamos
acostumbrados a usarlo para asignar un significado espercial al
siguiente caracter, para
que me entiendas, si lees \n normalmente piensas en un salto de linea
(lenguaje c o php) o
\' en una comilla dentro de un texto (plpgsql o sql puro, por ejemplo)

Sin embargo esa concepción va en contra del estándar SQL que dice que
\' representa a
un backslash seguido de una comilla simple, es decir dos caracteres no
uno, y el segundo no
es especial de algún modo.

Para esto se invento una variable llamada standard_conforming_strings
que venia en off y que en
9.1 empezó a estar en on de forma predeterminada.

Haz la prueba ejecuta esta sentencia en 9.0 y en 9.1:

SELECT 'Jaime\'s test';

Donde estoy usando el backslash para indicar que la comilla junto a
'Jaime' es parte del texto
y no termina la cadena.

En 9.0 habrá funcionado enviando el mensaje que muestras y en 9.1
habrá dado un error por que
te pide una comilla adicional. Claro, 9.1 ve esa comilla en medio como
cerrando el texto así que
la comilla al final abre un nuevo texto.

SOLUCIÓN: pon standard_conforming_strings en off en el postgresql.conf
del 9.1 (no te olvides
hacer un reload)

PS: también me parece tonto que no muestre la sentencia donde esta el WARNING

--
Jaime Casanova www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación
Phone: +593 4 5107566 Cell: +593 987171157

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guillermo E. Villanueva 2013-07-06 19:00:13 Re: warning en el log
Previous Message motum hesa 2013-07-06 02:32:55 Re: warning en el log