Gabriel39 opened a new pull request, #65401:
URL: https://github.com/apache/doris/pull/65401

   ## Proposed changes
   
   Relax Iceberg position delete Parquet reads so Doris can consume delete 
files where `file_path` or `pos` are declared optional in Parquet metadata but 
contain no actual null values.
   
   The reader now materializes position delete columns as nullable, validates 
that each batch has no nulls, then strips the nullable wrapper before building 
delete ranges. Actual null values in `file_path` or `pos` still fail with a 
corruption error.
   
   This covers the legacy Iceberg Parquet reader, the shared delete-file helper 
used by Iceberg writes, and the format_v2 position delete collector.
   
   ## Problem
   
   Some writers, including DuckLake/DuckDB-produced data seen in the field, can 
produce Iceberg position delete files whose required Iceberg fields are encoded 
as optional Parquet fields. Doris previously rejected these files before 
checking whether the data actually contained nulls.
   
   ## Testing
   
   - `git diff --check`
   - `JDK_17=/usr/local/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home 
JAVA_HOME=/usr/local/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home 
./run-be-ut.sh --run --filter='IcebergDeleteFileReaderHelperTest.*'`
     - Blocked locally during CMake configuration because this checkout is 
missing ANN/vector-search prerequisites (`contrib/openblas`, `contrib/faiss`, 
OpenMP).
     - A prior run without an external `DORIS_THIRDPARTY` also blocked before 
compiling due missing `thirdparty/installed/bin/protoc` and Snappy.
   


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