Browse Source

Merge branch 'candidate-5.4.0'

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 10 năm trước cách đây
mục cha
commit
8131a45a9a

+ 26 - 7
docs/ECLWatch/TheECLWatchMan.xml

@@ -111,9 +111,9 @@
       <!--***Note specific Activity task details have been REMOVED (to DocShare/WKSPCE/ECLWa400)***-->
 
       <para>When ECL Watch starts it defaults to the Activity page. To access
-      the Activity page from any other page in ECL Watch click on the HPCC
-      Platform image at the top of any page, as indicated the preceding
-      image.</para>
+      the Activity page from any other page in ECL Watch click on the
+      <emphasis role="bold">ECL Watch</emphasis> image at the top of any page,
+      as indicated the preceding image.</para>
 
       <para>Activity related tasks can also be initiated from the workunit tab
       for the specific job in question.</para>
@@ -196,6 +196,29 @@
         <para>You can search for workunits, users, files, or even ECL, using
         the search box. The search box supports wild cards.</para>
       </sect2>
+
+      <sect2 id="AutoRefresh">
+        <title>Auto Refresh</title>
+
+        <para><figure>
+            <title>Auto Refresh</title>
+
+            <mediaobject>
+              <imageobject>
+                <imagedata fileref="images/ECLWA011.jpg" />
+              </imageobject>
+            </mediaobject>
+          </figure>The <emphasis role="bold">Activity</emphasis> page displays
+        active ECL or DFU workunits either running or in the queue on your
+        cluster. To refresh the list, press the <emphasis
+        role="bold">Refresh</emphasis> button. Auto Refresh shows the list in
+        real-time, but this feature is disabled by default. </para>
+
+        <para>To enable Auto Refresh, toggle the Auto Refresh button. </para>
+
+        <para>In an environment with a large number of active users, Auto
+        Refresh could impact performance of your ESP server.</para>
+      </sect2>
     </sect1>
 
     <sect1>
@@ -341,14 +364,10 @@
       <xi:include href="HPCCDataHandling/DH-Mods/DH-Mod1.xml"
                   xpointer="Spray_XML"
                   xmlns:xi="http://www.w3.org/2001/XInclude" />
- 
-
- 
 
       <xi:include href="HPCCDataHandling/DH-Mods/DH-Mod1.xml"
                   xpointer="Spray_JSON"
                   xmlns:xi="http://www.w3.org/2001/XInclude" />
-               
 
       <xi:include href="HPCCDataHandling/DH-Mods/DH-Mod1.xml"
                   xpointer="Spray_Variable"

BIN
docs/images/ECLWA002.jpg


BIN
docs/images/ECLWA010.jpg


BIN
docs/images/ECLWA011.jpg


BIN
docs/images/ECLWA404.jpg


+ 2 - 0
ecl/hqlcpp/hqlcerrors.hpp

@@ -216,6 +216,7 @@
 #define HQLERR_DistributionUnsupportedTypeXX    4196
 #define HQLERR_InconsistentEmbedded             4197
 #define HQLERR_UnsupportedRowDiffType           4198
+#define HQLERR_EmbedParamNotSupportedInOptions  4199
 
 //Warnings....
 #define HQLWRN_PersistDataNotLikely             4500
@@ -506,6 +507,7 @@
 #define HQLERR_UserCodeNotAllowed_Text          "Workunit-supplied code is not permitted on this system"
 #define HQLERR_StreamInputUsedDirectly_Text     "Library input used directly in a child query"
 #define HQLERR_UnsupportedRowDiffType_Text      "ROWDIFF: Does not support type '%s' for field %s"
+#define HQLERR_EmbedParamNotSupportedInOptions_Text   "Cannot use bound parameter in embed options - try adding a FUNCTION wrapper"
 
 //Warnings.
 #define HQLWRN_CannotRecreateDistribution_Text  "Cannot recreate the distribution for a persistent dataset"

+ 8 - 1
ecl/hqlcpp/hqlcpp.cpp

@@ -11717,7 +11717,14 @@ void HqlCppTranslator::buildScriptFunctionDefinition(BuildCtx &funcctx, IHqlExpr
     {
         OwnedHqlExpr concat = createUnbalanced(no_concat, unknownStringType, attrArgs);
         OwnedHqlExpr cast = ensureExprType(concat, unknownVarStringType);
-        OwnedHqlExpr folded = foldHqlExpression(replaceInlineParameters(funcdef, cast));
+
+        // It's not legal to use parameters in the options, since it becomes ambiguous whether they should be bound to embed variables or not.
+        // Check that they didn't and give a sensible error message
+        OwnedHqlExpr boundCast = replaceInlineParameters(funcdef, cast);
+        if (cast != boundCast)
+            throwError(HQLERR_EmbedParamNotSupportedInOptions);
+
+        OwnedHqlExpr folded = foldHqlExpression(cast);
         CHqlBoundExpr bound;
         buildExpr(funcctx, folded, bound);
         createParam.append(",");

+ 6 - 3
testing/regress/ecl/cassandra-simple.ecl

@@ -247,9 +247,12 @@ integer testCassandraCount() := EMBED(cassandra : server(server),user('rchapman'
   SELECT COUNT(*) from tbl1;
 ENDEMBED;
 
-dataset(childrec) testCassandraCountPaged(UNSIGNED ps) := EMBED(cassandra : server(server),user('rchapman'),keyspace('test'),pageSize(ps))
-  SELECT name, value, boolval, r8, r4,d,ddd,u1,u2,a,set1,list1,map1 from tbl1;
-ENDEMBED;
+dataset(childrec) testCassandraCountPaged(INTEGER ps) := FUNCTION
+  dataset(childrec) r() := EMBED(cassandra : server(server),user('rchapman'),keyspace('test'),pageSize(ps))
+    SELECT name, value, boolval, r8, r4,d,ddd,u1,u2,a,set1,list1,map1 from tbl1;
+  ENDEMBED;
+  return r();
+END;
 
 // Execute the tests