From 232bfdf44b815bb344508c3497c061fc8fc3050b Mon Sep 17 00:00:00 2001 From: Jason Fulghum Date: Tue, 5 Aug 2025 15:08:28 -0700 Subject: [PATCH] Add support for DELETE ... RETURNING --- server/ast/delete.go | 13 +- server/connection_handler.go | 4 + .../command_docs/output/delete_test.go | 156 +++++++++--------- testing/go/delete_test.go | 66 ++++++++ 4 files changed, 157 insertions(+), 82 deletions(-) create mode 100644 testing/go/delete_test.go diff --git a/server/ast/delete.go b/server/ast/delete.go index 07a1c3fe47..482c4682e5 100644 --- a/server/ast/delete.go +++ b/server/ast/delete.go @@ -15,8 +15,6 @@ package ast import ( - "github.com/cockroachdb/errors" - vitess "github.com/dolthub/vitess/go/vt/sqlparser" "github.com/dolthub/doltgresql/postgres/parser/sem/tree" @@ -31,9 +29,15 @@ func nodeDelete(ctx *Context, node *tree.Delete) (*vitess.Delete, error) { ctx.Auth().PushAuthType(auth.AuthType_DELETE) defer ctx.Auth().PopAuthType() - if _, ok := node.Returning.(*tree.NoReturningClause); !ok { - return nil, errors.Errorf("RETURNING is not yet supported") + var returningExprs vitess.SelectExprs + if returning, ok := node.Returning.(*tree.ReturningExprs); ok { + var err error + returningExprs, err = nodeSelectExprs(ctx, tree.SelectExprs(*returning)) + if err != nil { + return nil, err + } } + with, err := nodeWith(ctx, node.With) if err != nil { return nil, err @@ -60,5 +64,6 @@ func nodeDelete(ctx *Context, node *tree.Delete) (*vitess.Delete, error) { Where: where, OrderBy: orderBy, Limit: limit, + Returning: returningExprs, }, nil } diff --git a/server/connection_handler.go b/server/connection_handler.go index 8f3be00f2f..a4fd6169e6 100644 --- a/server/connection_handler.go +++ b/server/connection_handler.go @@ -1170,6 +1170,10 @@ func hasReturningClause(statement sqlparser.Statement) bool { hasReturningClause = true } return false, nil + case *sqlparser.Delete: + if len(node.Returning) > 0 { + hasReturningClause = true + } } return true, nil }, statement) diff --git a/testing/generation/command_docs/output/delete_test.go b/testing/generation/command_docs/output/delete_test.go index ae34c42389..b1ee1f6d7f 100644 --- a/testing/generation/command_docs/output/delete_test.go +++ b/testing/generation/command_docs/output/delete_test.go @@ -428,7 +428,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name RETURNING *"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING *"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING *"), - Parses("DELETE FROM table_name RETURNING *"), + Converts("DELETE FROM table_name RETURNING *"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name RETURNING *"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name RETURNING *"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name RETURNING *"), @@ -443,7 +443,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING *"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING *"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING *"), - Parses("DELETE FROM table_name alias RETURNING *"), + Converts("DELETE FROM table_name alias RETURNING *"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias RETURNING *"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias RETURNING *"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias RETURNING *"), @@ -458,7 +458,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING *"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING *"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING *"), - Parses("DELETE FROM table_name AS alias RETURNING *"), + Converts("DELETE FROM table_name AS alias RETURNING *"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias RETURNING *"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias RETURNING *"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias RETURNING *"), @@ -563,7 +563,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING *"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING *"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING *"), - Parses("DELETE FROM table_name WHERE condition RETURNING *"), + Converts("DELETE FROM table_name WHERE condition RETURNING *"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING *"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING *"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING *"), @@ -578,7 +578,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING *"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING *"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING *"), - Parses("DELETE FROM table_name alias WHERE condition RETURNING *"), + Converts("DELETE FROM table_name alias WHERE condition RETURNING *"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING *"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING *"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING *"), @@ -593,7 +593,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING *"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING *"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING *"), - Parses("DELETE FROM table_name AS alias WHERE condition RETURNING *"), + Converts("DELETE FROM table_name AS alias WHERE condition RETURNING *"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING *"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING *"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING *"), @@ -833,7 +833,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname"), - Parses("DELETE FROM table_name RETURNING colname"), + Converts("DELETE FROM table_name RETURNING colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name RETURNING colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name RETURNING colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name RETURNING colname"), @@ -848,7 +848,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname"), - Parses("DELETE FROM table_name alias RETURNING colname"), + Converts("DELETE FROM table_name alias RETURNING colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias RETURNING colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias RETURNING colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias RETURNING colname"), @@ -863,7 +863,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname"), - Parses("DELETE FROM table_name AS alias RETURNING colname"), + Converts("DELETE FROM table_name AS alias RETURNING colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname"), @@ -968,7 +968,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname"), - Parses("DELETE FROM table_name WHERE condition RETURNING colname"), + Converts("DELETE FROM table_name WHERE condition RETURNING colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname"), @@ -983,7 +983,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname"), - Parses("DELETE FROM table_name alias WHERE condition RETURNING colname"), + Converts("DELETE FROM table_name alias WHERE condition RETURNING colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname"), @@ -998,7 +998,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname"), - Parses("DELETE FROM table_name AS alias WHERE condition RETURNING colname"), + Converts("DELETE FROM table_name AS alias WHERE condition RETURNING colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname"), @@ -1238,7 +1238,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname output_name"), - Parses("DELETE FROM table_name RETURNING colname output_name"), + Converts("DELETE FROM table_name RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name RETURNING colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name RETURNING colname output_name"), @@ -1253,7 +1253,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname output_name"), - Parses("DELETE FROM table_name alias RETURNING colname output_name"), + Converts("DELETE FROM table_name alias RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias RETURNING colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias RETURNING colname output_name"), @@ -1268,7 +1268,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname output_name"), - Parses("DELETE FROM table_name AS alias RETURNING colname output_name"), + Converts("DELETE FROM table_name AS alias RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname output_name"), @@ -1373,7 +1373,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname output_name"), - Parses("DELETE FROM table_name WHERE condition RETURNING colname output_name"), + Converts("DELETE FROM table_name WHERE condition RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname output_name"), @@ -1388,7 +1388,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname output_name"), - Parses("DELETE FROM table_name alias WHERE condition RETURNING colname output_name"), + Converts("DELETE FROM table_name alias WHERE condition RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname output_name"), @@ -1403,7 +1403,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname output_name"), - Parses("DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name"), + Converts("DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name"), @@ -1643,7 +1643,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname AS output_name"), - Parses("DELETE FROM table_name RETURNING colname AS output_name"), + Converts("DELETE FROM table_name RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name RETURNING colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name RETURNING colname AS output_name"), @@ -1658,7 +1658,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname AS output_name"), - Parses("DELETE FROM table_name alias RETURNING colname AS output_name"), + Converts("DELETE FROM table_name alias RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias RETURNING colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias RETURNING colname AS output_name"), @@ -1673,7 +1673,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname AS output_name"), - Parses("DELETE FROM table_name AS alias RETURNING colname AS output_name"), + Converts("DELETE FROM table_name AS alias RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname AS output_name"), @@ -1778,7 +1778,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname AS output_name"), - Parses("DELETE FROM table_name WHERE condition RETURNING colname AS output_name"), + Converts("DELETE FROM table_name WHERE condition RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname AS output_name"), @@ -1793,7 +1793,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname AS output_name"), - Parses("DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name"), + Converts("DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name"), @@ -1808,7 +1808,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname AS output_name"), - Parses("DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name"), + Converts("DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name"), @@ -2048,7 +2048,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname , colname"), - Parses("DELETE FROM table_name RETURNING colname , colname"), + Converts("DELETE FROM table_name RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name RETURNING colname , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name RETURNING colname , colname"), @@ -2063,7 +2063,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname , colname"), - Parses("DELETE FROM table_name alias RETURNING colname , colname"), + Converts("DELETE FROM table_name alias RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias RETURNING colname , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias RETURNING colname , colname"), @@ -2078,7 +2078,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname , colname"), - Parses("DELETE FROM table_name AS alias RETURNING colname , colname"), + Converts("DELETE FROM table_name AS alias RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname , colname"), @@ -2183,7 +2183,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname , colname"), - Parses("DELETE FROM table_name WHERE condition RETURNING colname , colname"), + Converts("DELETE FROM table_name WHERE condition RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname , colname"), @@ -2198,7 +2198,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname , colname"), - Parses("DELETE FROM table_name alias WHERE condition RETURNING colname , colname"), + Converts("DELETE FROM table_name alias WHERE condition RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname , colname"), @@ -2213,7 +2213,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname , colname"), - Parses("DELETE FROM table_name AS alias WHERE condition RETURNING colname , colname"), + Converts("DELETE FROM table_name AS alias WHERE condition RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname , colname"), @@ -2453,7 +2453,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname output_name , colname"), - Parses("DELETE FROM table_name RETURNING colname output_name , colname"), + Converts("DELETE FROM table_name RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name RETURNING colname output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name RETURNING colname output_name , colname"), @@ -2468,7 +2468,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname output_name , colname"), - Parses("DELETE FROM table_name alias RETURNING colname output_name , colname"), + Converts("DELETE FROM table_name alias RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias RETURNING colname output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias RETURNING colname output_name , colname"), @@ -2483,7 +2483,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname output_name , colname"), - Parses("DELETE FROM table_name AS alias RETURNING colname output_name , colname"), + Converts("DELETE FROM table_name AS alias RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname output_name , colname"), @@ -2588,7 +2588,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname output_name , colname"), - Parses("DELETE FROM table_name WHERE condition RETURNING colname output_name , colname"), + Converts("DELETE FROM table_name WHERE condition RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname output_name , colname"), @@ -2603,7 +2603,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname output_name , colname"), - Parses("DELETE FROM table_name alias WHERE condition RETURNING colname output_name , colname"), + Converts("DELETE FROM table_name alias WHERE condition RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname output_name , colname"), @@ -2618,7 +2618,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname output_name , colname"), - Parses("DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name , colname"), + Converts("DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name , colname"), @@ -2858,7 +2858,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname AS output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname AS output_name , colname"), - Parses("DELETE FROM table_name RETURNING colname AS output_name , colname"), + Converts("DELETE FROM table_name RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name RETURNING colname AS output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name RETURNING colname AS output_name , colname"), @@ -2873,7 +2873,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname AS output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname AS output_name , colname"), - Parses("DELETE FROM table_name alias RETURNING colname AS output_name , colname"), + Converts("DELETE FROM table_name alias RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias RETURNING colname AS output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias RETURNING colname AS output_name , colname"), @@ -2888,7 +2888,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname AS output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname AS output_name , colname"), - Parses("DELETE FROM table_name AS alias RETURNING colname AS output_name , colname"), + Converts("DELETE FROM table_name AS alias RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname AS output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname AS output_name , colname"), @@ -2993,7 +2993,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname AS output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname AS output_name , colname"), - Parses("DELETE FROM table_name WHERE condition RETURNING colname AS output_name , colname"), + Converts("DELETE FROM table_name WHERE condition RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname AS output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname AS output_name , colname"), @@ -3008,7 +3008,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname AS output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname AS output_name , colname"), - Parses("DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name , colname"), + Converts("DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name , colname"), @@ -3023,7 +3023,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname AS output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname AS output_name , colname"), - Parses("DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name , colname"), + Converts("DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name , colname"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name , colname"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name , colname"), @@ -3263,7 +3263,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname , colname output_name"), - Parses("DELETE FROM table_name RETURNING colname , colname output_name"), + Converts("DELETE FROM table_name RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name RETURNING colname , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name RETURNING colname , colname output_name"), @@ -3278,7 +3278,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname , colname output_name"), - Parses("DELETE FROM table_name alias RETURNING colname , colname output_name"), + Converts("DELETE FROM table_name alias RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias RETURNING colname , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias RETURNING colname , colname output_name"), @@ -3293,7 +3293,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname , colname output_name"), - Parses("DELETE FROM table_name AS alias RETURNING colname , colname output_name"), + Converts("DELETE FROM table_name AS alias RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname , colname output_name"), @@ -3398,7 +3398,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname , colname output_name"), - Parses("DELETE FROM table_name WHERE condition RETURNING colname , colname output_name"), + Converts("DELETE FROM table_name WHERE condition RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname , colname output_name"), @@ -3413,7 +3413,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname , colname output_name"), - Parses("DELETE FROM table_name alias WHERE condition RETURNING colname , colname output_name"), + Converts("DELETE FROM table_name alias WHERE condition RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname , colname output_name"), @@ -3428,7 +3428,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname , colname output_name"), - Parses("DELETE FROM table_name AS alias WHERE condition RETURNING colname , colname output_name"), + Converts("DELETE FROM table_name AS alias WHERE condition RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname , colname output_name"), @@ -3668,7 +3668,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname output_name , colname output_name"), - Parses("DELETE FROM table_name RETURNING colname output_name , colname output_name"), + Converts("DELETE FROM table_name RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name RETURNING colname output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name RETURNING colname output_name , colname output_name"), @@ -3683,7 +3683,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname output_name , colname output_name"), - Parses("DELETE FROM table_name alias RETURNING colname output_name , colname output_name"), + Converts("DELETE FROM table_name alias RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias RETURNING colname output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias RETURNING colname output_name , colname output_name"), @@ -3698,7 +3698,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname output_name , colname output_name"), - Parses("DELETE FROM table_name AS alias RETURNING colname output_name , colname output_name"), + Converts("DELETE FROM table_name AS alias RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname output_name , colname output_name"), @@ -3803,7 +3803,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname output_name , colname output_name"), - Parses("DELETE FROM table_name WHERE condition RETURNING colname output_name , colname output_name"), + Converts("DELETE FROM table_name WHERE condition RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname output_name , colname output_name"), @@ -3818,7 +3818,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname output_name , colname output_name"), - Parses("DELETE FROM table_name alias WHERE condition RETURNING colname output_name , colname output_name"), + Converts("DELETE FROM table_name alias WHERE condition RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname output_name , colname output_name"), @@ -3833,7 +3833,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname output_name , colname output_name"), - Parses("DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name , colname output_name"), + Converts("DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name , colname output_name"), @@ -4073,7 +4073,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname AS output_name , colname output_name"), - Parses("DELETE FROM table_name RETURNING colname AS output_name , colname output_name"), + Converts("DELETE FROM table_name RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name RETURNING colname AS output_name , colname output_name"), @@ -4088,7 +4088,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname AS output_name , colname output_name"), - Parses("DELETE FROM table_name alias RETURNING colname AS output_name , colname output_name"), + Converts("DELETE FROM table_name alias RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias RETURNING colname AS output_name , colname output_name"), @@ -4103,7 +4103,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname AS output_name , colname output_name"), - Parses("DELETE FROM table_name AS alias RETURNING colname AS output_name , colname output_name"), + Converts("DELETE FROM table_name AS alias RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname AS output_name , colname output_name"), @@ -4208,7 +4208,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname AS output_name , colname output_name"), - Parses("DELETE FROM table_name WHERE condition RETURNING colname AS output_name , colname output_name"), + Converts("DELETE FROM table_name WHERE condition RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname AS output_name , colname output_name"), @@ -4223,7 +4223,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname AS output_name , colname output_name"), - Parses("DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name , colname output_name"), + Converts("DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name , colname output_name"), @@ -4238,7 +4238,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname AS output_name , colname output_name"), - Parses("DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name , colname output_name"), + Converts("DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name , colname output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name , colname output_name"), @@ -4478,7 +4478,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname , colname AS output_name"), - Parses("DELETE FROM table_name RETURNING colname , colname AS output_name"), + Converts("DELETE FROM table_name RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name RETURNING colname , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name RETURNING colname , colname AS output_name"), @@ -4493,7 +4493,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname , colname AS output_name"), - Parses("DELETE FROM table_name alias RETURNING colname , colname AS output_name"), + Converts("DELETE FROM table_name alias RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias RETURNING colname , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias RETURNING colname , colname AS output_name"), @@ -4508,7 +4508,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname , colname AS output_name"), - Parses("DELETE FROM table_name AS alias RETURNING colname , colname AS output_name"), + Converts("DELETE FROM table_name AS alias RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname , colname AS output_name"), @@ -4613,7 +4613,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname , colname AS output_name"), - Parses("DELETE FROM table_name WHERE condition RETURNING colname , colname AS output_name"), + Converts("DELETE FROM table_name WHERE condition RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname , colname AS output_name"), @@ -4628,7 +4628,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname , colname AS output_name"), - Parses("DELETE FROM table_name alias WHERE condition RETURNING colname , colname AS output_name"), + Converts("DELETE FROM table_name alias WHERE condition RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname , colname AS output_name"), @@ -4643,7 +4643,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname , colname AS output_name"), - Parses("DELETE FROM table_name AS alias WHERE condition RETURNING colname , colname AS output_name"), + Converts("DELETE FROM table_name AS alias WHERE condition RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname , colname AS output_name"), @@ -4883,7 +4883,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname output_name , colname AS output_name"), - Parses("DELETE FROM table_name RETURNING colname output_name , colname AS output_name"), + Converts("DELETE FROM table_name RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name RETURNING colname output_name , colname AS output_name"), @@ -4898,7 +4898,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname output_name , colname AS output_name"), - Parses("DELETE FROM table_name alias RETURNING colname output_name , colname AS output_name"), + Converts("DELETE FROM table_name alias RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias RETURNING colname output_name , colname AS output_name"), @@ -4913,7 +4913,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname output_name , colname AS output_name"), - Parses("DELETE FROM table_name AS alias RETURNING colname output_name , colname AS output_name"), + Converts("DELETE FROM table_name AS alias RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname output_name , colname AS output_name"), @@ -5018,7 +5018,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname output_name , colname AS output_name"), - Parses("DELETE FROM table_name WHERE condition RETURNING colname output_name , colname AS output_name"), + Converts("DELETE FROM table_name WHERE condition RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname output_name , colname AS output_name"), @@ -5033,7 +5033,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname output_name , colname AS output_name"), - Parses("DELETE FROM table_name alias WHERE condition RETURNING colname output_name , colname AS output_name"), + Converts("DELETE FROM table_name alias WHERE condition RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname output_name , colname AS output_name"), @@ -5048,7 +5048,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname output_name , colname AS output_name"), - Parses("DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name , colname AS output_name"), + Converts("DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname output_name , colname AS output_name"), @@ -5288,7 +5288,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name RETURNING colname AS output_name , colname AS output_name"), - Parses("DELETE FROM table_name RETURNING colname AS output_name , colname AS output_name"), + Converts("DELETE FROM table_name RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name RETURNING colname AS output_name , colname AS output_name"), @@ -5303,7 +5303,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias RETURNING colname AS output_name , colname AS output_name"), - Parses("DELETE FROM table_name alias RETURNING colname AS output_name , colname AS output_name"), + Converts("DELETE FROM table_name alias RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias RETURNING colname AS output_name , colname AS output_name"), @@ -5318,7 +5318,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias RETURNING colname AS output_name , colname AS output_name"), - Parses("DELETE FROM table_name AS alias RETURNING colname AS output_name , colname AS output_name"), + Converts("DELETE FROM table_name AS alias RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias RETURNING colname AS output_name , colname AS output_name"), @@ -5423,7 +5423,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name WHERE condition RETURNING colname AS output_name , colname AS output_name"), - Parses("DELETE FROM table_name WHERE condition RETURNING colname AS output_name , colname AS output_name"), + Converts("DELETE FROM table_name WHERE condition RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name WHERE condition RETURNING colname AS output_name , colname AS output_name"), @@ -5438,7 +5438,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), - Parses("DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), + Converts("DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), @@ -5453,7 +5453,7 @@ func TestDelete(t *testing.T) { Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) , queryname AS ( select ) DELETE FROM ONLY table_name AS alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), - Parses("DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), + Converts("DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH RECURSIVE queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), Unimplemented("WITH queryname AS ( select ) , queryname AS ( select ) DELETE FROM table_name AS alias WHERE condition RETURNING colname AS output_name , colname AS output_name"), diff --git a/testing/go/delete_test.go b/testing/go/delete_test.go new file mode 100644 index 0000000000..98707bc274 --- /dev/null +++ b/testing/go/delete_test.go @@ -0,0 +1,66 @@ +// Copyright 2025 Dolthub, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package _go + +import ( + "testing" + + "github.com/dolthub/go-mysql-server/sql" +) + +func TestDelete(t *testing.T) { + RunScripts(t, []ScriptTest{ + { + Name: "simple delete", + SetUpScript: []string{ + "CREATE TABLE t123 (id int primary key, c1 varchar(100));", + "INSERT INTO t123 VALUES (1, 'one'), (2, 'two');", + }, + Assertions: []ScriptTestAssertion{ + { + Query: "DELETE FROM t123 where id = 1;", + Expected: []sql.Row{}, + }, + { + Query: "SELECT * FROM t123;", + Expected: []sql.Row{{2, "two"}}, + }, + }, + }, + { + Name: "delete returning", + SetUpScript: []string{ + "CREATE TABLE t123 (id int primary key, c1 varchar(100));", + "INSERT INTO t123 VALUES (1, 'one'), (2, 'two'), (3, 'three');", + }, + Assertions: []ScriptTestAssertion{ + { + Query: "DELETE FROM t123 where id = 1 RETURNING id, c1;", + Expected: []sql.Row{{1, "one"}}, + }, + { + // Test a DELETE with no filter, to test that we don't convert + // to a TRUNCATE operation + Query: "DELETE FROM t123 RETURNING *;", + Expected: []sql.Row{{2, "two"}, {3, "three"}}, + }, + { + Query: "SELECT * FROM t123;", + Expected: []sql.Row{}, + }, + }, + }, + }) +}