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



##########
File path: 
pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/ClusterIntegrationTestUtils.java
##########
@@ -463,21 +466,20 @@ private static Object generateRandomValue(Schema.Type 
fieldType) {
    * </ul>
    *
    * @param pinotQuery Pinot query
-   * @param queryFormat Pinot query format
    * @param brokerUrl Pinot broker URL
    * @param pinotConnection Pinot connection
    * @param sqlQueries H2 SQL queries
    * @param h2Connection H2 connection
    * @throws Exception
    */
-  public static void testQuery(String pinotQuery, String queryFormat, String 
brokerUrl,
+  public static void testQuery(String pinotQuery, String brokerUrl,
       org.apache.pinot.client.Connection pinotConnection, @Nullable 
List<String> sqlQueries,
       @Nullable Connection h2Connection)
       throws Exception {
     // Use broker response for metadata check, connection response for value 
check
-    PinotQueryRequest pinotBrokerQueryRequest = new 
PinotQueryRequest(queryFormat, pinotQuery);
+    PinotQueryRequest pinotBrokerQueryRequest = new PinotQueryRequest("pql", 
pinotQuery);

Review comment:
       Use `CommonConstants.Broker.Request.PQL` here?

##########
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:
       If the values of lastName is exhausted, we can still verify the values, 
right?

##########
File path: 
pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/ClusterIntegrationTestUtils.java
##########
@@ -463,21 +466,20 @@ private static Object generateRandomValue(Schema.Type 
fieldType) {
    * </ul>
    *
    * @param pinotQuery Pinot query
-   * @param queryFormat Pinot query format
    * @param brokerUrl Pinot broker URL
    * @param pinotConnection Pinot connection
    * @param sqlQueries H2 SQL queries
    * @param h2Connection H2 connection
    * @throws Exception
    */
-  public static void testQuery(String pinotQuery, String queryFormat, String 
brokerUrl,
+  public static void testQuery(String pinotQuery, String brokerUrl,

Review comment:
       +1 on that




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