Re: largeobjects deadlock ?

From: andy petrella <andy(dot)petrella(at)gmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: largeobjects deadlock ?
Date: 2005-10-26 00:42:22
Message-ID: 7159e12c0510251742y79d58679l@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Oh, finally it seems rigth but my problem comes with the insertion in a
function written in plpgsql... so how may I do to insert a bytea receive
with an ROW ?

CREATE OR REPLACE FUNCTION
rule_dvd (FICHES.DVD)
RETURNS INT
AS $Func$
DECLARE
fiche_dvd ALIAS FOR $1;

[...]

INSERT INTO INFORMATIONS.FILMS
(
id,
titre_o,
titre_f,
sortie,
affiche,
duree,
genre,
resume,
visites,
cote,
imdb
)
VALUES
(
default,
fiche_dvd.titre_o,
fiche_dvd.titre_f,
fiche_dvd.sortie,
fiche_dvd.affiche, //??????????????
fiche_dvd.duree,
fiche_dvd.genre,
fiche_dvd.resume,
1,
0,
fiche_dvd.imdb
);

[...]

I think that's my problem... but how can I do else ?

Thx (and apologize my english...)

andy

2005/10/26, andy petrella <andy(dot)petrella(at)gmail(dot)com>:
>
> HI all,
>
> I have somme problem with largeobjects setting in a preparedstatement,
> here is the code with the problem in comment // :
>
> [...]
> db.setAutoCommit(false);
> [...]
> LargeObjectManager lobj = pgdb.getLargeObjectAPI(); //pgdb is a
> PGConnection
> int loid = lobj.create();
> System.out.println("loid : " + loid); //this give 359648
> LargeObject image = lobj.open(loid);
> int s, count = 0;
> byte buf[] = new byte[2048];
> while ((s = affiche.read(buf, 0, buf.length)) > 0){ //affiche is an
> InputStream
> count += s;
> image.write(buf, 0, s);
> }
> BlobInputStream b = new BlobInputStream(image);
> addDVD.setBinaryStream(4, b, count); //addDVD is an PreparedStatement
> //addDVD.setNull(4, java.sql.Types.BINARY); // --> all work well if I
> decomment this and comment the preceding
> image.close();
> affiche.close();
> [...]
> System.out.println("addDVD : " + addDVD.toString()); // <stream of 6503
> bytes> for the fourth prm (bytea)
>
> int update = addDVD.executeUpdate(); // -->deadlocking here !!!
> System.out.println("update = " + update); //never pass here
> db.setAutoCommit(true);
> [...]
>
> Am I setting the bytea in the rigth manner ? Else, how may I do that ,
> where are my mistakes ?
>
> Thx u all.
>
> andy
>
>

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Dave Cramer 2005-10-27 00:15:56 Re: XADataSource interface
Previous Message andy petrella 2005-10-25 23:49:41 largeobjects deadlock ?