Browse Source

Merge pull request #13069 from ghalliday/issue22954

HPCC-22954 Fix internal consistency check error on debug builds

Reviewed-By: Shamser Ahmed <shamser.ahmed@lexisnexis.co.uk>
Reviewed-By: Attila Vamos <attila.vamos@lexisnexis.com>
Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 5 years ago
parent
commit
a48baf8983
3 changed files with 8 additions and 2 deletions
  1. 6 1
      ecl/hql/hqlutil.cpp
  2. 1 0
      ecl/hql/hqlutil.hpp
  3. 1 1
      ecl/hqlcpp/hqlttcpp.cpp

+ 6 - 1
ecl/hql/hqlutil.cpp

@@ -9658,11 +9658,16 @@ static void createMappingAssigns(HqlExprArray & assigns, IHqlExpression * selfSe
 
 IHqlExpression * createMappingTransform(IHqlExpression * selfSelector, IHqlExpression * inSelector, bool replaceMissingWithDefault, IErrorReceiver &err, ECLlocation &location)
 {
+    return createMappingTransform(no_transform, selfSelector, inSelector, replaceMissingWithDefault, err, location);
+}
+
+IHqlExpression * createMappingTransform(node_operator transformOp, IHqlExpression * selfSelector, IHqlExpression * inSelector, bool replaceMissingWithDefault, IErrorReceiver &err, ECLlocation &location)
+{
     HqlExprArray assigns;
     IHqlExpression * selfRecord = selfSelector->queryRecord();
     IHqlExpression * inRecord = inSelector->queryRecord();
     createMappingAssigns(assigns, selfSelector, inSelector, inRecord->querySimpleScope(), selfRecord, replaceMissingWithDefault, err, location);
-    return createValue(no_transform, makeTransformType(selfRecord->getType()), assigns);
+    return createValue(transformOp, makeTransformType(selfRecord->getType()), assigns);
 
 }
 

+ 1 - 0
ecl/hql/hqlutil.hpp

@@ -187,6 +187,7 @@ extern HQL_API IHqlExpression * createNullTransform(IHqlExpression * record);
  * @param location      Location to use when reporting errors
  */
 extern HQL_API IHqlExpression * createMappingTransform(IHqlExpression * selfSelector, IHqlExpression * inSelector, bool replaceMissingWithDefault, IErrorReceiver &err, ECLlocation &location);
+extern HQL_API IHqlExpression * createMappingTransform(node_operator transformOp, IHqlExpression * selfSelector, IHqlExpression * inSelector, bool replaceMissingWithDefault, IErrorReceiver &err, ECLlocation &location);
 
 extern HQL_API IHqlExpression * getFailCode(IHqlExpression * failExpr);
 extern HQL_API IHqlExpression * getFailMessage(IHqlExpression * failExpr, bool nullIfOmitted);

+ 1 - 1
ecl/hqlcpp/hqlttcpp.cpp

@@ -9158,7 +9158,7 @@ IHqlExpression * DFSLayoutTransformer::createTransformed(IHqlExpression * expr)
                     OwnedHqlExpr left = createSelector(no_left, oldTransform, seq);
                     OwnedHqlExpr self = getSelf(dfsLayout);
                     MultiErrorReceiver dummy;
-                    OwnedHqlExpr transformECLtoDFS = createMappingTransform(self, left, true, dummy, where);  // transforms from ECL layout to DFS layout. Don't report missing here!
+                    OwnedHqlExpr transformECLtoDFS = createMappingTransform(no_newtransform, self, left, true, dummy, where);  // transforms from ECL layout to DFS layout. Don't report missing here!
 
                     NewProjectMapper2 mapper;
                     mapper.setMapping(oldTransform);