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

Method Eval

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

Eval implements the TypedExpr interface.

(ctx *EvalContext)

Source from the content-addressed store, hash-verified

4220
4221// Eval implements the TypedExpr interface.
4222func (expr *OrExpr) Eval(ctx *EvalContext) (Datum, error) {
4223 left, err := expr.Left.(TypedExpr).Eval(ctx)
4224 if err != nil {
4225 return nil, err
4226 }
4227 if left != DNull {
4228 if v, err := GetBool(left); err != nil {
4229 return nil, err
4230 } else if v {
4231 return left, nil
4232 }
4233 }
4234 right, err := expr.Right.(TypedExpr).Eval(ctx)
4235 if err != nil {
4236 return nil, err
4237 }
4238 if right == DNull {
4239 return DNull, nil
4240 }
4241 if v, err := GetBool(right); err != nil {
4242 return nil, err
4243 } else if v {
4244 return right, nil
4245 }
4246 if left == DNull {
4247 return DNull, nil
4248 }
4249 return DBoolFalse, nil
4250}
4251
4252// Eval implements the TypedExpr interface.
4253func (expr *ParenExpr) Eval(ctx *EvalContext) (Datum, error) {

Callers

nothing calls this directly

Calls 2

GetBoolFunction · 0.85
EvalMethod · 0.65

Tested by

no test coverage detected