Browse Source

HPCC-17812 Fix occasional internal error generating COMBINE inline

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
Gavin Halliday 8 years ago
parent
commit
8742541ebf
1 changed files with 3 additions and 2 deletions
  1. 3 2
      ecl/hqlcpp/hqlcppds.cpp

+ 3 - 2
ecl/hqlcpp/hqlcppds.cpp

@@ -4473,7 +4473,8 @@ void HqlCppTranslator::doBuildRowAssignProject(BuildCtx & ctx, IReferenceSelecto
     OwnedHqlExpr activeDataset = ensureActiveRow(dataset->queryNormalizedSelector());
 
     // queryChild(1) should be changed to queryTransformExpr()...
-    OwnedHqlExpr transform = queryNewReplaceSelector(queryNewColumnProvider(expr), leftSelect, activeDataset);
+    IHqlExpression * originalTransform = queryNewColumnProvider(expr);
+    OwnedHqlExpr transform = queryNewReplaceSelector(originalTransform, leftSelect, activeDataset);
     Owned<BoundRow> selfCursor;
     if (!transform)
     {
@@ -4481,7 +4482,7 @@ void HqlCppTranslator::doBuildRowAssignProject(BuildCtx & ctx, IReferenceSelecto
         selfCursor.set(bindSelectorAsSelf(subctx, target, expr));
         //Mapping may potentially be ambiguous, so do things correctly (see hqlsource for details)
         BoundRow * prevCursor = resolveSelectorDataset(subctx, dataset->queryNormalizedSelector());
-        transform.set(expr->queryChild(1));
+        transform.set(originalTransform);
 
         bindTableCursor(subctx, dataset, prevCursor->queryBound(), no_left, selSeq);
     }