Explorar o código

Merge pull request #13950 from ghalliday/issue24386

HPCC-24386 Fix unusual no active dataset error

Reviewed-by: Shamser Ahmed
Merged-by: Gavin Halliday <ghalliday@hpccsystems.com>
Gavin Halliday %!s(int64=4) %!d(string=hai) anos
pai
achega
623c88263f
Modificáronse 2 ficheiros con 4 adicións e 2 borrados
  1. 2 2
      ecl/hqlcpp/hqlcpp.cpp
  2. 2 0
      ecl/hqlcpp/hqlcppds.cpp

+ 2 - 2
ecl/hqlcpp/hqlcpp.cpp

@@ -9333,8 +9333,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

@@ -4123,6 +4123,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:
         {