@@ -100,6 +100,8 @@ const footerTmpl = `/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
100
100
-- Dump completed on {{ .CompleteTime }}
101
101
`
102
102
103
+ const nullType = "NULL"
104
+
103
105
// Dump data using struct
104
106
func (data * Data ) Dump () error {
105
107
meta := metaData {
@@ -309,27 +311,30 @@ func (data *Data) createTableValues(name string) (string, error) {
309
311
310
312
for key , value := range values {
311
313
if value == nil {
312
- dataStrings [key ] = "NULL"
313
- } else if s , ok := value .(* sql.NullString ); ok {
314
- if s .Valid {
315
- dataStrings [key ] = "'" + sanitize (s .String ) + "'"
316
- } else {
317
- dataStrings [key ] = "NULL"
318
- }
319
- } else if s , ok := value .(* sql.NullInt64 ); ok {
320
- if s .Valid {
321
- dataStrings [key ] = fmt .Sprintf ("%d" , s .Int64 )
322
- } else {
323
- dataStrings [key ] = "NULL"
324
- }
325
- } else if s , ok := value .(* sql.RawBytes ); ok {
326
- if len (* s ) == 0 {
327
- dataStrings [key ] = "NULL"
328
- } else {
329
- dataStrings [key ] = "_binary '" + sanitize (string (* s )) + "'"
330
- }
314
+ dataStrings [key ] = nullType
331
315
} else {
332
- dataStrings [key ] = fmt .Sprint ("'" , value , "'" )
316
+ switch s := value .(type ) {
317
+ case * sql.NullString :
318
+ if s .Valid {
319
+ dataStrings [key ] = "'" + sanitize (s .String ) + "'"
320
+ } else {
321
+ dataStrings [key ] = nullType
322
+ }
323
+ case * sql.NullInt64 :
324
+ if s .Valid {
325
+ dataStrings [key ] = fmt .Sprintf ("%d" , s .Int64 )
326
+ } else {
327
+ dataStrings [key ] = nullType
328
+ }
329
+ case * sql.RawBytes :
330
+ if len (* s ) == 0 {
331
+ dataStrings [key ] = nullType
332
+ } else {
333
+ dataStrings [key ] = "_binary '" + sanitize (string (* s )) + "'"
334
+ }
335
+ default :
336
+ dataStrings [key ] = fmt .Sprint ("'" , value , "'" )
337
+ }
333
338
}
334
339
}
335
340
0 commit comments