// Page specifies the paging constraints for the query being built by `q`. func (q *EffectsQ) Page(page db2.PageQuery) *EffectsQ { if q.Err != nil { return q } op, idx, err := page.CursorInt64Pair(db2.DefaultPairSep) if err != nil { q.Err = err return q } if idx > math.MaxInt32 { idx = math.MaxInt32 } switch page.Order { case "asc": q.sql = q.sql. Where(`( heff.history_operation_id > ? OR ( heff.history_operation_id = ? AND heff.order > ? ))`, op, op, idx). OrderBy("heff.history_operation_id asc, heff.order asc") case "desc": q.sql = q.sql. Where(`( heff.history_operation_id < ? OR ( heff.history_operation_id = ? AND heff.order < ? ))`, op, op, idx). OrderBy("heff.history_operation_id desc, heff.order desc") } q.sql = q.sql.Limit(page.Limit) return q }