MCPcopy Create free account
hub / github.com/dolthub/doltgresql / nodeDelete

Function nodeDelete

server/ast/delete.go:25–69  ·  view source on GitHub ↗

nodeDelete handles *tree.Delete nodes.

(ctx *Context, node *tree.Delete)

Source from the content-addressed store, hash-verified

23
24// nodeDelete handles *tree.Delete nodes.
25func nodeDelete(ctx *Context, node *tree.Delete) (*vitess.Delete, error) {
26 if node == nil {
27 return nil, nil
28 }
29 ctx.Auth().PushAuthType(auth.AuthType_DELETE)
30 defer ctx.Auth().PopAuthType()
31
32 var returningExprs vitess.SelectExprs
33 if returning, ok := node.Returning.(*tree.ReturningExprs); ok {
34 var err error
35 returningExprs, err = nodeSelectExprs(ctx, tree.SelectExprs(*returning))
36 if err != nil {
37 return nil, err
38 }
39 }
40
41 with, err := nodeWith(ctx, node.With)
42 if err != nil {
43 return nil, err
44 }
45 table, err := nodeTableExpr(ctx, node.Table)
46 if err != nil {
47 return nil, err
48 }
49 where, err := nodeWhere(ctx, node.Where)
50 if err != nil {
51 return nil, err
52 }
53 orderBy, err := nodeOrderBy(ctx, node.OrderBy)
54 if err != nil {
55 return nil, err
56 }
57 limit, err := nodeLimit(ctx, node.Limit)
58 if err != nil {
59 return nil, err
60 }
61 return &vitess.Delete{
62 TableExprs: vitess.TableExprs{table},
63 With: with,
64 Where: where,
65 OrderBy: orderBy,
66 Limit: limit,
67 Returning: returningExprs,
68 }, nil
69}

Callers 1

ConvertFunction · 0.85

Calls 10

SelectExprsTypeAlias · 0.92
nodeSelectExprsFunction · 0.85
nodeWithFunction · 0.85
nodeTableExprFunction · 0.85
nodeWhereFunction · 0.85
nodeOrderByFunction · 0.85
nodeLimitFunction · 0.85
PushAuthTypeMethod · 0.80
AuthMethod · 0.80
PopAuthTypeMethod · 0.80

Tested by

no test coverage detected