Nemesis123925 commented on PR #11941:
URL: https://github.com/apache/pinot/pull/11941#issuecomment-1811886481

   Roger that 
   
   Here is the solution I suggest
   
   In `QueriesTestUtils.java`, I write two new functions: 
   
   ```
   public static void testExplainSegmentsResult(BrokerResponseNative 
brokerResponse, ResultTable expectedResultTable) {
       assertEquals(brokerResponse.getResultTable().getDataSchema(), 
expectedResultTable.getDataSchema());
       validateExplainedRows(brokerResponse.getResultTable().getRows(), 
expectedResultTable.getRows());
     }
   
   private static void validateExplainedRows(List<Object[]> actual, 
List<Object[]> expected) {
       assertEquals(actual.size(), expected.size());
       for (int j = 0; j < actual.size(); j++) {
         Object[] act = actual.get(j);
         Object[] exp = expected.get(j);
         String attributeToSort = "PROJECT";
         assertEquals(act.length, exp.length);
         if (act[0].toString().startsWith(attributeToSort)) {
           char[] act0 = act[0].toString().toCharArray();
           char[] exp0 = exp[0].toString().toCharArray();
           Arrays.sort(act0);
           Arrays.sort(exp0);
           act[0] = new String(act0);
           exp[0] = new String(exp0);
         }
         assertEquals(act, exp);
       }
     }
   ```
   
   In `ExplainPlanQueriesTest.java`, I redirect the `checkWithQueryExecutor` to 
call `testExplainSegmentsResult`
   
   If apply this fix, instead of fixing all `27` flaky tests in 
`ExplainPlanQueriesTest.java`, this will fix `14` of them, which are
   ```
   org.apache.pinot.queries.ExplainPlanQueriesTest#testSelect
   org.apache.pinot.queries.ExplainPlanQueriesTest#testSelectAggregate
   
org.apache.pinot.queries.ExplainPlanQueriesTest#testSelectAggregateUsingFilterGroupBy
   
org.apache.pinot.queries.ExplainPlanQueriesTest#testSelectAggregateUsingFilterGroupByVerbose
   
org.apache.pinot.queries.ExplainPlanQueriesTest#testSelectAggregateUsingFilterIndex
   
org.apache.pinot.queries.ExplainPlanQueriesTest#testSelectAggregateUsingFilterIndexGroupBy
   
org.apache.pinot.queries.ExplainPlanQueriesTest#testSelectAggregateUsingFilterIndexGroupByHaving
   
org.apache.pinot.queries.ExplainPlanQueriesTest#testSelectAggregateUsingFilterIndexGroupByOrderBy
   
org.apache.pinot.queries.ExplainPlanQueriesTest#testSelectAggregateUsingFilterOnTextIndexColumn
   
org.apache.pinot.queries.ExplainPlanQueriesTest#testSelectColumnUsingFilterOnRangeIndexColumn
   org.apache.pinot.queries.ExplainPlanQueriesTest#testSelectColumnsUsingFilter
   
org.apache.pinot.queries.ExplainPlanQueriesTest#testSelectColumnsUsingFilterOnInvertedIndexColumn
   
org.apache.pinot.queries.ExplainPlanQueriesTest#testSelectColumnsVariationsOfAndOperators
   
org.apache.pinot.queries.ExplainPlanQueriesTest#testSelectColumnsVariationsOfOrOperators
   ```
   If you guys think this fix is good, I will push the new commit. 


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

To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org

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