kosiew commented on PR #22037: URL: https://github.com/apache/datafusion/pull/22037#issuecomment-4542066293
@neilconway Yes, I updated the PR to follow `UNION`'s nullability analysis pattern, while keeping `RecursiveQuery`'s existing node shape. The new approach computes recursive output nullability once (`static_nullable || recursive_nullable`) while preserving the static term's names/types/metadata, then projects both terms to that reconciled schema. This is similar to `UNION` because output nullability is derived once from both sides and then treated as the contract through logical/physical planning. It is not identical to `UNION` structurally: `UNION` stores an explicit schema on the logical node, while `RecursiveQuery` still exposes schema via the coerced static term (instead of adding a new `DFSchema` field to `RecursiveQuery`, which is a `pub struct` with `pub` fields and therefore part of the public API surface). But behavior-wise the key property is now the same: we stop re-deriving recursive CTE nullability from child projection expressions during rebuilds. -- 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]
