Junyoung Cho created SPARK-47946:
------------------------------------

             Summary: Nested field's nullable value could be invalid after 
extracted using GetStructField
                 Key: SPARK-47946
                 URL: https://issues.apache.org/jira/browse/SPARK-47946
             Project: Spark
          Issue Type: Bug
          Components: Spark Core, SQL
    Affects Versions: 3.4.2
            Reporter: Junyoung Cho


I've got error when append to table using DataFrameWriterV2.

The error was occured in TableOutputResolver.checkNullability. This error 
occurs when the data type of the schema is the same, but the order of the 
fields is different.

I found that GetStructField.nullable returns unexpected result.
{code:java}
override def nullable: Boolean = child.nullable || 
childSchema(ordinal).nullable {code}
Even if nested field has not nullability attribute, it returns true when parent 
struct has nullability attribute.
||Parent nullability||Child nullability||Result||
|true|true|true|
|{color:#FF0000}true{color}|{color:#FF0000}false{color}|{color:#FF0000}true{color}|
|{color:#FF0000}false{color}|{color:#FF0000}true{color}|{color:#FF0000}true{color}|
|false|false|false|

 

I think the logic should be changed to AND operation, because both of parent 
and child should be nullable to be considered nullable.

 

I want to check current logic is reasonable, or my suggestion can occur other 
side effect.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to