Excerpts from Walter Negro's message of vie may 28 08:00:09 -0400 2010: > Álvaro, > Hice nuevas pruebas y decidí enviar el dato bytea configurado como binario. > Según la documentación, el parámetro paramLengths sólo es tomado en > cuenta si el dato es enviado con formato binario. > Algunas veces la documentación puede no ser exactamente lo que ocurre > internamente por muchas razones, así que me puse a mirar el código de la > libpq y encontré que si el parámetro no es pasado como binario, la > librería calcula el largo del string usando la función strlen(). Por lo > tanto, la única forma de pasar correctamente un dato binario a un campo > bytea, que pueda contener caracteres nulos, es pasarlo justamente como > binario.
OK, eso es lo que sospechaba, gracias por confirmarlo. > Así que la conclusión que saco es que los datos bytea hay que pasarlos > configurados binario porque si no, el servidor puede hacer conversiones, > además de ser la única forma de pasar datos binarios que contengan > caracteres nulos. Supongo que la otra alternativa es escapar estos datos, usando \000 donde haya caracteres nulos. ¿Has probado usar la biblioteca libpqtypes? http://libpqtypes.esilo.com/ -- Álvaro Herrera <alvhe...@commandprompt.com> The PostgreSQL Company - Command Prompt, Inc. PostgreSQL Replication, Consulting, Custom Development, 24x7 support - 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