Browse Source

HPCC-11614 Support outputting workunit result to disk in roxie

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

+ 2 - 1
ecl/hqlcpp/hqlhtcpp.cpp

@@ -10494,7 +10494,8 @@ ABoundActivity * HqlCppTranslator::doBuildActivityOutput(BuildCtx & ctx, IHqlExp
             //virtual const char * getFileName() = 0;
             if (filename && filename->getOperator() != no_pipe)
             {
-                buildFilenameFunction(*instance, instance->startctx, "getFileName", filename, hasDynamicFilename(expr));
+                bool isDynamic = expr->hasAttribute(resultAtom) || hasDynamicFilename(expr);
+                buildFilenameFunction(*instance, instance->startctx, "getFileName", filename, isDynamic);
                 if (!filename->isConstant())
                     constFilename = false;
             }

+ 5 - 0
ecl/regress/issue11614.ecl

@@ -0,0 +1,5 @@
+#option ('targetClusterType', 'roxie');
+
+ds := dataset(['This','is','the', 'result'], { string line });
+
+output(ds,,named('x'),thor);

+ 6 - 0
testing/regress/ecl/key/outputresultfile.xml

@@ -0,0 +1,6 @@
+<Dataset name='x'>
+ <Row><line>This</line><__fileposition__>0</__fileposition__></Row>
+ <Row><line>is</line><__fileposition__>8</__fileposition__></Row>
+ <Row><line>the</line><__fileposition__>14</__fileposition__></Row>
+ <Row><line>result</line><__fileposition__>21</__fileposition__></Row>
+</Dataset>

+ 3 - 0
testing/regress/ecl/outputresultfile.ecl

@@ -0,0 +1,3 @@
+ds := dataset(['This','is','the', 'result'], { string line });
+
+output(ds,,named('x'),thor);