buraksenn opened a new pull request, #24813:
URL: https://github.com/apache/datafusion/pull/24813

   ## Which issue does this PR close?
   
   - Closes #24624.
   
   ## Rationale for this change
   
   Proto hooks that access fields individually can silently omit newly added 
state. Exhaustive destructuring makes such omissions compile errors.
   
   `FileScanConfig` is shared by all file sources, so a field omitted here is 
lost for Parquet, CSV, JSON, Arrow, and Avro.
   
   ## What changes are included in this PR?
   
   - Exhaustively destructure `FileScanConfig` and `MemorySourceConfig` in 
their encoders.
   - Exhaustively destructure their protobuf nodes in the decoders.
   - Document fields that are serialized indirectly or reconstructed during 
decoding.
   - Add an optional `preserve_order` field so explicit values survive file 
scan round trips while older payloads retain their ordering-derived behavior.
   - Reject default serialization of non-default expression adapter factories 
instead of silently discarding their behavior, and update the custom 
serialization example accordingly.
   - Decode projected `MemorySourceConfig` sort information against the 
projected schema without applying projection twice.
   
   The protobuf change is additive and backward compatible.
   
   ## Are these changes tested?
   
   Added or updated coverage for:
   
   - explicit `preserve_order` values and legacy payload behavior
   - default and custom expression adapter factories
   - projected memory-source sort information, projection, fetch, and display 
settings
   
   ## Are there any user-facing changes?
   
   File scans now preserve an explicit `preserve_order` value across protobuf 
round trips. Default serialization of plans containing custom expression 
adapter factories now returns an explicit error rather than silently dropping 
the factory.
   
   Projected memory sources now preserve their sort information across round 
trips. The new protobuf field is additive, and `PhysicalExprAdapterFactory` 
gains a default method, so existing implementations remain source compatible.
   


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