(fmter QueryFormatter, b []byte)
| 213 | } |
| 214 | |
| 215 | func (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 | |
| 255 | func (q *SelectQuery) isDistinct() bool { |
| 256 | if q.q.distinctOn != nil { |
no test coverage detected