Browse Source

Merge pull request #8066 from jakesmith/hpcc-14730

HPCC-14730 Fix issue with conditional null inputs in child queries

Reviewed-By: Gavin Halliday <gavin.halliday@lexisnexis.com>
Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 9 years ago
parent
commit
3bb4a3d1dd
3 changed files with 4 additions and 4 deletions
  1. 1 1
      thorlcr/graph/thgraph.cpp
  2. 1 1
      thorlcr/graph/thgraph.hpp
  3. 2 2
      thorlcr/slave/slave.cpp

+ 1 - 1
thorlcr/graph/thgraph.cpp

@@ -326,7 +326,7 @@ bool isDiskInput(ThorActivityKind kind)
 
 void CIOConnection::connect(unsigned which, CActivityBase *destActivity)
 {
-    destActivity->setInput(which, activity->queryActivity(), index);
+    destActivity->setInput(which, activity->queryActivity(true), index);
 }
 
 /////////////////////////////////// 

+ 1 - 1
thorlcr/graph/thgraph.hpp

@@ -342,7 +342,7 @@ public:
     }
     virtual bool prepareContext(size32_t parentExtractSz, const byte *parentExtract, bool checkDependencies, bool shortCircuit, bool async);
 //
-    virtual CActivityBase *queryActivity() { return activity; }
+    virtual CActivityBase *queryActivity(bool checkNull=false) { return activity; }
     virtual void initActivity();
     virtual CActivityBase *factory(ThorActivityKind kind) { assertex(false); return NULL; }
     virtual CActivityBase *factory() { return factory(getKind()); }

+ 2 - 2
thorlcr/slave/slave.cpp

@@ -289,9 +289,9 @@ public:
         }
         haveCreateCtx = true;
     }
-    virtual CActivityBase *queryActivity()
+    virtual CActivityBase *queryActivity(bool checkNull)
     {
-        if (hasNullInput)
+        if (checkNull && hasNullInput)
         {
             CriticalBlock b(nullActivityCs);
             if (!nullActivity)