You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by br...@apache.org on 2003/02/06 21:38:49 UTC
cvs commit: db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql SqlQueryStatement.java
brj 2003/02/06 12:38:49
Modified: src/java/org/apache/ojb/broker/accesslayer/sql
SqlQueryStatement.java
Log:
use OUTER joins when joining with the same table
Revision Changes Path
1.21 +6 -3 db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlQueryStatement.java
Index: SqlQueryStatement.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlQueryStatement.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- SqlQueryStatement.java 31 Jan 2003 16:50:26 -0000 1.20
+++ SqlQueryStatement.java 6 Feb 2003 20:38:49 -0000 1.21
@@ -683,10 +683,13 @@
if (curr == null)
{
curr = createTableAlias(cld, attrPath);
- join = new Join(prev, prevKeys, curr, keys, useOuterJoins, attr);
+
+ // BRJ : use OUTER join for same table
+ boolean outer = (curr.cld == prev.cld) || useOuterJoins;
+ join = new Join(prev, prevKeys, curr, keys, outer, attr);
prev.addJoin(join);
- // BRJ : add outer joins for extents
+ // BRJ : add OUTER joins for extents
for (int j=0;j < curr.extents.size(); j++)
{
TableAlias extAlias = (TableAlias)curr.extents.get(j);