cache.moveTo( startingIndex );
	private List getNodeArray( ) throws DataException	{		List array = new ArrayList();		ResultSetCache cache = this.secondaryIterator.getResultSetCache( );		int count = cache.getCount( );		int blockSize = count/1024;		int size = 1024;		if( blockSize == 0)		{			size = count;			blockSize = 1;		}		int startingIndex = 0;		for( int i = 0; i < size; i++ )		{			if( startingIndex >= count)				break;			else			{				Object[] min = matcher.getCompareValue( this.joinType == IJointDataSetDesign.RIGHT_OUTER_JOIN );				Object[] max = null;				int start = startingIndex;								startingIndex+= blockSize;				if( startingIndex < count )				{					max = matcher.getCompareValue( this.joinType == IJointDataSetDesign.RIGHT_OUTER_JOIN );					cache.moveTo( startingIndex );															while( JointDataSetUtil.compare( matcher.getCompareValue( this.joinType == IJointDataSetDesign.RIGHT_OUTER_JOIN ), max) == 0)					{						startingIndex++;						if(cache.fetch( ) == null)							break;					}					if( startingIndex < count)						cache.moveTo( startingIndex );					else						cache.moveTo( count-1 );				}else				{					cache.moveTo( count - 1 );					max = matcher.getCompareValue( this.joinType == IJointDataSetDesign.RIGHT_OUTER_JOIN );				}				array.add( new SegmentInfo(min, max, start, startingIndex - 1) );			}		}		this.secondaryIterator.first( 0 );		return array;	}