code: private int keyColumnEnd()
    {
      int offset = 0;
      
      for (int i = 0; i < _columns.length; i++) {
        if (offset == _keyStart + _keyLength) {
          return i;
        }
        
        offset += _columns[i].length();
      }
      
      if (offset == _keyStart + _keyLength) {
        return _columns.length;
      }
      
      throw new IllegalStateException();
    }
docs: End key column index, the index after the final key.