BuildDeleteSQL builds a delete SQL
(tbl *cache.PhysicalTable, rows [][]types.Datum, expire time.Time)
| 457 | |
| 458 | // BuildDeleteSQL builds a delete SQL |
| 459 | func BuildDeleteSQL(tbl *cache.PhysicalTable, rows [][]types.Datum, expire time.Time) (string, error) { |
| 460 | if len(rows) == 0 { |
| 461 | return "", errors.New("Cannot build delete SQL with empty rows") |
| 462 | } |
| 463 | |
| 464 | b := NewSQLBuilder(tbl) |
| 465 | if err := b.WriteDelete(); err != nil { |
| 466 | return "", err |
| 467 | } |
| 468 | |
| 469 | if err := b.WriteInCondition(tbl.KeyColumns, rows...); err != nil { |
| 470 | return "", err |
| 471 | } |
| 472 | |
| 473 | if err := b.WriteExpireCondition(expire); err != nil { |
| 474 | return "", err |
| 475 | } |
| 476 | |
| 477 | if err := b.WriteLimit(len(rows)); err != nil { |
| 478 | return "", err |
| 479 | } |
| 480 | |
| 481 | return b.Build() |
| 482 | } |
searching dependent graphs…