diff --git a/helper/schema/field_writer_map.go b/helper/schema/field_writer_map.go index a9b38ac45c..ad9980e104 100644 --- a/helper/schema/field_writer_map.go +++ b/helper/schema/field_writer_map.go @@ -293,6 +293,12 @@ func (w *MapFieldWriter) setSet( } k := strings.Join(addr, ".") + + if value == nil { + w.result[k+".#"] = "0" + return nil + } + for code, elem := range value.(*Set).m { codeStr := strconv.FormatInt(int64(code), 10) if err := w.set(append(addrCopy, codeStr), elem); err != nil { @@ -302,5 +308,4 @@ func (w *MapFieldWriter) setSet( w.result[k+".#"] = strconv.Itoa(value.(*Set).Len()) return nil - }