-
-
Notifications
You must be signed in to change notification settings - Fork 107
Closed
Description
For example
CREATE TABLE
t (
optional VARCHAR(64));
rows, err := db.Query("SELECT optional FROM t LIMIT 1?")
for rows.Next() {
var o mo.Option[string]
if err := rows.Scan(&o); err != nil {
t.Errorf("Failed scanning row: %s", err.Error())
continue
}
}
then will got Failed scanning row: sql: Scan error on column index 1, name "optional": failed to scan Option[T]
, and the reason is
that type of arg src
of Scan is []uint8, and failed here when assert type is string
, refer to sql.NullString, we can use the function sql.convertAssign
to replace the driver.DefaultParameterConverter.ConvertValue
to resolve it, but the convertAssign is private, and maybe won't be public(refer to golang/go#24258), so we can copy out the convertAssign and make some modification or write a new convert function? what do you think? Or have some other solution?
Metadata
Metadata
Assignees
Labels
No labels