Add RETURNING to Delete statement.
Add DELETE statement wiki page.
This commit is contained in:
parent
3d38946eda
commit
5e0e2f2908
10 changed files with 189 additions and 37 deletions
|
|
@ -11,6 +11,8 @@ type DeleteStatement interface {
|
|||
Statement
|
||||
|
||||
WHERE(expression BoolExpression) DeleteStatement
|
||||
|
||||
RETURNING(projections ...projection) DeleteStatement
|
||||
}
|
||||
|
||||
func newDeleteStatement(table WritableTable) DeleteStatement {
|
||||
|
|
@ -20,8 +22,9 @@ func newDeleteStatement(table WritableTable) DeleteStatement {
|
|||
}
|
||||
|
||||
type deleteStatementImpl struct {
|
||||
table WritableTable
|
||||
where BoolExpression
|
||||
table WritableTable
|
||||
where BoolExpression
|
||||
returning []projection
|
||||
}
|
||||
|
||||
func (d *deleteStatementImpl) WHERE(expression BoolExpression) DeleteStatement {
|
||||
|
|
@ -29,6 +32,11 @@ func (d *deleteStatementImpl) WHERE(expression BoolExpression) DeleteStatement {
|
|||
return d
|
||||
}
|
||||
|
||||
func (d *deleteStatementImpl) RETURNING(projections ...projection) DeleteStatement {
|
||||
d.returning = projections
|
||||
return d
|
||||
}
|
||||
|
||||
func (d *deleteStatementImpl) serializeImpl(out *queryData) error {
|
||||
if d == nil {
|
||||
return errors.New("delete statement is nil")
|
||||
|
|
@ -52,6 +60,10 @@ func (d *deleteStatementImpl) serializeImpl(out *queryData) error {
|
|||
return err
|
||||
}
|
||||
|
||||
if err := out.writeReturning(delete_statement, d.returning); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue