(restoreCtx *format.RestoreCtx, d types.Datum, ft *types.FieldType)
| 38 | } |
| 39 | |
| 40 | func writeDatum(restoreCtx *format.RestoreCtx, d types.Datum, ft *types.FieldType) error { |
| 41 | switch ft.GetType() { |
| 42 | case mysql.TypeBit, mysql.TypeBlob, mysql.TypeLongBlob, mysql.TypeTinyBlob: |
| 43 | return writeHex(restoreCtx.In, d) |
| 44 | case mysql.TypeString, mysql.TypeVarString, mysql.TypeVarchar, mysql.TypeEnum, mysql.TypeSet: |
| 45 | if mysql.HasBinaryFlag(ft.GetFlag()) { |
| 46 | return writeHex(restoreCtx.In, d) |
| 47 | } |
| 48 | _, err := fmt.Fprintf(restoreCtx.In, "'%s'", sqlescape.EscapeString(d.GetString())) |
| 49 | return err |
| 50 | } |
| 51 | expr := ast.NewValueExpr(d.GetValue(), ft.GetCharset(), ft.GetCollate()) |
| 52 | return expr.Restore(restoreCtx) |
| 53 | } |
| 54 | |
| 55 | // FormatSQLDatum formats the datum to a value string in sql |
| 56 | func FormatSQLDatum(d types.Datum, ft *types.FieldType) (string, error) { |
no test coverage detected
searching dependent graphs…