jtao15 commented on a change in pull request #6224:
URL: https://github.com/apache/incubator-pinot/pull/6224#discussion_r521663461



##########
File path: 
pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/ClusterIntegrationTestUtils.java
##########
@@ -833,6 +700,33 @@ static void testSqlQuery(String pinotQuery, String 
brokerUrl, org.apache.pinot.c
       return;
     }
 
+    BrokerRequest brokerRequest =
+        
PinotQueryParserFactory.get(CommonConstants.Broker.Request.SQL).compileToBrokerRequest(pinotQuery);
+    // Add order by columns which are not in selection clause for comparison 
purpose
+    List<String> orderByColumns = new ArrayList<>();
+    List<String> selectionColumns = new ArrayList<>();
+    if (isSelectionQuery(brokerRequest) && brokerRequest.getOrderBy() != null 
&& brokerRequest.getOrderBy().size() > 0) {
+      
orderByColumns.addAll(CalciteSqlParser.extractIdentifiers(brokerRequest.getPinotQuery().getOrderByList(),
 false));
+      
selectionColumns.addAll(CalciteSqlParser.extractIdentifiers(brokerRequest.getPinotQuery().getSelectList(),
 false));
+      convertToUpperCase(orderByColumns);
+      convertToUpperCase(selectionColumns);
+
+      if (!selectionColumns.containsAll(orderByColumns)) {
+        List<String> inputRequests = new ArrayList<>();
+        inputRequests.add(pinotQuery);
+        inputRequests.addAll(sqlQueries);
+
+        Set<String> orderByColumnsExcluded = new HashSet<>(orderByColumns);
+        orderByColumnsExcluded.removeAll(selectionColumns);
+
+        // Append order-by columns not in selection clause so the order of 
query responses can be verified
+        // e.g. we can't verify the order of query `SELECT firstName FROM 
mytable ORDER BY lastName' if there are duplicate lastNames

Review comment:
       I think the problem here is whether we want to check the returned order 
of selection queries which order-by columns are not in selection clause. We 
skipped comparison for this case for previous sql comparison, and current pql 
logic will not verify the order but only compare values. So without the 
order-by clause append, the sql comparison will be consistent with current pql 
logic, and all test cases should pass. 




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to