summaryrefslogtreecommitdiff
path: root/src/main/java/com/amazon/carbonado/qe
diff options
context:
space:
mode:
authorBrian S. O'Neill <bronee@gmail.com>2007-10-26 21:24:43 +0000
committerBrian S. O'Neill <bronee@gmail.com>2007-10-26 21:24:43 +0000
commit4063328f97c0180ceab565cc3f411e3dcc07bca8 (patch)
treea4a9273fc849990dd1e02f8fe3f097b2e68cea01 /src/main/java/com/amazon/carbonado/qe
parentf1393c44e8e0f30da15a3443ebbf0c022c608fca (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.java8
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.