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

Method Eval

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

Eval implements the TypedExpr interface.

(ctx *EvalContext)

Source from the content-addressed store, hash-verified

3100
3101// Eval implements the TypedExpr interface.
3102func (expr *AndExpr) Eval(ctx *EvalContext) (Datum, error) {
3103 left, err := expr.Left.(TypedExpr).Eval(ctx)
3104 if err != nil {
3105 return nil, err
3106 }
3107 if left != DNull {
3108 if v, err := GetBool(left); err != nil {
3109 return nil, err
3110 } else if !v {
3111 return left, nil
3112 }
3113 }
3114 right, err := expr.Right.(TypedExpr).Eval(ctx)
3115 if err != nil {
3116 return nil, err
3117 }
3118 if right == DNull {
3119 return DNull, nil
3120 }
3121 if v, err := GetBool(right); err != nil {
3122 return nil, err
3123 } else if !v {
3124 return right, nil
3125 }
3126 return left, nil
3127}
3128
3129// Eval implements the TypedExpr interface.
3130func (expr *BinaryExpr) Eval(ctx *EvalContext) (Datum, error) {

Callers

nothing calls this directly

Calls 2

GetBoolFunction · 0.85
EvalMethod · 0.65

Tested by

no test coverage detected