MCPcopy Create free account
hub / github.com/dolthub/doltgresql / Eval

Method Eval

server/expression/assignment_cast.go:51–69  ·  view source on GitHub ↗

Eval implements the sql.Expression interface.

(ctx *sql.Context, row sql.Row)

Source from the content-addressed store, hash-verified

49
50// Eval implements the sql.Expression interface.
51func (ac *AssignmentCast) Eval(ctx *sql.Context, row sql.Row) (any, error) {
52 val, err := ac.expr.Eval(ctx, row)
53 if err != nil || val == nil {
54 return val, err
55 }
56 castsColl, err := core.GetCastsCollectionFromContext(ctx, "")
57 if err != nil {
58 return nil, err
59 }
60 cast, err := castsColl.GetAssignmentCast(ctx, ac.sourceType, ac.targetType)
61 if err != nil {
62 return nil, err
63 }
64 if !cast.ID.IsValid() {
65 return nil, errors.Errorf("ASSIGNMENT_CAST: target is of type %s but expression is of type %s: %s",
66 ac.targetType.String(), ac.sourceType.String(), ac.expr.String())
67 }
68 return cast.Eval(ctx, val, ac.sourceType, ac.targetType)
69}
70
71// IsNullable implements the sql.Expression interface.
72func (ac *AssignmentCast) IsNullable(ctx *sql.Context) bool {

Callers

nothing calls this directly

Calls 6

EvalMethod · 0.65
GetAssignmentCastMethod · 0.65
ErrorfMethod · 0.65
StringMethod · 0.65
IsValidMethod · 0.45

Tested by

no test coverage detected