Bug 195970 Two issues when evaluate a query inlcuding a subquery[07]
Description: Currently, when evaluating a query which includes a subquery, the query will be evaluated twice. The binding of query will pass to subquery twice. If user write a java script such as new Date() and i++. The result of query will be incorrect. Another issue: when write the report document, the binding of query will be written twice and the performance is not good to evalulate it twice.
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/impl/PreparedSubquery.java
{
			assert parentIterator != null;
	
			IResultIterator ret = null;
			ICandidateQuery cdQuery = (ICandidateQuery) odiQuery;
			if ( PreparedSubquery.this.subQueryOnGroup == true )
				cdQuery.setCandidates( parentIterator, groupLevel );
			else
				cdQuery.setCandidates( new CustomDataSet( parentIterator,
						getMergedResultClass( ) ) );
			
			ret = cdQuery.execute( eventHandler );
			parentIterator = null;
			return ret;
		}
		
		/**
		 * @return
		 * @throws DataException
		 */
		private IResultClass getMergedResultClass( ) throws DataException
		{
			IResultClass parentResultClass = parentIterator.getResultClass( );
			ICandidateQuery candidateQuery = (ICandidateQuery) odiQuery;
			assert candidateQuery != null;
			List computedColumns = dataSet.getComputedColumns( );
			List columnsList = new ArrayList( );
			for ( int i = 0; i < parentResultClass.getFieldCount( ); i++ )
			{
				ResultFieldMetadata columnMetaData = new ResultFieldMetadata( i + 1,