Jelajahi Sumber

HPCC-17099 Allow eclcc/eclserver to read file information from Dali

Index crc not being generated properly if the untranslated definition of an
index did not include the filepos field but the translated one did.

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 8 tahun lalu
induk
melakukan
5da2aaf4c7
1 mengubah file dengan 3 tambahan dan 0 penghapusan
  1. 3 0
      ecl/hqlcpp/hqlttcpp.cpp

+ 3 - 0
ecl/hqlcpp/hqlttcpp.cpp

@@ -8962,6 +8962,9 @@ IHqlExpression * DFSLayoutTransformer::createTransformed(IHqlExpression * expr)
                         // Note - this doesn't merit a warning - but if we changed the number of keyed it might?
                         // Note - this doesn't merit a warning - but if we changed the number of keyed it might?
                         ds.setown(replaceOwnedAttribute(ds, createExprAttribute(_payload_Atom, createConstant((int) dfsPayload))));
                         ds.setown(replaceOwnedAttribute(ds, createExprAttribute(_payload_Atom, createConstant((int) dfsPayload))));
                     }
                     }
+                    // NOTE - we assume that the dfs info will always include a fileposition field, even if the ECL definition did not.
+                    // Hence we always need to set the filepositionAtom indicator to true
+                    ds.setown(replaceOwnedAttribute(ds, createExprAttribute(filepositionAtom, createConstant(true))));
                 }
                 }
 
 
                 OwnedHqlExpr diskread = replaceChild(ds, recordIdx, dfsLayout);
                 OwnedHqlExpr diskread = replaceChild(ds, recordIdx, dfsLayout);