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

Method AppendQuery

orm/insert.go:58–132  ·  view source on GitHub ↗
(fmter QueryFormatter, b []byte)

Source from the content-addressed store, hash-verified

56var _ QueryAppender = (*InsertQuery)(nil)
57
58func (q *InsertQuery) AppendQuery(fmter QueryFormatter, b []byte) (_ []byte, err error) {
59 b = appendComment(b, q.q.comment)
60 if q.q.stickyErr != nil {
61 return nil, q.q.stickyErr
62 }
63
64 if len(q.q.with) > 0 {
65 b, err = q.q.appendWith(fmter, b)
66 if err != nil {
67 return nil, err
68 }
69 }
70
71 b = append(b, "INSERT INTO "...)
72 if q.q.onConflict != nil {
73 b, err = q.q.appendFirstTableWithAlias(fmter, b)
74 } else {
75 b, err = q.q.appendFirstTable(fmter, b)
76 }
77 if err != nil {
78 return nil, err
79 }
80
81 b, err = q.appendColumnsValues(fmter, b)
82 if err != nil {
83 return nil, err
84 }
85
86 if q.q.onConflict != nil {
87 b = append(b, " ON CONFLICT "...)
88 b, err = q.q.onConflict.AppendQuery(fmter, b)
89 if err != nil {
90 return nil, err
91 }
92
93 if q.q.onConflictDoUpdate() {
94 if len(q.q.set) > 0 {
95 b, err = q.q.appendSet(fmter, b)
96 if err != nil {
97 return nil, err
98 }
99 } else {
100 fields, err := q.q.getDataFields()
101 if err != nil {
102 return nil, err
103 }
104
105 if len(fields) == 0 {
106 fields = q.q.tableModel.Table().DataFields
107 }
108
109 b = q.appendSetExcluded(b, fields)
110 }
111
112 if len(q.q.updWhere) > 0 {
113 b = append(b, " WHERE "...)
114 b, err = q.q.appendUpdWhere(fmter, b)
115 if err != nil {

Callers 1

StringMethod · 0.95

Calls 14

appendColumnsValuesMethod · 0.95
appendSetExcludedMethod · 0.95
appendCommentFunction · 0.85
appendReturningFieldsFunction · 0.85
appendWithMethod · 0.80
appendFirstTableMethod · 0.80
onConflictDoUpdateMethod · 0.80
appendSetMethod · 0.80
getDataFieldsMethod · 0.80
appendUpdWhereMethod · 0.80
appendReturningMethod · 0.80

Tested by

no test coverage detected