yashmayya opened a new pull request, #18650:
URL: https://github.com/apache/pinot/pull/18650

   ## Problem
   
   `OfflineClusterIntegrationTest#testExplainPlanQueryV2` is intermittently 
flaky. It compares the EXPLAIN output's "Rule Execution Times" section after 
masking each per-rule time with `*`, using the regex `Time: \d+\.\d+`.
   
   Rule timings are rendered as `durationNanos / 1_000_000.0` (a `double`) via 
`Double.toString()` in `RuleTimingPlannerListener`. When a rule runs fast 
enough (sub-microsecond, i.e. `< 0.001` ms), `Double.toString()` switches to 
scientific notation such as `1.5E-4`. The old regex matches only the `1.5` 
mantissa and leaves the exponent behind, producing `Time:*E-4`, which no longer 
matches the expected `Time:*`:
   
   ```
   expected: Rule: AggregateProjectPullUpConstants -> Time:*
   found:    Rule: AggregateProjectPullUpConstants -> Time:*E-4
   ```
   
   The rule list itself is correct/unchanged — only the time-masking is wrong. 
This is a pre-existing flake, unrelated to any Calcite version.
   
   ## Fix
   
   Extend the masking regex to also strip an optional scientific-notation 
exponent, so both `1.5` and `1.5E-4` collapse to `*`:
   
   ```
   Time: \d+\.\d+   ->   Time: \d+\.\d+(?:[eE][-+]?\d+)?
   ```
   
   Applied to both occurrences in the test (the two responses asserted in the 
method).
   
   ## Testing
   
   `./mvnw -pl pinot-integration-tests test 
-Dtest=OfflineClusterIntegrationTest#testExplainPlanQueryV2 
-Dsurefire.failIfNoSpecifiedTests=false` passes.
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to