snmvaughan opened a new pull request, #5410:
URL: https://github.com/apache/datafusion-comet/pull/5410

   CometIcebergNativeWrite's `requireNoParquetHadoopConfOverrides` (added in 
#5298) walks the entire session Hadoop Configuration and returns an 
`Unsupported` fall-back reason for any key starting with `parquet.`. The intent 
is sound (a `parquet.*` key in the Hadoop conf reaches iceberg-java's writer 
but not Comet's native writer), but the predicate is too broad: it checks 
reader-side `parquet.*` keys the same as writer-side ones.
   
   `parquet.hadoop.vectored.io.enabled` is a reader-side vectored-IO knob:
   
   - Declared in parquet-hadoop as 
`org.apache.parquet.hadoop.ParquetInputFormat.HADOOP_VECTORED_IO_ENABLED` with 
default `true` in parquet-hadoop 1.16+.
   - Only consulted by parquet-mr's Hadoop reader path (via 
`HadoopReadOptions.useHadoopVectoredIo`); iceberg-java's writer never reads it.
   
   Any environment that seeds it into the session Hadoop configuration trips 
this rule, and every otherwise-Compatible Iceberg V2 write is silently 
mis-classified as Unsupported — the native writer is disabled without the user 
having changed any writer-relevant setting.
   
   ## Which issue does this PR close?
   
   Closes #.
   
   ## Rationale for this change
   
   Avoid mis-classifying Compatible Iceberg V2 writes as Unsupported due to 
well-known parquet reader settings.
   
   ## What changes are included in this PR?
   
   Add an `IgnoredHadoopParquetConfKeys` set containing 
`parquet.hadoop.vectored.io.enabled` and consult it inside the `parquet.*` walk 
before emitting the fall-back reason. The broad `startsWith("parquet.")` gate 
remains in place for every writer-relevant knob.
   
   ## How are these changes tested?
   
   Add a regression test that pins
   `parquet.hadoop.vectored.io.enabled=true` in the session Hadoop 
configuration via `withSQLConf` and asserts Compatible. The existing negative 
test ("fall-back: parquet.* key in the session Hadoop configuration", keyed on 
`parquet.block.size`) continues to exercise the rejection path for real 
writer-relevant `parquet.*` keys.


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