spanner: fix parsing incorrect types/values into a time.Time
There was a `return nil` where a `return err` was clearly intended.
Change-Id: I44368292a64e47f7b4d300198543d2f777504af7
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43930
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
diff --git a/spanner/value.go b/spanner/value.go
index 336850c..660e76e 100644
--- a/spanner/value.go
+++ b/spanner/value.go
@@ -602,7 +602,7 @@
}
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 34207ed..b40f683 100644
--- a/spanner/value_test.go
+++ b/spanner/value_test.go
@@ -773,6 +773,7 @@
{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},