Bug 139346 Using isTopN in table inside list group header doesn't work.
Description: Using isTopN in table inside list group header doesn't work. Steps to reproduce: 1.Insert a list with a group 2.Insert a table to list group header 3.Using Total.isTopN(row[],2,null,0) as filter expression in table item. 4.Preview Result: Only the first group displayed top 2 records, other groups kept display all records.
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/impl/QueryExecutor.java
{
		assert odiQuery != null;
		assert this.baseQueryDefn != null;
		
		Context cx = Context.enter();
		try
		{
			
			List groups = this.baseQueryDefn.getGroups();
			if ( groups != null && ! groups.isEmpty() )
			{
				IQuery.GroupSpec[] groupSpecs = new IQuery.GroupSpec[ groups.size() ];
				Iterator it = groups.iterator();
				for ( int i = 0; it.hasNext(); i++ )
				{
					IGroupDefinition src = (IGroupDefinition) it.next();
					
					if( (src.getKeyColumn( ) == null || src.getKeyColumn( ).trim( ).length( ) == 0)&&
						(src.getKeyExpression( ) == null || src.getKeyExpression( ).trim( ).length( ) == 0)	)
						throw new DataException( ResourceConstants.BAD_GROUP_EXPRESSION );
					
					String expr = getGroupKeyExpression( src );
					String groupName = "";
					if( expr.trim().equalsIgnoreCase("row[0]")
						|| expr.trim().equalsIgnoreCase("row._rowPosition")
						|| expr.trim().equalsIgnoreCase("dataSetRow[0]")
						|| expr.trim().equalsIgnoreCase("dataSetRow._rowPosition"))
					{
						groupName = "_{$TEMP_GROUP_" + i + "ROWID$}_";
					}else