persistence@glassfish.java.net

Proposed fix for issue 380

From: Markus Fuchs <Markus.Fuchs_at_Sun.COM>
Date: Thu, 16 Mar 2006 20:14:52 -0800

Hi Tom/Gordon,

I propose following fix for issue 380: Outer Join in sybase is broken.
Need to switch to use ansi join

$ diff --context=1
src/java/oracle/toplink/essentials/platform/database/SybasePlatform.java*
***
src/java/oracle/toplink/essentials/platform/database/SybasePlatform.java
Thu Mar 16 20:01:22
2006
---
src/java/oracle/toplink/essentials/platform/database/SybasePlatform.java.orig
Thu Mar 16 20:07:13 2006
***************
*** 615,617 ****
      public boolean shouldPrintOuterJoinInWhereClause() {
! return false;
      }
--- 615,617 ----
      public boolean shouldPrintOuterJoinInWhereClause() {
! return true;
      }


Test cases testProjectOuterJoinTeamMembersJoinAddress and
testEmployeeJoinManagerAddressOuterJoinManagerAddress used to throw
following error:

Internal Exception: com.sybase.jdbc2.jdbc.SybSQLException: The table 'CMP3_EMPLOYEE' is an inner member of an outer-join clause. This is not allowed if the table also participates in a regular join clause.

Error Code: 11054


This error is now fixed. I attach the modified file for review.

Thanks!

-- markus.