You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mb...@apache.org on 2021/06/03 21:57:42 UTC
[asterixdb] 04/08: [NO ISSUE][COMP] Fix subplan flush + disable
optimization rule
This is an automated email from the ASF dual-hosted git repository.
mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit ad58fc2c29391169d7fcd310db7784bf64e04614
Author: Ali Alsuliman <al...@gmail.com>
AuthorDate: Tue May 25 20:25:45 2021 +0300
[NO ISSUE][COMP] Fix subplan flush + disable optimization rule
- user model changes: no
- storage format changes: no
- interface changes: yes
Details:
- disable IntroJoinInsideSubplanRule when blocking operators are disabled
- fix flush of subplan to flush its frame to next writer
Change-Id: I9269a092aa933327fa6f97dfffcdf888f10dd77b
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11623
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Ali Alsuliman <al...@gmail.com>
Reviewed-by: Till Westmann <ti...@apache.org>
---
.../java/org/apache/asterix/metadata/declared/MetadataProvider.java | 1 +
.../hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java | 2 ++
.../hyracks/algebricks/rewriter/rules/IntroJoinInsideSubplanRule.java | 3 +++
.../algebricks/runtime/operators/meta/SubplanRuntimeFactory.java | 2 +-
4 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
index 61d48c5..f18992f 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
@@ -228,6 +228,7 @@ public class MetadataProvider implements IMetadataProvider<DataSourceId, String>
blockingOperatorDisabled = true;
}
+ @Override
public boolean isBlockingOperatorDisabled() {
return blockingOperatorDisabled;
}
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
index 717eac7..c6b7843 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
@@ -217,4 +217,6 @@ public interface IMetadataProvider<S, I> {
public Map<String, Object> getConfig();
+ public boolean isBlockingOperatorDisabled();
+
}
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroJoinInsideSubplanRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroJoinInsideSubplanRule.java
index 3175367..f2532b4 100644
--- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroJoinInsideSubplanRule.java
+++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroJoinInsideSubplanRule.java
@@ -44,6 +44,9 @@ public class IntroJoinInsideSubplanRule extends AbstractDecorrelationRule {
@Override
public boolean rewritePost(Mutable<ILogicalOperator> opRef, IOptimizationContext context)
throws AlgebricksException {
+ if (context.getMetadataProvider().isBlockingOperatorDisabled()) {
+ return false;
+ }
AbstractLogicalOperator op0 = (AbstractLogicalOperator) opRef.getValue();
if (op0.getOperatorTag() != LogicalOperatorTag.SUBPLAN) {
return false;
diff --git a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/meta/SubplanRuntimeFactory.java b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/meta/SubplanRuntimeFactory.java
index 6e5c2c9..11aefc6 100644
--- a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/meta/SubplanRuntimeFactory.java
+++ b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/meta/SubplanRuntimeFactory.java
@@ -191,7 +191,7 @@ public class SubplanRuntimeFactory extends AbstractOneInputOneOutputRuntimeFacto
@Override
public void flush() throws HyracksDataException {
- writer.flush();
+ appender.flush(writer);
}
/**