MCPcopy Create free account
hub / github.com/go-pg/pg / AppendQuery

Method AppendQuery

orm/delete.go:54–114  ·  view source on GitHub ↗
(fmter QueryFormatter, b []byte)

Source from the content-addressed store, hash-verified

52}
53
54func (q *DeleteQuery) AppendQuery(fmter QueryFormatter, b []byte) (_ []byte, err error) {
55 b = appendComment(b, q.q.comment)
56 if q.q.stickyErr != nil {
57 return nil, q.q.stickyErr
58 }
59
60 if len(q.q.with) > 0 {
61 b, err = q.q.appendWith(fmter, b)
62 if err != nil {
63 return nil, err
64 }
65 }
66
67 b = append(b, "DELETE FROM "...)
68 b, err = q.q.appendFirstTableWithAlias(fmter, b)
69 if err != nil {
70 return nil, err
71 }
72
73 if q.q.hasMultiTables() {
74 b = append(b, " USING "...)
75 b, err = q.q.appendOtherTables(fmter, b)
76 if err != nil {
77 return nil, err
78 }
79 }
80
81 b = append(b, " WHERE "...)
82 value := q.q.tableModel.Value()
83
84 if q.q.isSliceModelWithData() {
85 if len(q.q.where) > 0 {
86 b, err = q.q.appendWhere(fmter, b)
87 if err != nil {
88 return nil, err
89 }
90 } else {
91 table := q.q.tableModel.Table()
92 err = table.checkPKs()
93 if err != nil {
94 return nil, err
95 }
96
97 b = appendColumnAndSliceValue(fmter, b, value, table.Alias, table.PKs)
98 }
99 } else {
100 b, err = q.q.mustAppendWhere(fmter, b)
101 if err != nil {
102 return nil, err
103 }
104 }
105
106 if len(q.q.returning) > 0 {
107 b, err = q.q.appendReturning(fmter, b)
108 if err != nil {
109 return nil, err
110 }
111 }

Callers 1

StringMethod · 0.95

Calls 13

appendCommentFunction · 0.85
appendWithMethod · 0.80
hasMultiTablesMethod · 0.80
appendOtherTablesMethod · 0.80
isSliceModelWithDataMethod · 0.80
appendWhereMethod · 0.80
checkPKsMethod · 0.80
appendReturningMethod · 0.80
ValueMethod · 0.65
TableMethod · 0.65

Tested by

no test coverage detected