diff --git a/spanner/value.go b/spanner/value.go index 336850c3dd02..660e76e5c6d3 100644 --- a/spanner/value.go +++ b/spanner/value.go @@ -602,7 +602,7 @@ func decodeValue(v *proto3.Value, t *sppb.Type, ptr interface{}) error { } err := parseNullTime(v, &nt, code, isNull) if err != nil { - return nil + return err } *p = nt.Time case *NullTime: diff --git a/spanner/value_test.go b/spanner/value_test.go index 34207eded19a..b40f683fd68b 100644 --- a/spanner/value_test.go +++ b/spanner/value_test.go @@ -773,6 +773,7 @@ func TestDecodeValue(t *testing.T) { {timeProto(t1), timeType(), t1, false}, {timeProto(t1), timeType(), NullTime{t1, true}, false}, {nullProto(), timeType(), NullTime{}, false}, + {intProto(7), timeType(), time.Time{}, true}, // TIMESTAMP ARRAY with []NullTime {listProto(timeProto(t1), timeProto(t2), timeProto(t3), nullProto()), listType(timeType()), []NullTime{{t1, true}, {t2, true}, {t3, true}, {}}, false}, {nullProto(), listType(timeType()), []NullTime(nil), false},