bug fixed for dump

This commit is contained in:
Lunny Xiao 2014-05-05 17:56:04 +08:00
parent 53dfe7747a
commit 23ffb3d2a0
1 changed files with 8 additions and 5 deletions

View File

@ -297,6 +297,7 @@ func (engine *Engine) DumpAll(w io.Writer) error {
if err != nil { if err != nil {
return err return err
} }
cols, err := rows.Columns() cols, err := rows.Columns()
if err != nil { if err != nil {
return err return err
@ -317,15 +318,17 @@ func (engine *Engine) DumpAll(w io.Writer) error {
} }
var temp string var temp string
for _, d := range dest { for i, d := range dest {
col := table.GetColumn(cols[i])
if d == nil { if d == nil {
temp += ", NULL" temp += ", NULL"
} else if reflect.TypeOf(d).Kind() == reflect.String { } else if col.SQLType.IsText() || col.SQLType.IsTime() {
temp += ", '" + strings.Replace(d.(string), "'", "''", -1) + "'" var v = fmt.Sprintf("%s", d)
} else if reflect.TypeOf(d).Kind() == reflect.Slice { temp += ", '" + strings.Replace(v, "'", "''", -1) + "'"
} else if col.SQLType.IsBlob() /*reflect.TypeOf(d).Kind() == reflect.Slice*/ {
temp += fmt.Sprintf(", %s", engine.dialect.FormatBytes(d.([]byte))) temp += fmt.Sprintf(", %s", engine.dialect.FormatBytes(d.([]byte)))
} else { } else {
temp += fmt.Sprintf(", %v", d) temp += fmt.Sprintf(", %s", d)
} }
} }
_, err = io.WriteString(w, temp[2:]+");\n\n") _, err = io.WriteString(w, temp[2:]+");\n\n")