87
vendor/github.com/gocraft/dbr/delete_builder.go
generated
vendored
Normal file
87
vendor/github.com/gocraft/dbr/delete_builder.go
generated
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
package dbr
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
type DeleteBuilder struct {
|
||||
runner
|
||||
EventReceiver
|
||||
Dialect Dialect
|
||||
|
||||
*DeleteStmt
|
||||
|
||||
LimitCount int64
|
||||
}
|
||||
|
||||
func (sess *Session) DeleteFrom(table string) *DeleteBuilder {
|
||||
return &DeleteBuilder{
|
||||
runner: sess,
|
||||
EventReceiver: sess,
|
||||
Dialect: sess.Dialect,
|
||||
DeleteStmt: DeleteFrom(table),
|
||||
LimitCount: -1,
|
||||
}
|
||||
}
|
||||
|
||||
func (tx *Tx) DeleteFrom(table string) *DeleteBuilder {
|
||||
return &DeleteBuilder{
|
||||
runner: tx,
|
||||
EventReceiver: tx,
|
||||
Dialect: tx.Dialect,
|
||||
DeleteStmt: DeleteFrom(table),
|
||||
LimitCount: -1,
|
||||
}
|
||||
}
|
||||
|
||||
func (sess *Session) DeleteBySql(query string, value ...interface{}) *DeleteBuilder {
|
||||
return &DeleteBuilder{
|
||||
runner: sess,
|
||||
EventReceiver: sess,
|
||||
Dialect: sess.Dialect,
|
||||
DeleteStmt: DeleteBySql(query, value...),
|
||||
LimitCount: -1,
|
||||
}
|
||||
}
|
||||
|
||||
func (tx *Tx) DeleteBySql(query string, value ...interface{}) *DeleteBuilder {
|
||||
return &DeleteBuilder{
|
||||
runner: tx,
|
||||
EventReceiver: tx,
|
||||
Dialect: tx.Dialect,
|
||||
DeleteStmt: DeleteBySql(query, value...),
|
||||
LimitCount: -1,
|
||||
}
|
||||
}
|
||||
|
||||
func (b *DeleteBuilder) Exec() (sql.Result, error) {
|
||||
return b.ExecContext(context.Background())
|
||||
}
|
||||
|
||||
func (b *DeleteBuilder) ExecContext(ctx context.Context) (sql.Result, error) {
|
||||
return exec(ctx, b.runner, b.EventReceiver, b, b.Dialect)
|
||||
}
|
||||
|
||||
func (b *DeleteBuilder) Where(query interface{}, value ...interface{}) *DeleteBuilder {
|
||||
b.DeleteStmt.Where(query, value...)
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *DeleteBuilder) Limit(n uint64) *DeleteBuilder {
|
||||
b.LimitCount = int64(n)
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *DeleteBuilder) Build(d Dialect, buf Buffer) error {
|
||||
err := b.DeleteStmt.Build(b.Dialect, buf)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if b.LimitCount >= 0 {
|
||||
buf.WriteString(" LIMIT ")
|
||||
buf.WriteString(fmt.Sprint(b.LimitCount))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user