Murtadha Hubail has submitted this change and it was merged. ( 
https://asterix-gerrit.ics.uci.edu/3444 )

Change subject: [NO ISSUE][OTH] Use Request Stats When Printing Results on NC
......................................................................

[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 <jenk...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Reviewed-by: Ali Alsuliman <ali.al.solai...@gmail.com>
---
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/NcResultPrinter.java
M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
3 files changed, 12 insertions(+), 3 deletions(-)

Approvals:
  Jenkins: Verified; Verified
  Anon. E. Moose (1000171):
  Ali Alsuliman: Looks good to me, approved

Objections:
  Jenkins: Violations found



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 @@
         }
         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 @@
     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 @@
         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>

--
To view, visit https://asterix-gerrit.ics.uci.edu/3444
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I54c3b3e72cfb0c2499a95bfc0f514dd5d6774293
Gerrit-Change-Number: 3444
Gerrit-PatchSet: 3
Gerrit-Owner: Murtadha Hubail <mhub...@apache.org>
Gerrit-Reviewer: Ali Alsuliman <ali.al.solai...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Dmitry Lychagin <dmitry.lycha...@couchbase.com>
Gerrit-Reviewer: Hussain Towaileb <hussai...@gmail.com>
Gerrit-Reviewer: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Murtadha Hubail <mhub...@apache.org>

Reply via email to