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]