MB-60365: Fixing problem with or predicate.
(cherry picked from commit d2817a12)
Change-Id: I15b3709de3af9d42349aac81b52e6c48e364d688
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18104
Reviewed-by: Michael Blow <mblow@apache.org>
Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Michael Blow <mblow@apache.org>
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/Stats.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/Stats.java
index b3c4876..38d817b 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/Stats.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/Stats.java
@@ -135,9 +135,8 @@
double sel = 1.0;
if (afcExpr.getFunctionIdentifier().equals(AlgebricksBuiltinFunctions.OR)) {
- double orSel = getSelectivityFromAnnotation(
- (AbstractFunctionCallExpression) afcExpr.getArguments().get(0).getValue(), join);
- for (int i = 1; i < afcExpr.getArguments().size(); i++) {
+ double orSel = 0.0;
+ for (int i = 0; i < afcExpr.getArguments().size(); i++) {
ILogicalExpression lexpr = afcExpr.getArguments().get(i).getValue();
if (lexpr.getExpressionTag().equals(LogicalExpressionTag.FUNCTION_CALL)) {
sel = getSelectivityFromAnnotation(