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


##########
be/src/format/table/iceberg_delete_file_reader_helper.cpp:
##########
@@ -216,6 +217,12 @@ bool is_iceberg_deletion_vector(const 
TIcebergDeleteFileDesc& delete_file) {
     return delete_file.__isset.content && delete_file.content == 3;
 }
 
+std::string build_iceberg_deletion_vector_cache_key(const std::string& 
data_file_path,

Review Comment:
   This key is still ambiguous because both path fields are inserted unescaped 
before the numeric suffix. For example, `data_file_path = "s3://b/a"` with 
`delete_file.path = "x#y"` produces the same key as `data_file_path = 
"s3://b/a#x"` with `delete_file.path = "y"` when offset and size match: 
`delete_dv_s3://b/a#x#y#1#2`. Since Iceberg paths are object paths and may 
contain `#`, the scan-node cache can reuse another data file's deletion-vector 
rows and filter the wrong positions. Please make the string components 
unambiguous, e.g. length-prefix or binary-encode each path before appending 
offset and size, and add a collision test with `#` in both paths.



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