Thread: Re: [BUGS] pgtcl large object read/write corrupts binary data

Re: [BUGS] pgtcl large object read/write corrupts binary data

From
Tom Lane
Date:
ljb <ljb220@mindspring.com> writes:
> [Using PostgreSQL-7.3.4 and -7.4beta5, Tcl-8.4.x.]
> Binary data written to a Large Object with libpgtcl's pg_lo_write is
> corrupted.  Tcl is mangling the data - something to do with UTF-8
> conversion.  Example: 0x80 becomes 0xc2 0x80, and 0xff becomes 0xc3 0xbf.
> ...
> Proposed Patch:  (I think this requires Tcl >= 8.1)

Yeah, it appears that ByteArrayObj was added in Tcl 8.1.  We were
already requiring Tcl 8.0 of course.  Does anyone think that it's
important to continue support for Tcl 8.0.* in libpgtcl?
        regards, tom lane


Re: [BUGS] pgtcl large object read/write corrupts binary data

From
Brett Schwarz
Date:
--- Tom Lane <tgl@sss.pgh.pa.us> wrote:
> ljb <ljb220@mindspring.com> writes:
> > [Using PostgreSQL-7.3.4 and -7.4beta5, Tcl-8.4.x.]
> > Binary data written to a Large Object with
> libpgtcl's pg_lo_write is
> > corrupted.  Tcl is mangling the data - something
> to do with UTF-8
> > conversion.  Example: 0x80 becomes 0xc2 0x80, and
> 0xff becomes 0xc3 0xbf.
> > ...
> > Proposed Patch:  (I think this requires Tcl >=
> 8.1)
> 
> Yeah, it appears that ByteArrayObj was added in Tcl
> 8.1.  We were
> already requiring Tcl 8.0 of course.  Does anyone
> think that it's
> important to continue support for Tcl 8.0.* in
> libpgtcl?
> 

I don't think it is important to require Tcl 8.0
anymore. Tcl 8.0 came out in 1998. We might be able to
get rid of some of the version checks as well in the
code.
    --brett


__________________________________
Do you Yahoo!?
Exclusive Video Premiere - Britney Spears
http://launch.yahoo.com/promos/britneyspears/