MCPcopy Create free account
hub / github.com/auxten/postgresql-parser / Eval

Method Eval

pkg/sql/sem/tree/eval.go:4263–4281  ·  view source on GitHub ↗

Eval implements the TypedExpr interface.

(ctx *EvalContext)

Source from the content-addressed store, hash-verified

4261
4262// Eval implements the TypedExpr interface.
4263func (expr *UnaryExpr) Eval(ctx *EvalContext) (Datum, error) {
4264 d, err := expr.Expr.(TypedExpr).Eval(ctx)
4265 if err != nil {
4266 return nil, err
4267 }
4268 if d == DNull {
4269 return DNull, nil
4270 }
4271 res, err := expr.fn.Fn(ctx, d)
4272 if err != nil {
4273 return nil, err
4274 }
4275 if ctx.TestingKnobs.AssertUnaryExprReturnTypes {
4276 if err := ensureExpectedType(expr.fn.ReturnType, res); err != nil {
4277 return nil, errors.NewAssertionErrorWithWrappedErrf(err, "unary op %q", expr)
4278 }
4279 }
4280 return res, err
4281}
4282
4283// Eval implements the TypedExpr interface.
4284func (expr DefaultVal) Eval(ctx *EvalContext) (Datum, error) {

Callers

nothing calls this directly

Calls 2

ensureExpectedTypeFunction · 0.85
EvalMethod · 0.65

Tested by

no test coverage detected