pgtcl large object fix

Started by Mahlon Stacyover 22 years ago3 messagesbugs
Jump to latest
#1Mahlon Stacy
mcs@mayo.edu

Newer versions of TCL implement ByteArray objects which are
the best fit for Postgresql Large Object functions. The change
is simple. Here's a diff on the 7.4 source file and a fixed version:

diff pgtclCmds.c pgtclCmds.c.fixed
1218c1218
<       bufObj = Tcl_NewStringObj(buf, nbytes);
---

bufObj = Tcl_NewByteArrayObj(buf, nbytes);

1310c1310
< buf = Tcl_GetStringFromObj(objv[3], &nbytes);
---

buf = Tcl_GetByteArrayFromObj(objv[3], &nbytes);

By making this change, TCL users (like me) can store and retrieve
binary objects in the database, like images. And, strings will
still work fine, too.

-Mahlon Stacy

-------------------------------------------------------------
Mahlon Stacy Internet: mcs@mayo.edu
Mayo Foundation (507) 284-4558
Medical Science Bldg 1-43 FAX (507) 284-1632
Rochester, MN 55905
-------------------------------------------------------------

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Mahlon Stacy (#1)
Re: pgtcl large object fix

Mahlon Stacy <mcs@mayo.edu> writes:

Newer versions of TCL implement ByteArray objects which are
the best fit for Postgresql Large Object functions.

How newer is "newer"? That is, what compatibility problems might we
create if we make this change?

regards, tom lane

#3Reinhard Max
max@suse.de
In reply to: Tom Lane (#2)
Re: pgtcl large object fix

On Wed, 6 Aug 2003 at 18:02, Tom Lane wrote:

Mahlon Stacy <mcs@mayo.edu> writes:

Newer versions of TCL implement ByteArray objects which are
the best fit for Postgresql Large Object functions.

How newer is "newer"? That is, what compatibility problems might we
create if we make this change?

ByteArrays were introduced in Tcl 8.1 (March 1999) along with the
change to use UTF-8 as internal string encoding.

cu
Reinhard