Bug 213907 Provide a copy constructor for SubqueryDefinition.
Engine need a copy constructor to generate a SubqueryDefinition from an ISubqueryDefinition and change the name of the query.
data/org.eclipse.birt.report.data.adapter/src/org/eclipse/birt/report/data/adapter/impl/DataRequestSessionImpl.java
* 
	 * @param cubeHandle
	 * @param cubeMaterializer
	 * @param stopSign
	 * @throws IOException
	 * @throws BirtException
	 * @throws DataException
	 */
	private void createCube( TabularCubeHandle cubeHandle,
			CubeMaterializer cubeMaterializer, Map appContext, StopSign stopSign )
			throws IOException, BirtException, DataException
	{
		Set involvedDataSet = this.needCachedDataSetToEnhancePerformance( cubeHandle );
		boolean doPerfTuning = involvedDataSet.size( ) > 1 &&
				( appContext == null || ( appContext != null &&
						appContext.get( DataEngine.DATA_SET_CACHE_ROW_LIMIT ) == null && appContext.get( DataEngine.MEMORY_DATA_SET_CACHE ) == null ) );
		Map candidateAppContext = new HashMap();
		if ( appContext!= null )
			candidateAppContext.putAll( appContext );
		if ( doPerfTuning )
		{
			candidateAppContext.put( DataEngine.DATA_SET_CACHE_ROW_LIMIT, new Integer(-1) );
			this.dataSetCache.addAll( involvedDataSet );
		}
					
		List measureNames = new ArrayList( );
		List measureGroups = cubeHandle.getContents( CubeHandle.MEASURE_GROUPS_PROP );
		for ( int i = 0; i < measureGroups.size( ); i++ )
		{
			MeasureGroupHandle mgh = (MeasureGroupHandle) measureGroups.get( i );