You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mh...@apache.org on 2019/06/18 05:09:47 UTC

[asterixdb] branch master updated: [NO ISSUE][OTH] Use Request Stats When Printing Results on NC

This is an automated email from the ASF dual-hosted git repository.

mhubail pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 866ff86  [NO ISSUE][OTH] Use Request Stats When Printing Results on NC
866ff86 is described below

commit 866ff86eeea070e55c6b9c78161bcad3b1989f6c
Author: Murtadha Hubail <mh...@apache.org>
AuthorDate: Sat Jun 15 04:51:02 2019 +0300

    [NO ISSUE][OTH] Use Request Stats When Printing Results on NC
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    - When printing a result on an NC, use the stats object
      of the original request rather than the object received
      from the CC as part of the execute statement response
      message. This is done because the metrics returned to the
      user are generated from the stats object of the request.
    - Add metrics test case to sqlpp test suite to test returning
      metrics from NCQueryServiceServlet.
    
    Change-Id: I54c3b3e72cfb0c2499a95bfc0f514dd5d6774293
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/3444
    Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Ali Alsuliman <al...@gmail.com>
---
 .../org/apache/asterix/api/http/server/NCQueryServiceServlet.java  | 2 +-
 .../java/org/apache/asterix/app/result/fields/NcResultPrinter.java | 6 ++++--
 .../asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml   | 7 +++++++
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java
index 7d7bad2..254f92a 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java
@@ -119,7 +119,7 @@ public class NCQueryServiceServlet extends QueryServiceServlet {
         }
         if (hasResult(responseMsg)) {
             responsePrinter.addResultPrinter(
-                    new NcResultPrinter(appCtx, responseMsg, getResultSet(), delivery, sessionOutput));
+                    new NcResultPrinter(appCtx, responseMsg, getResultSet(), delivery, sessionOutput, stats));
         }
         buildResponseResults(responsePrinter, sessionOutput, responseMsg.getExecutionPlans());
     }
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/NcResultPrinter.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/NcResultPrinter.java
index 2989d2c..000dd6a 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/NcResultPrinter.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/NcResultPrinter.java
@@ -43,14 +43,17 @@ public class NcResultPrinter implements IResponseFieldPrinter {
     private final IApplicationContext appCtx;
     private final IResultSet resultSet;
     private final SessionOutput sessionOutput;
+    private final IStatementExecutor.Stats stats;
 
     public NcResultPrinter(IApplicationContext appCtx, ExecuteStatementResponseMessage responseMsg,
-            IResultSet resultSet, IStatementExecutor.ResultDelivery delivery, SessionOutput sessionOutput) {
+            IResultSet resultSet, IStatementExecutor.ResultDelivery delivery, SessionOutput sessionOutput,
+            IStatementExecutor.Stats stats) {
         this.appCtx = appCtx;
         this.responseMsg = responseMsg;
         this.delivery = delivery;
         this.resultSet = resultSet;
         this.sessionOutput = sessionOutput;
+        this.stats = stats;
     }
 
     @Override
@@ -58,7 +61,6 @@ public class NcResultPrinter implements IResponseFieldPrinter {
         IStatementExecutor.ResultMetadata resultMetadata = responseMsg.getMetadata();
         List<Triple<JobId, ResultSetId, ARecordType>> resultSets = resultMetadata.getResultSets();
         if (delivery == IStatementExecutor.ResultDelivery.IMMEDIATE && !resultSets.isEmpty()) {
-            final IStatementExecutor.Stats stats = responseMsg.getStats();
             stats.setProcessedObjects(responseMsg.getStats().getProcessedObjects());
             for (int i = 0; i < resultSets.size(); i++) {
                 Triple<JobId, ResultSetId, ARecordType> rsmd = resultSets.get(i);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
index 15c0702..7191d03 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
@@ -12342,4 +12342,11 @@
       </compilation-unit>
     </test-case>
   </test-group>
+  <test-group name="metrics">
+    <test-case FilePath="metrics">
+      <compilation-unit name="full-scan">
+        <output-dir compare="Text">full-scan</output-dir>
+      </compilation-unit>
+    </test-case>
+  </test-group>
 </test-suite>