This is an automated email from the ASF dual-hosted git repository.

vsarathy1 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git


The following commit(s) were added to refs/heads/master by this push:
     new d2817a1216 MB-60365: Fixing problem with or predicate.
d2817a1216 is described below

commit d2817a1216e01eff0e4227c37f85f15e556b8ef5
Author: murali4104 <[email protected]>
AuthorDate: Tue Jan 16 20:21:47 2024 -0800

    MB-60365: Fixing problem with or predicate.
    
    Change-Id: I15b3709de3af9d42349aac81b52e6c48e364d688
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18098
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Vijay Sarathy <[email protected]>
---
 .../java/org/apache/asterix/optimizer/rules/cbo/Stats.java |  6 ++----
 .../asterix/test/runtime/SqlppAnalyzedExecutionTest.java   |  4 ++--
 .../results_cbo/column/filter/subplan/subplan.042.plan     | 14 +++++++-------
 3 files changed, 11 insertions(+), 13 deletions(-)

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 119285d8ad..0023874947 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
@@ -177,10 +177,8 @@ public class Stats {
         double sel = 1.0;
 
         if 
(afcExpr.getFunctionIdentifier().equals(AlgebricksBuiltinFunctions.OR)) {
-            double orSel = getSelectivityFromAnnotation(
-                    (AbstractFunctionCallExpression) 
afcExpr.getArguments().get(0).getValue(), join,
-                    singleDatasetPreds);
-            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(
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppAnalyzedExecutionTest.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppAnalyzedExecutionTest.java
index 2e329546be..76347a17ae 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppAnalyzedExecutionTest.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppAnalyzedExecutionTest.java
@@ -45,8 +45,8 @@ public class SqlppAnalyzedExecutionTest {
     protected static final String TEST_CONFIG_FILE_NAME = 
"src/test/resources/cc-analyze.conf";
     private final String[] denyList = { "synonym: synonym-01", "ddl: 
analyze-dataset-1", "misc: dump_index",
             "array-index: composite-index-queries", "filters: upsert", 
"column: analyze-dataset",
-            "column: filter/boolean", "column: filter/sql-compat"
-            /*re-enable once the cbo stats class cast bug is fixed*/, "ddl: 
analyze-dataset-with-indexes", "warnings: cardinality-hint-warning" };
+            "column: filter/boolean", "column: filter/sql-compat", "ddl: 
analyze-dataset-with-indexes",
+            "warnings: cardinality-hint-warning" };
 
     @BeforeClass
     public static void setUp() throws Exception {
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/subplan/subplan.042.plan
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/subplan/subplan.042.plan
index 9aa6fe54ed..fd431a6292 100644
--- 
a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/subplan/subplan.042.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/subplan/subplan.042.plan
@@ -1,16 +1,16 @@
-distribute result [$$70] [cardinality: 2.1, op-cost: 0.0, total-cost: 22.0]
+distribute result [$$70] [cardinality: 6.0, op-cost: 0.0, total-cost: 22.0]
 -- DISTRIBUTE_RESULT  |UNPARTITIONED|
-  exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 22.0]
+  exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 22.0]
   -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
-    aggregate [$$70] <- [agg-sql-sum($$76)] [cardinality: 2.1, op-cost: 0.0, 
total-cost: 22.0]
+    aggregate [$$70] <- [agg-sql-sum($$76)] [cardinality: 6.0, op-cost: 0.0, 
total-cost: 22.0]
     -- AGGREGATE  |UNPARTITIONED|
-      exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 22.0]
+      exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 22.0]
       -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
-        aggregate [$$76] <- [agg-sql-count(1)] [cardinality: 2.1, op-cost: 
0.0, total-cost: 22.0]
+        aggregate [$$76] <- [agg-sql-count(1)] [cardinality: 6.0, op-cost: 
0.0, total-cost: 22.0]
         -- AGGREGATE  |PARTITIONED|
-          exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 22.0]
+          exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 22.0]
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            join (or(eq($$71, "7"), neq($$69, 0))) [cardinality: 2.1, op-cost: 
6.0, total-cost: 22.0]
+            join (or(eq($$71, "7"), neq($$69, 0))) [cardinality: 6.0, op-cost: 
6.0, total-cost: 22.0]
             -- NESTED_LOOP  |PARTITIONED|
               exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|

Reply via email to