Description
GetStructField with different optional names should be semantically equal. We will use this as building block to compare the nested fields used in the plans to be optimized by catalyst optimizer.
This PR also fixes a bug below that accessing nested fields with different cases in case insensitive mode will result result AnalysisException.
sql("create table t (s struct<i: Int>) using json") sql("select s.I from t group by s.i")
which is currently failing
org.apache.spark.sql.AnalysisException: expression 'default.t.`s`' is neither present in the group by, nor is it an aggregate function
Attachments
Issue Links
- is related to
-
SPARK-31116 PrquetRowConverter does not follow case sensitivity
- Resolved
- links to