Eval implements the TypedExpr interface.
(ctx *EvalContext)
| 4200 | |
| 4201 | // Eval implements the TypedExpr interface. |
| 4202 | func (expr *NullIfExpr) Eval(ctx *EvalContext) (Datum, error) { |
| 4203 | expr1, err := expr.Expr1.(TypedExpr).Eval(ctx) |
| 4204 | if err != nil { |
| 4205 | return nil, err |
| 4206 | } |
| 4207 | expr2, err := expr.Expr2.(TypedExpr).Eval(ctx) |
| 4208 | if err != nil { |
| 4209 | return nil, err |
| 4210 | } |
| 4211 | cond, err := evalComparison(ctx, EQ, expr1, expr2) |
| 4212 | if err != nil { |
| 4213 | return nil, err |
| 4214 | } |
| 4215 | if cond == DBoolTrue { |
| 4216 | return DNull, nil |
| 4217 | } |
| 4218 | return expr1, nil |
| 4219 | } |
| 4220 | |
| 4221 | // Eval implements the TypedExpr interface. |
| 4222 | func (expr *OrExpr) Eval(ctx *EvalContext) (Datum, error) { |
nothing calls this directly
no test coverage detected