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/api/DataRequestSession.java
* Get the metadata information from the specified DataSetHandle. It will
	 * execute a query, force the cached metadata stored in the report design to
	 * be updated with the latest data set metadata read from out source. When
	 * there is any error in this action, an empty cached metadata will be
	 * inserted and an exception will be thrown out.
	 * 
	 * Since This method will change the data of model and it does not process
	 * any model change event, it is the responsible of the caller to make sure
	 * these events will be properly handled.
	 * 
	 * @param dataSetHandle
	 * @return the result metadata of specified dataSetHandle
	 * @throws BirtException
	 */
	public abstract IResultMetaData refreshMetaData( DataSetHandle dataSetHandle )
			throws BirtException;
	
	/**
	 * This method basically shares the same function as
	 * <code> refreshMetaData( DataSetHandle dataSetHandle )</code>, the only
	 * difference is the caller of this method will have the control over
	 * whether to hold the event or not. It is added largely for the backward
	 * compatibility
	 * 
	 * @param dataSetHandle
	 * @param holdEvent
	 *            true if holdEvent, false otherwise
	 * @return
	 * @throws BirtException
	 */