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

Method appendColumns

orm/select.go:215–253  ·  view source on GitHub ↗
(fmter QueryFormatter, b []byte)

Source from the content-addressed store, hash-verified

213}
214
215func (q SelectQuery) appendColumns(fmter QueryFormatter, b []byte) (_ []byte, err error) {
216 start := len(b)
217
218 switch {
219 case q.q.columns != nil:
220 b, err = q.q.appendColumns(fmter, b)
221 if err != nil {
222 return nil, err
223 }
224 case q.q.hasExplicitTableModel():
225 table := q.q.tableModel.Table()
226 if len(table.Fields) > 10 && isTemplateFormatter(fmter) {
227 b = append(b, table.Alias...)
228 b = append(b, '.')
229 b = types.AppendString(b, fmt.Sprintf("%d columns", len(table.Fields)), 2)
230 } else {
231 b = appendColumns(b, table.Alias, table.Fields)
232 }
233 default:
234 b = append(b, '*')
235 }
236
237 err = q.q.forEachHasOneJoin(func(j *join) error {
238 if len(b) != start {
239 b = append(b, ", "...)
240 start = len(b)
241 }
242
243 b = j.appendHasOneColumns(b)
244 return nil
245 })
246 if err != nil {
247 return nil, err
248 }
249
250 b = bytes.TrimSuffix(b, []byte(", "))
251
252 return b, nil
253}
254
255func (q *SelectQuery) isDistinct() bool {
256 if q.q.distinctOn != nil {

Callers 1

AppendQueryMethod · 0.95

Calls 7

AppendStringFunction · 0.92
isTemplateFormatterFunction · 0.85
appendColumnsFunction · 0.85
hasExplicitTableModelMethod · 0.80
forEachHasOneJoinMethod · 0.80
appendHasOneColumnsMethod · 0.80
TableMethod · 0.65

Tested by

no test coverage detected