[Pljava-dev] create oid and WARNING

Shunsuke Ikegami shun at datasection.co.jp
Fri Jul 22 02:41:26 UTC 2005


Hello,

I tried to use LargeObject with PL/Java.
When I create oid, I receive WARNING message.
Oid is OK.

- pljava-1.1.0
- psql (PostgreSQL) 7.4.7
- java version "1.4.2_04"
- Fedora Core 2

When I tried with psql 8.0.3, I don't receive WARNING.
Do you have some idea?


--- I tried. ---
import java.sql.SQLException;
import java.util.logging.Logger;

import org.postgresql.pljava.internal.LargeObject;

public class CreateOidTest {
    public static int createOid() {
        try {
            LargeObject obj = LargeObject.create(LargeObject.INV_WRITE);
            Logger.getAnonymousLogger().info("create OID");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        return 1;
    }
}


--- result 

Jul 22 10:12:45 tsukuyomi postgres[12885]: [100021-1] WARNING:  relcache 
reference leak: relation "pg_largeobject" has refcnt 2 instead of 0
Jul 22 10:12:45 tsukuyomi postgres[12885]: [100022-1] WARNING:  relcache 
reference leak: relation "pg_largeobject_loid_pn_index" has refcnt 2 instead 
of 0

----

Regards,
Shunsuke Ikegami


>Shunsuke,
>The LargeObject support in PL/Java is experimental and in the current 
>version, the C-code will not be initialized (hence the error that you 
>get). The code is there though, and if you want to play around with it, 
>my guess is that the only thing you need to do in order to get it to 
>work is to add the line:
>
>    LargeObject_initialize(fcinfo);
>
>somewhere near the end of function Type_initialize in the file 
>pljava/type/Type.c, recompile and try again.
>
>Regards,
>Thomas Hallgren



More information about the Pljava-dev mailing list