>From Preetham Poluparthi <[email protected]>:

Preetham Poluparthi has submitted this change. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20170 )

Change subject: [NO ISSUE] Reset operators after join selectivity estimation
......................................................................

[NO ISSUE] Reset operators after join selectivity estimation

- user model changes: no
- storage format changes: no
- interface changes: no

Ext-ref: MB-68047

During join selectivity estimation using sampled queries, the logical operators 
involved are modified to use the sampled dataset. To prevent side effects, this 
change ensures that modified operators are reset to their original state after 
the sampling-based estimation is complete.

Change-Id: Ib7c1220740c2b5f025f60bec0378eaf253533f66
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20170
Reviewed-by: Murtadha Hubail <[email protected]>
Tested-by: Murtadha Hubail <[email protected]>
Integration-Tests: Murtadha Hubail <[email protected]>
---
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/Stats.java
1 file changed, 26 insertions(+), 0 deletions(-)

Approvals:
  Murtadha Hubail: Looks good to me, approved; Verified; Verified




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 52566ef..49a0aa8 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
@@ -254,6 +254,8 @@
             AbstractFunctionCallExpression joinExpr, JoinOperator join) throws 
AlgebricksException {
         AbstractBinaryJoinOperator abjoin = join.getAbstractJoinOp();
         Pair<ILogicalOperator, Double> leftOutput = 
replaceDataSourceWithSample(left, index1);
+        ILogicalOperator originalLeft = abjoin.getInputs().get(0).getValue();
+        ILogicalOperator originalRight = abjoin.getInputs().get(1).getValue();
         abjoin.getInputs().get(0).setValue(leftOutput.getFirst());
         Pair<ILogicalOperator, Double> rightOutput = 
replaceDataSourceWithSample(right, index2);
         abjoin.getInputs().get(1).setValue(rightOutput.getFirst());
@@ -261,6 +263,9 @@
         List<List<IAObject>> result = runSamplingQuery(optCtx, abjoin);
         double estCardSample = findPredicateCardinality(result, false);
         double sel = estCardSample / leftOutput.getSecond() / 
rightOutput.getSecond();
+
+        abjoin.getInputs().get(0).setValue(originalLeft);
+        abjoin.getInputs().get(1).setValue(originalRight);
         return sel;
     }


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

Gerrit-Project: asterixdb
Gerrit-Branch: ionic
Gerrit-Change-Id: Ib7c1220740c2b5f025f60bec0378eaf253533f66
Gerrit-Change-Number: 20170
Gerrit-PatchSet: 6
Gerrit-Owner: Preetham Poluparthi <[email protected]>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Murtadha Hubail <[email protected]>
Gerrit-Reviewer: Preetham Poluparthi <[email protected]>
Gerrit-Reviewer: [email protected]
Gerrit-MessageType: merged

Reply via email to