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.data/src/org/eclipse/birt/data/engine/impl/PreparedQuery.java
PreparedQuery( DataEngineSession session, DataEngineContext deContext,
			IBaseQueryDefinition queryDefn, IPreparedQueryService queryService,
			Map appContext ) throws DataException
	{
		logger.logp( Level.FINE,
				PreparedQuery.class.getName( ),
				"PreparedQuery",
				"PreparedQuery starts up." );
		assert queryDefn != null;
		this.expressionCompiler = new ExpressionCompiler( );
		this.expressionCompiler.setDataSetMode( false );
		this.dataEngineContext = deContext;
		this.session = session;
		this.baseQueryDefn = QueryDefinitionCopyUtil.copy( queryDefn );
		this.queryService = queryService;
		this.appContext = appContext;
		
		this.exprManager = new ExprManager( baseQueryDefn );
		this.subQueryMap = new HashMap( );
		this.subQueryDefnMap = new HashMap( );
		this.aggrTable = new AggregateTable( this.session.getTempDir( ), this.session.getSharedScope( ),
				baseQueryDefn.getGroups( ) );
		logger.fine( "Start to prepare a PreparedQuery." );
		prepare( );
		logger.fine( "Finished preparing the PreparedQuery." );
	}
	
	/**
	 * @throws DataException
	 */