undo patch for OPENJPA-51, revert back to r52881

git-svn-id: https://svn.apache.org/repos/asf/incubator/openjpa/trunk@536692 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
David J. Wisneski 2007-05-09 22:23:16 +00:00
parent d9fbb9cc11
commit 23beb964c5
1 changed files with 7 additions and 28 deletions

View File

@ -26,7 +26,6 @@ import java.sql.Statement;
import java.sql.Types;
import java.util.AbstractList;
import java.util.ArrayList;
import java.util.BitSet;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@ -159,13 +158,6 @@ public class SelectImpl
// from select if this select selects from a tmp table created by another
private SelectImpl _from = null;
private SelectImpl _outer = null;
// bitSet indicating if an alias is removed from parent select
// bit 0 : correspond to alias 0
// bit 1 : correspond to alias 1, etc.
// if the bit is set, the corresponding alias has been removed from parent
// and recorded under subselect.
private BitSet _removedAliasFromParent = new BitSet(16);
/**
* Helper method to return the proper table alias for the given alias index.
@ -1495,13 +1487,8 @@ public class SelectImpl
private void removeParentJoins(PathJoins pj) {
if (_parent == null)
return;
if (_parent._joins != null && !_parent._joins.isEmpty()) {
boolean removed = false;
if (!_removedAliasFromParent.isEmpty())
removed = _parent._joins.joins().removeAll(pj.joins());
if (!removed)
pj.joins().removeAll(_parent._joins.joins());
}
if (_parent._joins != null && !_parent._joins.isEmpty())
pj.joins().removeAll(_parent._joins.joins());
if (!pj.isEmpty())
_parent.removeParentJoins(pj);
}
@ -1910,15 +1897,9 @@ public class SelectImpl
}
}
if (!fromParent && _parent != null) {
boolean removeAliasFromParent = key.toString().contains(":");
alias = _parent.findAlias(table, key, removeAliasFromParent, this);
if (alias != null) {
if (removeAliasFromParent) {
recordTableAlias(table, key, alias);
_removedAliasFromParent.set(alias.intValue());
}
alias = _parent.findAlias(table, key, false, this);
if (alias != null)
return alias;
}
}
if (_subsels != null) {
SelectImpl sub;
@ -1932,11 +1913,9 @@ public class SelectImpl
if (sub._tables != null)
sub._tables.remove(alias);
} else {
if (fromSub == null) {
alias = sub.findAlias(table, key, true, null);
if (!fromParent && alias != null)
recordTableAlias(table, key, alias);
}
alias = sub.findAlias(table, key, true, null);
if (!fromParent && alias != null)
recordTableAlias(table, key, alias);
}
}
}