Skip to content
This repository was archived by the owner on Jan 28, 2021. It is now read-only.

Commit d4fd697

Browse files
authored
sql/expression: handle null values in arithmetic expressions (#760)
sql/expression: handle null values in arithmetic expressions
2 parents 9722f31 + 540082d commit d4fd697

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

Diff for: engine_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -1226,6 +1226,10 @@ var queries = []struct {
12261226
`SELECT CASE i WHEN 1 THEN i ELSE NULL END FROM mytable`,
12271227
[]sql.Row{{int64(1)}, {nil}, {nil}},
12281228
},
1229+
{
1230+
`SELECT (NULL+1)`,
1231+
[]sql.Row{{nil}},
1232+
},
12291233
}
12301234

12311235
func TestQueries(t *testing.T) {

Diff for: sql/expression/arithmetic.go

+4
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,10 @@ func (a *Arithmetic) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) {
159159
return nil, err
160160
}
161161

162+
if lval == nil || rval == nil {
163+
return nil, nil
164+
}
165+
162166
lval, rval, err = a.convertLeftRight(lval, rval)
163167
if err != nil {
164168
return nil, err

0 commit comments

Comments
 (0)