dev@glassfish.java.net

Re: Issues with entity-persistence-tests on MaxDB

From: Markus KARG <markus.karg_at_gmx.net>
Date: Sat, 18 Nov 2006 11:34:37 +0100

Tom,
>>>> (4) Missing keyword SELECT
>>>> The reason for this error is that MaxDB does not allow to have
>>>> parenthesis in the FROM clause. This means, it is NOT possible to
>>>> write
>>>> SELECT * FROM a JOIN (b JOIN c ON b.x=c.x) ON a.x=b.x in MaxDB.
>>>> Instead,
>>>> you either must write SELECT * FROM a JOIN b ON a.x=b.x, b JOIN c ON
>>>> b.x=c.x or you must write SELECT * FROM a, b, c WHERE a.x=b.x AND
>>>> b.x=c.x which should produce the same results. How can I tell that
>>>> MaxDB
>>>> needs that SQL rewrite?
> What I was trying to ask above was if MAXDB allows outer joins to be
> defined in the WHERE clause. (e.g. something like SELECT * FROM A, B
> WHERE A.id (+)= B.id) Many DBs allow that kind of syntax. If MAXDB
> allows syntax of that kind, the solution to this issue with outer join
> is much simpler.
That one finally is solved, by your great help! :-)

I have set up an ExpressionOperator for EqualOuterJoin, that implements
the "(+)=" syntax you mentioned. All the tests that crashed due to that
outer join syntax problem formerly now are running quite well. :-)

Thanks for your kind help!
Markus