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

Method AppendQuery

orm/query.go:1644–1692  ·  view source on GitHub ↗
(fmter QueryFormatter, b []byte)

Source from the content-addressed store, hash-verified

1642var _ QueryAppender = (*joinPKSliceQuery)(nil)
1643
1644func (q joinPKSliceQuery) AppendQuery(fmter QueryFormatter, b []byte) ([]byte, error) {
1645 table := q.q.tableModel.Table()
1646 slice := q.q.tableModel.Value()
1647
1648 b = append(b, " JOIN (VALUES "...)
1649
1650 sliceLen := slice.Len()
1651 for i := 0; i < sliceLen; i++ {
1652 if i > 0 {
1653 b = append(b, ", "...)
1654 }
1655
1656 el := indirect(slice.Index(i))
1657
1658 b = append(b, '(')
1659 for i, f := range table.PKs {
1660 if i > 0 {
1661 b = append(b, ", "...)
1662 }
1663
1664 b = f.AppendValue(b, el, 1)
1665
1666 if f.UserSQLType != "" {
1667 b = append(b, "::"...)
1668 b = append(b, f.SQLType...)
1669 }
1670 }
1671
1672 b = append(b, ", "...)
1673 b = strconv.AppendInt(b, int64(i), 10)
1674
1675 b = append(b, ')')
1676 }
1677
1678 b = append(b, `) AS "_data" (`...)
1679
1680 for i, f := range table.PKs {
1681 if i > 0 {
1682 b = append(b, ", "...)
1683 }
1684 b = append(b, f.Column...)
1685 }
1686
1687 b = append(b, ", "...)
1688 b = append(b, `"ordering"`...)
1689 b = append(b, ") ON TRUE"...)
1690
1691 return b, nil
1692}

Callers

nothing calls this directly

Calls 6

indirectFunction · 0.85
TableMethod · 0.65
ValueMethod · 0.65
LenMethod · 0.65
IndexMethod · 0.65
AppendValueMethod · 0.65

Tested by

no test coverage detected