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]
