kamcheungting-db opened a new pull request, #1065:
URL: https://github.com/apache/iceberg-cpp/pull/1065

   FileScanTaskReader gains two Options: case_sensitive (matching the planning 
scan's setting, because task residuals are unbound) and apply_residuals 
(default false, keeping the serial reader's results unchanged; the parallel 
reader will always enable it).
   
   When enabled, each task's residual is enforced row by row after deletes and 
before the final projection with the existing Evaluator. Residual-only columns 
are appended to the read schema and projected away again, so a filter can 
reference columns absent from the output projection. Residuals are bound 
against the table schema with the configured case sensitivity; unresolvable or 
nested references fail with explicit errors instead of silently returning 
unfiltered rows. ReaderOptions.filter is still forwarded to format readers as a 
pruning hint, but nothing relies on it.
   
   The merge-on-read stream source now also serves tasks without deletes when a 
residual must be enforced: delete filtering and residual evaluation are both 
optional, and the pass-through fast path only triggers when no filter removed a 
row.
   
   Tests cover residuals with position and equality deletes, filter columns 
absent from the projection, case-insensitive residuals, null values, 
always-false residuals, kept row identities, apply_residuals disabled, and 
explicit errors for unknown, case-mismatched, and nested references.


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