code: func (ss *SQLSubStore) AckSeqPending(subid, seqno uint64) error {
  	var err error
  	ss.Lock()
  	if !ss.closed {
  		if ss.cache != nil {
  			var isFull bool
  			isFull, err = ss.ackSeq(subid, seqno)
  			if err == nil && isFull {
  				err = ss.flush()
  			}
  		} else {
  			updateLastSent := false
  			ls := ss.subLastSent[subid]
  			if seqno >= ls {
  				if seqno > ls {
  					ss.subLastSent[subid] = seqno
  				}
  				updateLastSent = true
  			}
  			if updateLastSent {
  				if _, err := ss.sqlStore.preparedStmts[sqlSubUpdateLastSent].Exec(seqno, ss.channelID, subid); err != nil {
  					ss.Unlock()
  					return sqlStmtError(sqlSubUpdateLastSent, err)
  				}
  			}
  			_, err = ss.sqlStore.preparedStmts[sqlSubDeletePending].Exec(subid, seqno)
  			if err != nil {
  				err = sqlStmtError(sqlSubDeletePending, err)
  			}
  		}
  	}
  	ss.Unlock()
  	return err
  }
docs: // AckSeqPending implements the SubStore interface