>From Michael Blow <[email protected]>:

Michael Blow has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20403?usp=email )


Change subject: Merge branch 'gerrit/phoenix' into 'master'
......................................................................

Merge branch 'gerrit/phoenix' into 'master'

 * [ASTERIXDB-3641] Sampling query taking long time to run
 * [ASTERIXDB-3636][STO] Fix buffer reservations understimation
 * [NO ISSUE][*HYR][MISC] += Lazy helper for deferred initialization
 * [NO ISSUE][RT] Notify joblet cleanup if joblet creation fails
 * [NO ISSUE][*DB][EXT] Avoid serialization of JsonFactory
 * [ASTERIXDB-3641] Sampling query taking long time to run
 * [NO ISSUE][*DB][RT] Whisper logging for active partition,txn block msgs
 * [NO ISSUE][*DB][NET] Upgrade Netty to 4.1.125.Final
 * [ASTERIXDB-3644] Callback for result consumption
 * [NO ISSUE] Split countn_01 into multiple queries
 * [NO ISSUE][HYR][STO] FileMapManager performance improvements
 * [NO ISSUE][HYR][STO] Add missing serialVersionUID
 * [NO ISSUE] Fix result for pushdown test
 * [ASTERIXDB-3646][COMP] Missing fields when selecting all fields with window 
function

Change-Id: I24dcea00986058def1eaac1cf317147c5b3e1196
---
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/Stats.java
2 files changed, 51 insertions(+), 33 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/03/20403/1

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 1e9ddf9..aa73da1 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
@@ -175,23 +175,14 @@
             boolean unnestOp1 = 
joinEnum.findUnnestOp(joinEnum.leafInputs.get(idx1 - 1));
             boolean unnestOp2 = 
joinEnum.findUnnestOp(joinEnum.leafInputs.get(idx2 - 1));
             boolean unnestOp = unnestOp1 || unnestOp2;
-<<<<<<< HEAD   (f9c6fe [ASTERIXDB-3632] Fix NPEs in Index Advisor and add 
error han)
             boolean okOp = acceptableOp(joinExpr.getFunctionIdentifier());
-            Index.SampleIndexDetails idxDetails1 = (Index.SampleIndexDetails) 
index1.getIndexDetails();
-            Index.SampleIndexDetails idxDetails2 = (Index.SampleIndexDetails) 
index2.getIndexDetails();
-            if (((idxDetails1.getSourceCardinality() < 
idxDetails1.getSampleCardinalityTarget())
-                    || (idxDetails2.getSourceCardinality() < 
idxDetails2.getSampleCardinalityTarget())
-                    || 
(!(joinExpr.getFunctionIdentifier().equals(AlgebricksBuiltinFunctions.EQ)))
-                    || exprUsedVars.size() > 2) && !unnestOp && okOp) { //* if 
there are more than 2 variables, it is not a simple join like r.a op s.a
-=======
             ILogicalOperator leafInput1 = joinEnum.leafInputs.get(idx1 - 1);
             ILogicalOperator leafInput2 = joinEnum.leafInputs.get(idx2 - 1);
             LogicalVariable var1 = exprUsedVars.get(0);
             LogicalVariable var2 = exprUsedVars.get(1);
             // If there are more than 2 variables, it is not a simple join 
like r.a op s.a
-            if (!unnestOp && (exprUsedVars.size() > 2
+            if (okOp && !unnestOp && (exprUsedVars.size() > 2
                     || isJoinSelFromSamplesApplicable(leafInput1, leafInput2, 
index1, index2, var1, var2))) {
->>>>>>> BRANCH (e15750 Merge branch 'gerrit/ionic' into 'gerrit/phoenix')
                 double sels = 
findJoinSelFromSamples(joinEnum.leafInputs.get(idx1 - 1),
                         joinEnum.leafInputs.get(idx2 - 1), index1, index2, 
joinExpr, jOp);
                 if (sels == 0.0) {
@@ -205,28 +196,6 @@
         }
     }

-<<<<<<< HEAD   (f9c6fe [ASTERIXDB-3632] Fix NPEs in Index Advisor and add 
error han)
-    private boolean acceptableOp(FunctionIdentifier functionIdentifier) {
-        if (functionIdentifier.equals(AlgebricksBuiltinFunctions.NEQ)) {
-            return true;
-        }
-        if (functionIdentifier.equals(AlgebricksBuiltinFunctions.LT)) {
-            return true;
-        }
-        if (functionIdentifier.equals(AlgebricksBuiltinFunctions.GT)) {
-            return true;
-        }
-        if (functionIdentifier.equals(AlgebricksBuiltinFunctions.GE)) {
-            return true;
-        }
-        if (functionIdentifier.equals(AlgebricksBuiltinFunctions.LE)) {
-            return true;
-        }
-        if (functionIdentifier.equals(BuiltinFunctions.IF_MISSING_OR_NULL)) { 
// added this for q16 in CH2
-            return true;
-        }
-        return false;
-=======
     private boolean isJoinSelFromSamplesApplicable(ILogicalOperator 
leafInput1, ILogicalOperator leafInput2,
             Index index1, Index index2, LogicalVariable var1, LogicalVariable 
var2) throws AlgebricksException {
         Index.SampleIndexDetails details1 = (Index.SampleIndexDetails) 
index1.getIndexDetails();
@@ -264,7 +233,28 @@
             numDistincts = 1; // Sample is empty
         }
         return numDistincts;
->>>>>>> BRANCH (e15750 Merge branch 'gerrit/ionic' into 'gerrit/phoenix')
+    }
+
+    private boolean acceptableOp(FunctionIdentifier functionIdentifier) {
+        if (functionIdentifier.equals(AlgebricksBuiltinFunctions.NEQ)) {
+            return true;
+        }
+        if (functionIdentifier.equals(AlgebricksBuiltinFunctions.LT)) {
+            return true;
+        }
+        if (functionIdentifier.equals(AlgebricksBuiltinFunctions.GT)) {
+            return true;
+        }
+        if (functionIdentifier.equals(AlgebricksBuiltinFunctions.GE)) {
+            return true;
+        }
+        if (functionIdentifier.equals(AlgebricksBuiltinFunctions.LE)) {
+            return true;
+        }
+        if (functionIdentifier.equals(BuiltinFunctions.IF_MISSING_OR_NULL)) { 
// added this for q16 in CH2
+            return true;
+        }
+        return false;
     }

     private double naiveJoinSelectivity(List<LogicalVariable> exprUsedVars, 
double card1, double card2, int idx1,

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20403?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I24dcea00986058def1eaac1cf317147c5b3e1196
Gerrit-Change-Number: 20403
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <[email protected]>

Reply via email to