kdelay commented on PR #19946:
URL: https://github.com/apache/druid/pull/19946#issuecomment-5267147912

   Disclosure first: I have an open PR for the same issue (#19941), so please 
read this as an interested party's report rather than a neutral review. 
Everything below is reproducible.
   
   **Neither of the two new tests has run yet, because `druid-sql` test 
compilation fails.**
   
   On this branch as-is (0867233), JDK 25 on macOS:
   
   ```
   mvn test -pl sql -am -Dtest=DruidStatementTest 
-Dsurefire.failIfNoSpecifiedTests=false -Pskip-static-checks 
-Dweb.console.skip=true
   ```
   
   ```
   [ERROR] .../sql/avatica/DruidStatementTest.java:[370,40] cannot find symbol
   [ERROR]   symbol:   method size()
   [ERROR]   location: variable rows of type 
java.lang.Iterable<java.lang.Object>
   ```
   
   The same error repeats at 392 and 399. `Meta.Frame.rows` is 
`Iterable<Object>`, so `frame.rows.size()` does not compile.
   
   Merged with current master there is a second failure on top of that one. 
`DruidStatementTest` was migrated to JUnit 5 in b1b968365d (#19909, 2026-08-08) 
and `org.junit.Assert` is no longer imported there, so every `Assert.assertX` 
in the added tests becomes an unresolved symbol. That is what the red jobs on 
this PR report: `Compilation failure ... on project druid-sql` in 
`test-jdk25-[D*]` and the other unit test shards.
   
   **Once it compiles, both new tests fail.** I changed only the three 
`frame.rows.size()` calls to `Lists.newArrayList(frame.rows).size()` (`Lists` 
is already imported in the file), left everything else untouched, and re-ran 
the same command:
   
   ```
   [ERROR] Tests run: 16, Failures: 2, Errors: 0, Skipped: 0
   [ERROR] DruidStatementTest.testMaxRowCountDirect:371
   [ERROR] DruidStatementTest.testMaxRowCountOverMultipleFramesDirect:400
   ```
   
   Both failures are the `assertTrue(frame.done)` line. This is the same defect 
that was already flagged inline on `DruidJdbcResultSet`: `offset` is 
incremented after the frame is constructed, so `yielder.isDone() || offset >= 
limit` tests the pre-fetch offset, and the frame that reaches the limit still 
reports `done = false`. The row-count assertions on those same frames pass, so 
the limit itself does take effect; it is only the termination flag.
   


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