code: public void add(final int currentArticleID, final long startTime,
  			final long endTime, final List<ArticleIndexData> infoList)
  	{
  
  		// index_articleID_rc_ts
  		if (!infoList.isEmpty()) {
  
  			StringBuilder fullRevBuffer = new StringBuilder();
  			StringBuilder revCountBuffer = new StringBuilder();
  
  			boolean first = true;
  			ArticleIndexData info;
  			while (!infoList.isEmpty()) {
  
  				info = infoList.remove(0);
  
  				if (!first) {
  					fullRevBuffer.append(" ");
  					revCountBuffer.append(" ");
  				}
  
  				fullRevBuffer.append(info.getFullRevisionPrimaryKey());
  
  				revCountBuffer.append(info.getStartRevisionCount());
  				revCountBuffer.append(" ");
  				revCountBuffer.append(info.getEndRevisionCount());
  
  				first = false;
  			}
  
  			boolean sql = !insertStatement.isEmpty();
  			if (buffer.length() + fullRevBuffer.length()
  					+ revCountBuffer.length() + 20 >= MAX_ALLOWED_PACKET) {
  				storeBuffer();
  			}
  
  
  			if(sql) {
  				if (buffer.length() > insertStatement.length()) {
  					buffer.append(",");
  				}
  				buffer.append("(");
  			}
  			buffer.append(currentArticleID);
  			buffer.append(",");
  			buffer.append(sql?"\'":"\"");
  			buffer.append(fullRevBuffer);
  			buffer.append(sql?"\'":"\"");
  			buffer.append(",");
  			buffer.append(sql?"\'":"\"");
  			buffer.append(revCountBuffer);
  			buffer.append(sql?"\'":"\"");
  			buffer.append(",");
  			buffer.append(startTime);
  			buffer.append(",");
  			buffer.append(endTime);
  			if(sql) {
  				buffer.append(")");
  			}else{
  				buffer.append("\n");
  			}
  		}
  	}
docs: Adds the information for an new entry in the article index.
  
  @param currentArticleID
  ID of the currently used article
  @param startTime
  First date of appearance
  @param endTime
  Last date of appearance
  @param infoList
  List of revision blocks