Re: largeobjects deadlock ?
От | andy petrella |
---|---|
Тема | Re: largeobjects deadlock ? |
Дата | |
Msg-id | 7159e12c0510251742y79d58679l@mail.gmail.com обсуждение исходный текст |
Ответ на | largeobjects deadlock ? (andy petrella <andy.petrella@gmail.com>) |
Список | 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
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.petrella@gmail.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
В списке pgsql-jdbc по дате отправления: