Skip to content

Merge duplicated wildcard arms in LogicalPlanBuilder project_with_validation #26308

Closed

Description

@andygrove

Is your feature request related to a problem or challenge?

In project_with_validation (expr/src/logical_plan/builder.rs#L2087-L2174), the Wildcard arm (about L2100-L2118) and the QualifiedWildcard arm (about L2119-L2139) are near-identical. Both duplicate the REPLACE handling and the validate branch (normalize then columnize, or pass through), and the validate branch is repeated a third time in the Expression arm. The two wildcard arms differ only in how the expanded expressions are produced.

Describe the solution you'd like

Add two small helpers, push_validated(expr, validate) and apply_replace(expanded, replace), so each wildcard arm only computes its expansion and the rest is shared. The existing wildcard and REPLACE tests cover the behaviour.

Describe alternatives you've considered

None.

Additional context

This is small and self-contained, a good first issue. Line references are pinned to commit 0d79252.

Activity

  1. added
    enhancementNew feature or request
    help wantedExtra attention is needed
    logical-exprLogical plan and expressions
    tech debtCode complexity, duplication or structure that makes the codebase harder to change
    on Oct 14, 2026
  2. ozenyunus35 commented on Oct 14, 2026

    @ozenyunus35
    Contributor

    take

  3. added a commit that references this issue on Oct 27, 2026
    c6ab9b2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestgood first issueGood for newcomershelp wantedExtra attention is neededlogical-exprLogical plan and expressionstech debtCode complexity, duplication or structure that makes the codebase harder to change

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions