Browse Source

Merge remote-tracking branch 'origin/candidate-7.6.x' into candidate-7.8.x

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
Gavin Halliday 4 years ago
parent
commit
b8ca818a78

+ 3 - 1
common/thorhelper/thorxmlread.cpp

@@ -359,7 +359,9 @@ __uint64 XmlSetColumnProvider::getUInt(const char * name)
 #ifdef _DEBUG
     assertex(stricmp(name, "value")==0);
 #endif
-    return readUInt(name, 0);
+    //MORE: Note nullptr is passed in all of these XmlSetColumnProvider::get functions
+    //The code generator incorrectly generates "value" as the name to read.  Really it should be fixed there.
+    return readUInt(nullptr, 0);
 }
 
 void XmlSetColumnProvider::getData(size32_t len, void * target, const char * name)

+ 2 - 2
ecl/hqlcpp/hqlcpp.cpp

@@ -9336,8 +9336,8 @@ void HqlCppTranslator::doBuildAssignHashElement(BuildCtx & ctx, HashCodeCreator
             {
                 creator.beginCondition(ctx);
                 BuildCtx iterctx(ctx);
-                buildDatasetIterate(iterctx, elem, false);
-                doBuildAssignHashElement(iterctx, creator, elem->queryNormalizedSelector(), elem->queryRecord());
+                if (buildDatasetIterate(iterctx, elem, false))
+                    doBuildAssignHashElement(iterctx, creator, elem->queryNormalizedSelector(), elem->queryRecord());
                 creator.endCondition(iterctx);
                 return;
             }

+ 2 - 0
ecl/hqlcpp/hqlcppds.cpp

@@ -4122,6 +4122,8 @@ BoundRow * HqlCppTranslator::buildDatasetIterate(BuildCtx & ctx, IHqlExpression
         }
     case no_null:
         buildFilter(ctx, queryBoolExpr(false));
+        //Ensure that a table is bound into the context - in case code is generated within it (will be thrown away later)
+        bindTableCursor(ctx, expr, "<invalid>", no_none, NULL);
         return NULL;
     case no_filter:
         {

+ 4 - 0
thorlcr/activities/keyedjoin/thkeyedjoinslave.cpp

@@ -1146,8 +1146,10 @@ class CKeyedJoinSlave : public CSlaveActivity, implements IJoinProcessor, implem
         }
         virtual void end()
         {
+#ifdef _DEBUG
             VStringBuffer log("processed: %" I64F "u", total);
             trace(log);
+#endif
         }
         virtual void process(CThorExpandingRowArray &processing, unsigned selected) = 0;
     // IThreaded
@@ -2790,7 +2792,9 @@ class CKeyedJoinSlave : public CSlaveActivity, implements IJoinProcessor, implem
                 ++p;
             }
         }
+#ifdef _DEBUG
         handlerContainer.trace();
+#endif
     }
 public:
     IMPLEMENT_IINTERFACE_USING(PARENT);