>From <[email protected]>:

[email protected] has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18254 )


Change subject: [ASTERIX-3376][COMP] Choose smaller side's sample
......................................................................

[ASTERIX-3376][COMP] Choose smaller side's sample

Change-Id: I63445673ba10782d85717b780c07687db8f8011f
---
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/Stats.java
1 file changed, 20 insertions(+), 2 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/54/18254/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 785da69..574e207 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
@@ -163,12 +163,21 @@
                 return productivity / card1;
             }
         } else {
-            ILogicalOperator leafInput = joinEnum.leafInputs.get(idx2 - 1); // 
we arbitrarily pick one side
+            ILogicalOperator leafInput;
+            LogicalVariable var;
+            // choose the smaller side sample; better results this way for 
sure!
+            if (card1 < card2) {
+                leafInput = joinEnum.leafInputs.get(idx1 - 1);
+                var = exprUsedVars.get(0);
+            } else {
+                leafInput = joinEnum.leafInputs.get(idx2 - 1);
+                var = exprUsedVars.get(1);
+            }
             Index index = findIndex(leafInput);
             if (index == null) {
                 return 1.0;
             }
-            List<List<IAObject>> result = 
runSamplingQueryDistinct(this.optCtx, leafInput, exprUsedVars.get(1), index);
+            List<List<IAObject>> result = 
runSamplingQueryDistinct(this.optCtx, leafInput, var, index);
             if (result == null) {
                 return 1.0;
             }

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

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I63445673ba10782d85717b780c07687db8f8011f
Gerrit-Change-Number: 18254
Gerrit-PatchSet: 1
Gerrit-Owner: [email protected]
Gerrit-MessageType: newchange

Reply via email to