Przeglądaj źródła

HPCC-15692 Embedded TRANSFORM in MySQL failing

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 9 lat temu
rodzic
commit
f1cb094927

+ 1 - 0
plugins/mysql/mysqlembed.cpp

@@ -1302,6 +1302,7 @@ public:
     }
     virtual size32_t getTransformResult(ARowBuilder & rowBuilder)
     {
+        lazyExecute();
         if (!stmtInfo->next())
             typeError("row", NULL);
         MySQLRowBuilder mysqlRowBuilder(stmtInfo->queryResultBindings());

+ 4 - 0
testing/regress/ecl/key/mysqlembed.xml

@@ -47,3 +47,7 @@
  <Row><dt1>0</dt1><dt2>                   </dt2></Row>
  <Row><dt1>20190201235959</dt1><dt2>2019-02-01 23:59:59</dt2></Row>
 </Dataset>
+<Dataset name='Result 15'>
+ <Row><name>name1</name><value>1</value><boolval>true</boolval><r8>1.2</r8><r4>3.400000095367432</r4><d>6161353561613535</d><ddd>1234567.89</ddd><u1>Straße</u1><u2>Straße  </u2><dt>1963-11-22 12:30:00</dt></Row>
+ <Row><name>name2</name><value>2</value><boolval>false</boolval><r8>5.6</r8><r4>7.800000190734863</r4><d>3030</d><ddd>-1234567.89</ddd><u1>là</u1><u2>là      </u2><dt>2015-12-25 01:23:45</dt></Row>
+</Dataset>

+ 8 - 1
testing/regress/ecl/mysqlembed.ecl

@@ -76,6 +76,12 @@ childrec testMySQLRow() := EMBED(mysql : server(myServer),user(myUser),database(
   SELECT * from tbl1 LIMIT 1;
 ENDEMBED;
 
+TRANSFORM(childrec) mysqlTransform(string name) := EMBED(mysql : server(myServer),user(myUser),database(myDB))
+  SELECT * from tbl1 WHERE name=? LIMIT 1;
+ENDEMBED;
+
+testMySQLTransform() := PROJECT(init, mySQLTransform(LEFT.name));
+
 childrec testMySQLParms(
    string name,
    integer value,
@@ -158,6 +164,7 @@ sequential (
   OUTPUT(testMySQLData()),
   OUTPUT(testMySQLUtf8()),
   OUTPUT(testMySQLUnicode()),
-  OUTPUT(testMySQLDateTime())
+  OUTPUT(testMySQLDateTime()),
+  OUTPUT(testMySQLTransform())
   )
 );