Outer Join with For Update - Mailing list pgsql-sql

From alexandre :: aldeia digital
Subject Outer Join with For Update
Date
Msg-id 1507.200.225.214.1.1031076341.squirrel@webmail.aldeiadigital.com.br
Whole thread Raw
Responses Re: Outer Join with For Update  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-sql
Hi all,

I work with a case tool named Genexus. This tool generate the
applications in VB, VFox, Java, C, etc. in DB2, Oracle, M$ SQL and
now supports postgresql in VB and JAVA generator, making a good job
(excepting when it use a "optimize for", "/*fastfirstrows*/"
or "fast(n)" for the other 3 DB ... postgresql does not have this
optimization clauses, making certains querys slow when compared
with others).

But I found a problem (this query is the same for DB2 and postgres
and the database tables/data are equal):

SELECT A.id, B.desc from A left join B ON B.id=A.id FOR UPDATE OF A,B

If I have a null rellation in B, the error in postgres is:

"SELECT FOR UPDATE cannot be applied to the nullable side of an OUTER JOIN"

DB2 simply ignore the FOR UPDATE ...
I think that is the correct form...I don´t know when the LEFT ou RIGHT
JOIN will be null...

I remove the check in initsplan.c (line 324/325), but postgres
returns :

"ERROR:  ExecutePlan: (junk) `ctid2' is NULL!"

Like other case tools, I don´t have the possibility to change
the query in code forever...

Any tips?!?!

Thank´s all and sorry for this big email and a poor english... :)

Alexandre Arruda Paes
Aldeia Digital
Brazil






pgsql-sql by date:

Previous
From: Oliver Elphick
Date:
Subject: Re: Update Help
Next
From: Josh Berkus
Date:
Subject: Re: tree structures in sql - my point of view (with request of comment from joe celko)