>From <[email protected]>:
[email protected] has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17808 )
Change subject: [ASTERIXDB-3261][COMP] Limit Costing
......................................................................
[ASTERIXDB-3261][COMP] Limit Costing
Change-Id: I0a3e1be5e134c839168b584a6f41c45682e078ee
---
M
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java
1 file changed, 15 insertions(+), 2 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/08/17808/1
diff --git
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java
index 752064a..9147184 100644
---
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java
+++
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java
@@ -889,19 +889,23 @@
private int findLimitValue(AbstractLogicalOperator oper) {
ILogicalOperator op = oper;
+ int limit = -1;
while (op.getOperatorTag() != LogicalOperatorTag.EMPTYTUPLESOURCE) {
if (op.getOperatorTag() == LogicalOperatorTag.LIMIT) {
LimitOperator lop = (LimitOperator) op;
ILogicalExpression expr = lop.getMaxObjects().getValue();
if (expr != null) {
if (expr.getExpressionTag() ==
LogicalExpressionTag.CONSTANT) { // must be a constant
- return
Integer.parseInt(lop.getMaxObjects().getValue().toString());
+ limit =
Integer.parseInt(lop.getMaxObjects().getValue().toString());
}
}
}
+ if (op.getOperatorTag() == LogicalOperatorTag.ORDER) {
+ return -1; // This is because we cant reduce the selectivity
of a scan operator when an order by is present.
+ }
op = op.getInputs().get(0).getValue();
}
- return -1;
+ return limit;
}
private boolean isPredicateCardinalityAnnotationPresent(ILogicalExpression
leExpr) {
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17808
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: I0a3e1be5e134c839168b584a6f41c45682e078ee
Gerrit-Change-Number: 17808
Gerrit-PatchSet: 1
Gerrit-Owner: [email protected]
Gerrit-MessageType: newchange