summaryrefslogtreecommitdiff
path: root/src/main/java/com/amazon/carbonado/qe
diff options
context:
space:
mode:
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.