[ 
https://issues.apache.org/jira/browse/SPARK-59749?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated SPARK-59749:
-----------------------------------
    Labels: pull-request-available  (was: )

> ASOF JOIN MATCH_CONDITION rejects empty STRUCT operands accepted by the 
> comparison operator
> -------------------------------------------------------------------------------------------
>
>                 Key: SPARK-59749
>                 URL: https://issues.apache.org/jira/browse/SPARK-59749
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 5.0.0
>            Reporter: Luka Zdravic
>            Priority: Minor
>              Labels: pull-request-available
>
> Inside a MATCH_CONDITION, comparing two empty structs (STRUCT<>) fails with 
> ASOF_JOIN_MATCH_CONDITION_INVALID_TYPE. The same comparison outside ASOF 
> works: two empty structs compare as equal. The error says the operands must 
> be orderable, but STRUCT<> is orderable. ASOF adds its own check that rejects 
> any type that contains an empty struct.
> SET spark.sql.join.asofJoin.enabled = true;
> -- fails:
> SELECT * FROM VALUES (named_struct()) AS l(s)
> ASOF JOIN VALUES (named_struct()) AS r(s)
> MATCH_CONDITION (l.s >= r.s);        -- 
> ASOF_JOIN_MATCH_CONDITION_INVALID_TYPE: "STRUCT<>" and "STRUCT<>"
> -- works:
> SELECT named_struct() >= named_struct();   -- true
> The same check also rejects nested empty structs, for example STRUCT<x: 
> STRUCT<>> and ARRAY<STRUCT<>>.
> Expected: MATCH_CONDITION accepts empty struct operands, nested or not, same 
> as the comparison operator. An empty struct paired with a non-empty struct 
> stays rejected.
> The check does not depend on ANSI mode.
> Impact: an as-of condition that is a legal comparison cannot be written.
> Umbrella: SPARK-59526



--
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