github-actions[bot] commented on code in PR #67906:
URL: https://github.com/apache/doris/pull/67906#discussion_r3999137002


##########
be/src/exec/rowid_fetcher.cpp:
##########
@@ -609,6 +635,36 @@ Status RowIdStorageReader::submit_external_scan_tasks(
     return scan_status.ok() ? Status::OK() : scan_status.status();
 }
 
+TFileScanRangeParams RowIdStorageReader::build_external_scan_params(
+        const TFileScanRangeParams& source_params, const TFileRangeDesc& range,
+        const std::vector<SlotDescriptor>& scan_slots,
+        const std::vector<uint32_t>& scan_column_idxs) {
+    DORIS_CHECK(scan_slots.size() == scan_column_idxs.size());
+    auto params = source_params;
+    params.required_slots.clear();
+    params.column_idxs.clear();
+    params.slot_name_to_schema_pos.clear();
+    const std::set partition_names(range.columns_from_path_keys.begin(),
+                                   range.columns_from_path_keys.end());
+    for (size_t slot_idx = 0; slot_idx < scan_slots.size(); ++slot_idx) {
+        const auto& slot = scan_slots[slot_idx];
+        const auto column_idx = scan_column_idxs[slot_idx];
+        TFileScanSlotInfo slot_info;
+        slot_info.__set_slot_id(slot.id());

Review Comment:
   [P1] Preserve synthesized slot categories in the phase-two request
   
   An Iceberg metadata column such as `_file` or `_pos` can be selected as a 
TopN lazy slot (reduced path inferred from the code: `Materialize(lazy=[_file]) 
-> TopN -> IcebergFileScan(id, GLOBAL_ROWID)`). This rebuild creates every 
non-partition slot with only `is_file_slot=true`. On the V2 path, the missing 
`SYNTHESIZED` category makes `_build_projected_columns()` mark the slot as 
physical; `TableColumnMapper` then skips the virtual `_file`/`_pos` mapping and 
materializes a missing-column default instead of the metadata value. Please 
carry the original category through the phase-two request/rebuild, including 
slots pruned from phase one, derive `column_idxs` from it, and add a lazy 
metadata-column regression test.



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