소스 검색

HPCC-11614 Support outputting workunit result to disk in roxie

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
Gavin Halliday 10 년 전
부모
커밋
dca5d2aafd
4개의 변경된 파일16개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 1
      ecl/hqlcpp/hqlhtcpp.cpp
  2. 5 0
      ecl/regress/issue11614.ecl
  3. 6 0
      testing/regress/ecl/key/outputresultfile.xml
  4. 3 0
      testing/regress/ecl/outputresultfile.ecl

+ 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);