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/PreparedQuery.java
logger.finer( "Start to prepare the execution." );
		executor.prepareExecution( outerResults, scope );
		logger.finer( "Finish preparing the execution." );
		QueryResults result = new QueryResults( new ServiceForQueryResults( this.dataEngineContext,
				executor.getQueryScope( ),
				executor.getNestedLevel( ) + 1,
				dataSourceQuery,
				queryService,
				executor,
				this.baseQueryDefn,
				this.exprManager ) );
		if( this.baseQueryDefn.cacheQueryResults() )
		{
			result.setID( QueryResultIDUtil.nextID( ) );
		}
		return result;
	}
	
	/**
	 * @param subQueryName
	 * @return
	 */
	ISubqueryDefinition getSubQueryDefn( String subQueryName )
	{
		return (ISubqueryDefinition) ( (Object[]) subQueryDefnMap.get( subQueryName ) )[0];
	}
	
	/**
	 * @param subQueryName
	 * @return