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