sqlgraph/convert: use json.RawMessage for JSON types (#393)

If the underlying driver does not support JSON types, driver.DefaultParameterConverter
will convert it to uint8.
This commit is contained in:
Ariel Mashraki
2020-03-17 18:34:10 +02:00
committed by GitHub
parent d867d372e6
commit 416c374cb3
3 changed files with 8 additions and 2 deletions

View File

@@ -934,9 +934,13 @@ func setTableColumns(fields []*FieldSpec, edges map[Rel][]*EdgeSpec, set func(st
for _, fi := range fields {
value := fi.Value
if fi.Type == field.TypeJSON {
if value, err = json.Marshal(value); err != nil {
buf, err := json.Marshal(value)
if err != nil {
return fmt.Errorf("marshal value for column %s: %v", fi.Column, err)
}
// If the underlying driver does not support JSON types,
// driver.DefaultParameterConverter will convert it to uint8.
value = json.RawMessage(buf)
}
set(fi.Column, value)
}