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]
