func()

in spark/sql/column/expressions.go [69:97]


func (d *delayedColumnReference) ToProto(ctx context.Context) (*proto.Expression, error) {
	// Check if the column identifier is actually part of the schema.
	schema, err := d.df.Schema(ctx)
	if err != nil {
		return nil, err
	}
	found := false
	for _, field := range schema.Fields {
		if field.Name == d.unparsedIdentifier {
			found = true
			break
		}
	}
	// TODO: return proper pyspark error
	if !found {
		return nil, sparkerrors.WithType(sparkerrors.InvalidPlanError,
			fmt.Errorf("cannot resolve column %s", d.unparsedIdentifier))
	}

	expr := newProtoExpression()
	id := d.df.PlanId()
	expr.ExprType = &proto.Expression_UnresolvedAttribute_{
		UnresolvedAttribute: &proto.Expression_UnresolvedAttribute{
			UnparsedIdentifier: d.unparsedIdentifier,
			PlanId:             &id,
		},
	}
	return expr, nil
}