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);