There are many such kind of case class or concept such as Attribute/AttributeReference/Expression in Spark SQL
I would ask what Attribute/AttributeReference/Expression mean, given a sql query like select a,b from c, it a, b are two Attributes? a + b is an expression? Looks I misunderstand it because Attribute is extending Expression in the code,which means Attribute itself is an Expression. Thanks.