diff -r f12b24ea373f src/pkg/database/sql/driver/driver.go --- a/src/pkg/database/sql/driver/driver.go Sun Mar 17 19:50:01 2013 +0900 +++ b/src/pkg/database/sql/driver/driver.go Sun Mar 17 16:42:37 2013 +0100 @@ -17,7 +17,7 @@ // float64 // bool // []byte -// string [*] everywhere except from Rows.Next. +// string // time.Time type Value interface{} @@ -166,8 +166,7 @@ // size as the Columns() are wide. // // The dest slice may be populated only with - // a driver Value type, but excluding string. - // All string values must be converted to []byte. + // a driver Value type. // // Next should return io.EOF when there are no more rows. Next(dest []Value) error diff -r f12b24ea373f src/pkg/database/sql/driver/types.go --- a/src/pkg/database/sql/driver/types.go Sun Mar 17 19:50:01 2013 +0900 +++ b/src/pkg/database/sql/driver/types.go Sun Mar 17 16:42:37 2013 +0100 @@ -172,25 +172,20 @@ } // IsValue reports whether v is a valid Value parameter type. -// Unlike IsScanValue, IsValue permits the string type. func IsValue(v interface{}) bool { if IsScanValue(v) { return true } - if _, ok := v.(string); ok { - return true - } return false } // IsScanValue reports whether v is a valid Value scan type. -// Unlike IsValue, IsScanValue does not permit the string type. func IsScanValue(v interface{}) bool { if v == nil { return true } switch v.(type) { - case int64, float64, []byte, bool, time.Time: + case int64, float64, string, []byte, bool, time.Time: return true } return false