Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-jdbc by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group