Ganesha S created SPARK-59600:
---------------------------------

             Summary: Bind the resolved function owner across star 
preprocessing and function resolution
                 Key: SPARK-59600
                 URL: https://issues.apache.org/jira/browse/SPARK-59600
             Project: Spark
          Issue Type: Sub-task
          Components: SQL
    Affects Versions: 4.4.0
            Reporter: Ganesha S


Follow-up to: SPARK-59144

Star-expansion preprocessing and `ResolveFunctions` each resolve the function 
owner independently against the SQL PATH, the same owner-blind two-phase 
pattern, the existing `count(*)→count(1)` rewrite, and the `count(tbl.*)` guard 
already use. If a visible temporary or persistent shadow is added or dropped 
between the two phases, they can disagree: preprocessing expands a direct star 
for the selected shadow, then ResolveFunctions falls through to the stock 
SQL/JSON builtin, which no longer sees a Star and skips 
`INVALID_USAGE_OF_STAR_OR_REGEX` (or the reverse). This is only reachable under 
concurrent external DDL during a single query's analysis and is not 
JSON-specific, but SPARK-59144 extends its surface to the routed SQL/JSON 
functions.

Fix: resolve the owner once and bind the selected candidate (or preserve the 
direct-star provenance) so preprocessing and resolution consume a single PATH 
decision; if the bound owner disappears before resolution, fail that candidate 
rather than silently falling through to the builtin. Apply consistently in the 
fixed-point and single-pass analyzers, and add deterministic owner-change 
interleaving coverage for both.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to