Thread

  1. pgtcl large object fix

    Mahlon Stacy <mcs@mayo.edu> — 2003-08-06T18:31:15Z

    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            
    -------------------------------------------------------------
    
    
  2. Re: pgtcl large object fix

    Tom Lane <tgl@sss.pgh.pa.us> — 2003-08-06T22:02:52Z

    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
    
    
  3. Re: pgtcl large object fix

    Reinhard Max <max@suse.de> — 2003-08-07T10:10:44Z

    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