package sqltypes import ( "database/sql/driver" "encoding/json" "errors" ) type NullRawMessage struct { RawMessage json.RawMessage Valid bool } func (n *NullRawMessage) Scan(value interface{}) error { if value == nil { n.RawMessage, n.Valid = json.RawMessage{}, false return nil } buf, ok := value.([]byte) if !ok { return errors.New("cannot parse to bytes") } n.RawMessage, n.Valid = buf, true return nil } func (n NullRawMessage) Value() (driver.Value, error) { if !n.Valid { return nil, nil } return n.RawMessage, nil }