I asked a question recently about VOID in STRUCT failing to cast to VARIANT, whereas a VOID column is castable to VARIANT. Link
Earlier I thought it might be an error since cast was possible somehow. But the community members replied that this is the expected behaviour and not an error.
I will post an example here.
%sql
CREATE OR REPLACE TEMPORARY VIEW v_temp AS
VALUES (NULL, DATE'2025-12-31'), (NULL, DATE'2026-04-12'), (NULL, DATE'2026-06-23') AS T(PAYMENT_DATE, TRANSACTION_DATE);
SELECT PAYMENT_DATE, TYPEOF(PAYMENT_DATE), TRANSACTION_DATE, TYPEOF(TRANSACTION_DATE)
FROM v_temp;



I checked the variant encoding docs in parquet. And VOID is a type in variant. Link

What is the design decision that led to VOID being excluded from STRUCT columns for casting to VARIANT?
Kindly note that I want to know the design decision or rationale behind this. I don't need any way arounds this behaviour. I know this is the implementation and am interested in knowing why it was designed so?