From 896b89a0231ef30b5473d15cdf03988093627aa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Mengu=C3=A9?= Date: Thu, 12 Jul 2018 15:54:57 +0200 Subject: [PATCH] Rows.AddRow(): enforce conversion to driver.Value when building row --- rows.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/rows.go b/rows.go index 836f49b..6477ed6 100644 --- a/rows.go +++ b/rows.go @@ -126,6 +126,17 @@ func (r *Rows) AddRow(values ...driver.Value) *Rows { row := make([]driver.Value, len(r.cols)) for i, v := range values { + // Convert user-friendly values (such as int or driver.Valuer) + // to database/sql native value (driver.Value such as int64) + var err error + v, err = driver.DefaultParameterConverter.ConvertValue(v) + if err != nil { + panic(fmt.Errorf( + "row #%d, column #%d (%q) type %T: %s", + len(r.rows)+1, i, r.cols[i], values[i], err, + )) + } + row[i] = v }