persistence@glassfish.java.net

RE: Proposed fix for issue 380

From: Gordon Yorke <gordon.yorke_at_oracle.com>
Date: Fri, 17 Mar 2006 11:04:41 -0500

Changes look good Markus, please check them in.
--Gordon

-----Original Message-----
From: Markus Fuchs [mailto:Markus.Fuchs_at_Sun.COM]
Sent: Thursday, March 16, 2006 11:15 PM
To: persistence_at_glassfish.dev.java.net; Tom Ware;
gordon.yorke_at_oracle.com
Subject: Proposed fix for issue 380


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.