shangxinli commented on code in PR #1065:
URL: https://github.com/apache/iceberg-cpp/pull/1065#discussion_r4425883977


##########
src/iceberg/data/file_scan_task_reader.h:
##########
@@ -59,6 +59,17 @@ class ICEBERG_DATA_EXPORT FileScanTaskReader {
     std::shared_ptr<NameMapping> name_mapping;
     /// Format-specific or implementation-specific options for data readers.
     std::unordered_map<std::string, std::string> properties;
+    /// Case sensitivity used to bind residual filters. Must match the planning
+    /// scan's case sensitivity because task residuals are unbound and tasks do
+    /// not carry this setting.
+    bool case_sensitive{true};
+    /// Whether to enforce each task's residual filter row by row, after 
deletes
+    /// and before final projection. The default keeps the serial reader's
+    /// results unchanged; the parallel reader always enables it. Columns used
+    /// only by the residual are read for evaluation and removed by the final
+    /// projection. Format readers may ignore `ReaderOptions.filter`, so this 
is
+    /// the only guaranteed enforcement path.
+    bool apply_residuals{false};

Review Comment:
   Defaulting apply_residuals to false for the serial reader while the parallel 
reader always enables it means a caller who switches readers, or a future 
serial-path caller who forgets to set this, silently gets unfiltered rows 
instead of an error.



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