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
|| group.getName( ).trim( ).length( ) == 0 )
					continue;
				for ( int j = 0; j < groups.size( ); j++ )
				{
					if ( group.getName( )
							.equals( ( (IGroupDefinition) groups.get( j ) ).getName( ) == null
									? ""
									: ( (IGroupDefinition) groups.get( j ) ).getName( ) )
							&& j != i )
						throw new DataException( ResourceConstants.DUPLICATE_GROUP_NAME );
				}
				groupNameSet.add( group.getName( ) );
			}
			
			Map map = baseQueryDefn.getBindings( );
			if ( map != null )
			{
				Iterator it = map.keySet( ).iterator( );
				while ( it.hasNext( ) )
				{
					Object key = it.next( );
					IBinding binding = (IBinding)map.get( key );
					String groupName = null;
					if ( binding.getExpression( )!= null )
						groupName = binding.getExpression( ).getGroupName( );
					
					if( groupName == null )
					{
						if ( binding.getAggregatOns( ).size( ) == 0 )
							continue;