muchas gracias por sus respuestas. Jaime, excelente explicación. evidentemente el problema es por el caracter, pero lo que quiero es poder ubicar que modulo o que parte del sistema (php) lo está enviando de esa manera. normalmente armo las query de la siguiente manera: $sql = "select columna1, columna2, columna3 from tabla1 innner join tabla2 using(columna) .... ...."; no recuerdo tener ninguna cadena con la famosa barra "\" pero *¿será que está chillando por que la sentencia no va en una sola línea?*
voy a ver si entiendo los parámetros de log para hacer que me mustre las sentencias que se ejecutan y comparar con los instantes del warning. Saludos Guillermo Villanueva El 6 de julio de 2013 08:27, Jaime Casanova <ja...@2ndquadrant.com>escribió: > 2013/7/5 Guillermo E. Villanueva <guillermo...@gmail.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 >