>From Peeyush Gupta <[email protected]>: Peeyush Gupta has submitted this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17901 )
Change subject: [NO ISSUE][COMP] Disable ExtractCommonExpressionsRule for insert/upserts ...................................................................... [NO ISSUE][COMP] Disable ExtractCommonExpressionsRule for insert/upserts - user model changes: no - storage format changes: no - interface changes: no Details: On large upserts/inserts, the ExtractCommonExpressionsRule creates a large number of assign operators causing stack overflow. Change-Id: Ifa6ce2b5dbc036c7f24391013bf53bd504433fda Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17901 Integration-Tests: Jenkins <[email protected]> Reviewed-by: Peeyush Gupta <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> Tested-by: Peeyush Gupta <[email protected]> Tested-by: Jenkins <[email protected]> --- M asterixdb/asterix-app/src/test/resources/optimizerts/results/disjunction-to-join-delete-3.plan M hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonExpressionsRule.java 2 files changed, 32 insertions(+), 2 deletions(-) Approvals: Ali Alsuliman: Looks good to me, approved Peeyush Gupta: Looks good to me, but someone else must approve; Verified Jenkins: Verified; Verified Objections: Anon. E. Moose #1000171: Violations found diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/disjunction-to-join-delete-3.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/disjunction-to-join-delete-3.plan index 51da71e..7d9ab0c 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/disjunction-to-join-delete-3.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/disjunction-to-join-delete-3.plan @@ -12,7 +12,7 @@ -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$20][$$22] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$21][$$23] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| @@ -22,4 +22,4 @@ -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- BROADCAST_EXCHANGE |PARTITIONED| -- UNNEST |UNPARTITIONED| - -- EMPTY_TUPLE_SOURCE |UNPARTITIONED| + -- EMPTY_TUPLE_SOURCE |UNPARTITIONED| \ No newline at end of file diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonExpressionsRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonExpressionsRule.java index e2ba557..2c27589 100644 --- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonExpressionsRule.java +++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonExpressionsRule.java @@ -97,6 +97,7 @@ ignoreOps.add(LogicalOperatorTag.AGGREGATE); ignoreOps.add(LogicalOperatorTag.RUNNINGAGGREGATE); ignoreOps.add(LogicalOperatorTag.WINDOW); //TODO: can extract from partition/order/frame expressions + ignoreOps.add(LogicalOperatorTag.INSERT_DELETE_UPSERT); } @Override @@ -121,6 +122,12 @@ && op.getOperatorTag() != LogicalOperatorTag.DELEGATE_OPERATOR) { return false; } + if (!op.getInputs().isEmpty()) { + AbstractLogicalOperator childOp = (AbstractLogicalOperator) op.getInputs().get(0).getValue(); + if (childOp.getOperatorTag() == LogicalOperatorTag.INSERT_DELETE_UPSERT) { + return false; + } + } exprEqClassMap.clear(); substVisitor.setContext(context); boolean modified = removeCommonExpressions(opRef, context); -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17901 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: Ifa6ce2b5dbc036c7f24391013bf53bd504433fda Gerrit-Change-Number: 17901 Gerrit-PatchSet: 5 Gerrit-Owner: Peeyush Gupta <[email protected]> Gerrit-Reviewer: Ali Alsuliman <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]> Gerrit-Reviewer: Peeyush Gupta <[email protected]> Gerrit-MessageType: merged
