jackylee-ch opened a new pull request, #10073:
URL: https://github.com/apache/paimon/pull/10073

   ### Purpose
   
   Follow-up to #9841 (disjoint files, either merge order works), which closes 
the predicate `VortexReaderFactory` builds. The converter that builds it leaks 
the pieces: the Vortex JNI builders clone their inputs and leave freeing to the 
caller, so the column and the literal are the converter's to release once the 
consuming call returns, and it released neither. Master leaks both on every 
successful leaf, and on the paths that decline to push: an unconvertible 
predicate returns `null` after building both, and an `Or` that gives up drops 
every child it had already built.
   
   `visit(CompoundPredicate)` matches `PredicateProjectionConverter`'s shape, 
so the `finally` is written once. Unreachable delta: an `Or` with no children 
returns `null` rather than `Expression.or([])`, which the JNI rejects.
   
   ### Tests
   
   Nothing here is assertable, so no test. The 32 converter tests pass — 
several write a file and read it back through the converted expression, so 
operands closed before use still filter correctly, the guarantee #9841's 
`ExpressionLifetimeTest` defers to them for. 73 run, 0 failures.
   
   Over 200k conversions RSS growth drops 461 MB → 78 MB. The residual is 
consistent with the root intermediate inside `Expression.column`, which #9841 
frees.
   
   Written with Claude Code; verification is mine.
   


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

Reply via email to