Add RETURNING to Delete statement.

Add DELETE statement wiki page.
This commit is contained in:
go-jet 2019-06-30 17:16:00 +02:00
parent 3d38946eda
commit 5e0e2f2908
10 changed files with 189 additions and 37 deletions

View file

@ -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
}