[Pljava-dev] How to read LargeObject with pljava?

From: books at ejurka(dot)com (Kris Jurka)
To:
Subject: [Pljava-dev] How to read LargeObject with pljava?
Date: 2009-06-18 17:52:14
Message-ID: alpine.BSO.2.00.0906181310440.17688@leary.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pljava-dev

On Wed, 17 Jun 2009, Oleg Vasylenko wrote:

> Does org.postgresql.pljava.internal.LargeObject object and methods
> read/write/open/close still being experimental or methods have to work
> correctly in PLJava 1.4.0?

Looking at the source code, it doesn't work at all. With the attached
patch it mostly works. LargeObject.create still doesn't work and you will
get warnings about relcache reference leaks, but these are harmless and
can be ignored.

Kris Jurka
-------------- next part --------------
Index: src/C/pljava/type/LargeObject.c
===================================================================
RCS file: /cvsroot/pljava/org.postgresql.pljava/src/C/pljava/type/LargeObject.c,v
retrieving revision 1.14
diff -c -r1.14 LargeObject.c
*** src/C/pljava/type/LargeObject.c 28 May 2006 22:01:48 -0000 1.14
--- src/C/pljava/type/LargeObject.c 18 Jun 2009 17:07:49 -0000
***************
*** 23,38 ****
*/
jobject LargeObject_create(LargeObjectDesc* lo)
{
- jobject jlo;
- Ptr2Long loH;
-
if(lo == 0)
return 0;

! loH.longVal = 0L; /* ensure that the rest is zeroed out */
! loH.ptrVal = lo;
! jlo = JNI_newObject(s_LargeObject_class, s_LargeObject_init, loH.longVal);
! return jlo;
}

extern void LargeObject_initialize(void);
--- 23,32 ----
*/
jobject LargeObject_create(LargeObjectDesc* lo)
{
if(lo == 0)
return 0;

! return JNI_newObject(s_LargeObject_class, s_LargeObject_init, Invocation_createLocalWrapper(lo));
}

extern void LargeObject_initialize(void);

In response to

Browse pljava-dev by date

  From Date Subject
Next Message Lucas Madar 2009-06-24 03:00:44 [Pljava-dev] uuid datatypes and prepared statements
Previous Message Oleg Vasylenko 2009-06-17 13:12:49 [Pljava-dev] How to read LargeObject with pljava?