diff options
author | Brian S. O'Neill <bronee@gmail.com> | 2007-10-26 21:24:43 +0000 |
---|---|---|
committer | Brian S. O'Neill <bronee@gmail.com> | 2007-10-26 21:24:43 +0000 |
commit | 4063328f97c0180ceab565cc3f411e3dcc07bca8 (patch) | |
tree | a4a9273fc849990dd1e02f8fe3f097b2e68cea01 /src/main/java/com/amazon/carbonado/qe | |
parent | f1393c44e8e0f30da15a3443ebbf0c022c608fca (diff) |
Added support for outer joins.
Diffstat (limited to 'src/main/java/com/amazon/carbonado/qe')
-rw-r--r-- | src/main/java/com/amazon/carbonado/qe/IndexedQueryAnalyzer.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/main/java/com/amazon/carbonado/qe/IndexedQueryAnalyzer.java b/src/main/java/com/amazon/carbonado/qe/IndexedQueryAnalyzer.java index 60cf3da..93d4666 100644 --- a/src/main/java/com/amazon/carbonado/qe/IndexedQueryAnalyzer.java +++ b/src/main/java/com/amazon/carbonado/qe/IndexedQueryAnalyzer.java @@ -209,12 +209,20 @@ public class IndexedQueryAnalyzer<S extends Storable> { if (!isProperJoin(chainedProp.getPrimeProperty())) {
break evaluate;
}
+ if (chainedProp.isOuterJoin(0)) {
+ // Outer joins cannot be optimized via foreign indexes.
+ break evaluate;
+ }
int count = chainedProp.getChainCount();
for (int i=0; i<count; i++) {
if (!isProperJoin(chainedProp.getChainedProperty(i))) {
break evaluate;
}
+ if (chainedProp.isOuterJoin(i + 1)) {
+ // Outer joins cannot be optimized via foreign indexes.
+ break evaluate;
+ }
}
// All foreign indexes are available for use.
|