package orm
type DropTableOptions struct {
IfExists bool
Cascade bool
}
type DropTableQuery struct {
q *Query
opt *DropTableOptions
}
var (
_ QueryAppender = (*DropTableQuery)(nil)
_ QueryCommand = (*DropTableQuery)(nil)
)
func ( *Query, *DropTableOptions) *DropTableQuery {
return &DropTableQuery{
q: ,
opt: ,
}
}
func ( *DropTableQuery) () string {
, := .AppendQuery(defaultFmter, nil)
if != nil {
panic()
}
return string()
}
func ( *DropTableQuery) () QueryOp {
return DropTableOp
}
func ( *DropTableQuery) () QueryCommand {
return &DropTableQuery{
q: .q.Clone(),
opt: .opt,
}
}
func ( *DropTableQuery) () *Query {
return .q
}
func ( *DropTableQuery) ( []byte) ([]byte, error) {
return .AppendQuery(dummyFormatter{}, )
}
func ( *DropTableQuery) ( QueryFormatter, []byte) ( []byte, error) {
if .q.stickyErr != nil {
return nil, .q.stickyErr
}
if .q.tableModel == nil {
return nil, errModelNil
}
= append(, "DROP TABLE "...)
if .opt != nil && .opt.IfExists {
= append(, "IF EXISTS "...)
}
, = .q.appendFirstTable(, )
if != nil {
return nil,
}
if .opt != nil && .opt.Cascade {
= append(, " CASCADE"...)
}
return , .q.stickyErr
}