Description
The following query currently fails on master brach:
sql("SELECT named_struct('a', 1, 'b', 2) a") .select($"a".withField("c", lit(3)).as("a")) .show(false) // java.lang.UnsupportedOperationException: Cannot evaluate expression: with_fields(named_struct(a, 1, b, 2), c, 3)
This happens because the Catalyst optimizer tries to statically evaluate the WithFields Expression (via the ConstantFolding rule), however it cannot do so because WithFields Expression is Unevaluable.
The likely solution here is to change WithFields Expression so that it is not foldable under any circumstance. This should solve the issue because then Catalyst will no longer attempt to statically evaluate WithFields Expression anymore.