Thread: BUG #9548: jpg error 53 when trying to view jpg stored in blob field

BUG #9548: jpg error 53 when trying to view jpg stored in blob field

From
Joyce.Kai@honeywell.com
Date:
The following bug has been logged on the website:

Bug reference:      9548
Logged by:          Joyce Kai
Email address:      Joyce.Kai@honeywell.com
PostgreSQL version: 9.3.3
Operating system:   Windows 7 64-bit
Description:

I use PostgreSQL in an application written in Delphi.  We started with
PostgreSQL 8.1.  I store a jpg image in a blob field using Delphi code.  We
recently upgraded to 8.3 because 8.1 is no longer supported.  However, the
installation for 8.3 frequently fails on Windows 7 64-bit, and PostgreSQL
8.3 is about to be obsoleted anyway, so we have been telling them to
download and install the latest version when it fails.  A few users have
installed 9.3.  When they attempt to view the jpg image stored in the
database, they get jpg error 53.  We have found that if we have them
uninstall the 9.3 server and install the 8.1 server, the jpg image can be
stored and viewed just fine.  Also, if I use the 8.1 server to store the
image, and then back up and restore the database onto a 9.3 server, the
image can be viewed just fine on the 9.3 server.  So I think the problem is
with storing the image, even though the error message occurs when getting it
back out.  Please make this feature work the same way in 9.3 as it did in
8.1 so we can upgrade.
Joyce.Kai@honeywell.com writes:
> I use PostgreSQL in an application written in Delphi.  We started with
> PostgreSQL 8.1.  I store a jpg image in a blob field using Delphi code.  We
> recently upgraded to 8.3 because 8.1 is no longer supported.  However, the
> installation for 8.3 frequently fails on Windows 7 64-bit, and PostgreSQL
> 8.3 is about to be obsoleted anyway, so we have been telling them to
> download and install the latest version when it fails.  A few users have
> installed 9.3.  When they attempt to view the jpg image stored in the
> database, they get jpg error 53.

You've provided almost no information about what's happening at the
database level, but a likely guess is that you're storing the image in
a bytea field and there's client-side code that doesn't know about the
hex-based bytea output format that was introduced in 9.0.  If you don't
want to update the client code you can set bytea_output = escape to get
the old format.

A different line of thought is that the client-side code may be confused
about whether to double backslashes in input strings; that would be
associated with the standard_conforming_strings setting, which has also
changed its default since 8.1.

            regards, tom lane