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 <[email protected]>
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 <[email protected]>
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Ali Alsuliman <[email protected]>
    Reviewed-by: Till Westmann <[email protected]>
---
 .../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);
         }
 
         /**

Reply via email to