From: shun at datasection.co.jp (Shunsuke Ikegami) Date: Tue, 26 Jul 2005 16:45:36 +0900 Subject: [Pljava-dev] create oid and WARNING In-Reply-To: References: Message-ID: <93C591B602B32Fshun@datasection.co.jp> Thomas. Thank you. I resolved WARNING message problem. LargeObject needed close(). It was simple problem. --- Solved 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"); obj.close(); // needed } catch (SQLException e) { e.printStackTrace(); } return 1; } } ---- Thank you, Shunsuke Ikegami >Probably a PostgreSQL bug that has been fixed in later versions. Post a >query to the pgsql-hackers at postgresql.org and ask about the warnings. >Perhaps they can give you more info. > >Regards, >Thomas Hallgren > >Shunsuke Ikegami wrote: > >>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 ?/** ???? shun at datasection.co.jp */ ?/** ???????????? */ ?/** http://www.datasection.co.jp */ /** */ /** ???????????? */ /** ?150-0044 */ /** ?????????23-2 */ /** ??????3F */ /** TEL/FAX 03-5459-1050 */