code: func Rebind(bindType int, query string) string {
  	switch bindType {
  	case QUESTION, UNKNOWN:
  		return query
  	}
  
  	// Add space enough for 10 params before we have to allocate
  	rqb := make([]byte, 0, len(query)+10)
  
  	var i, j int
  
  	for i = strings.Index(query, "?"); i != -1; i = strings.Index(query, "?") {
  		rqb = append(rqb, query[:i]...)
  
  		switch bindType {
  		case DOLLAR:
  			rqb = append(rqb, '$')
  		case NAMED:
  			rqb = append(rqb, ':', 'a', 'r', 'g')
  		case AT:
  			rqb = append(rqb, '@', 'p')
  		}
  
  		j++
  		rqb = strconv.AppendInt(rqb, int64(j), 10)
  
  		query = query[i+1:]
  	}
  
  	return string(append(rqb, query...))
  }
docs: // FIXME: this should be able to be tolerant of escaped ?'s in queries without
  // losing much speed, and should be to avoid confusion.
  // Rebind a query from the default bindtype (QUESTION) to the target bindtype.