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/ResultIterator.java
params );
		assert rService != null
				&& rService.getQueryResults( ) != null && odiResult != null
				&& scope != null;
		this.resultService = rService;
		this.odiResult = odiResult;
		this.scope = scope;
		this.context = rService.getContext( );
		
		if ( this.resultService.getContext( ).getMode( ) == DataEngineContext.MODE_GENERATION
				|| this.resultService.getContext( ).getMode( ) == DataEngineContext.DIRECT_PRESENTATION )
			this.validateManualBindingExpressions( this.resultService.getQueryDefn( )
					.getBindings( ) );
		if( needCache() )
		{
			try 
			{
				createCacheOutputStream( );
				saveMetaData( );
				IOUtil.writeInt(this.rowOutputStream, this.odiResult.getRowCount());
			} 
			catch (IOException e) 
			{
				throw new DataException( ResourceConstants.CREATE_CACHE_TEMPFILE_ERROR );
			}
		}
		this.start( );
		logger.exiting( ResultIterator.class.getName( ), "ResultIterator" );
	}
	/**