Bug 148009 The result of joint data set is incorrect.
If the number of rows of secondary data set being joined exceeds 1024 the result of joint data set would be incorrect. This is because when populate binary for data set to be joined the boundary information are created incorrectly.
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/impl/jointdataset/BinaryTreeResultObjectSeeker.java
{
						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;
	}
	/*
	 * (non-Javadoc)
	 * @see org.eclipse.birt.data.engine.impl.jointdataset.IMatchResultObjectSeeker#getNextMatchedResultObject(int)
	 */
	public IResultObject getNextMatchedResultObject( int primaryIndex ) throws DataException
	{
		Object[] o = matcher.getCompareValue( !(this.joinType == IJointDataSetDesign.RIGHT_OUTER_JOIN) );
		SegmentInfo n = helper.search( o );
		if( n == null )
			return null;