Bug 143510 mysql column alias problem
I was using the following select statement as my data source: select id_case, cases.id_state, states.state, cast(summary AS CHAR) as summary, cast(descr AS CHAR) as descr, start_date, cast(client_text AS CHAR) as client_text, group_elements.name, groups.name from states, cases LEFT OUTER JOIN group_elements ON id_analist = group_elements.id_ge LEFT OUTER JOIN groups ON cases.id_group = groups.id_group where states.id_state = cases.id_state when I came across this issue. In the preview (I'm not sure if the same happens after report generation), group_elements.name and groups.name values don't show up correctly. In fact, groups.name appears as "name_9" (which of course isn't a problem) but its values are the same as group_elements.name values. Using an alias for one of the columns solves this issue. (Obviously this might be an issue with the mysql driver, but I don't think that's the case)
data/org.eclipse.birt.report.data.adapter/src/org/eclipse/birt/report/data/adapter/impl/DataSetMetaDataHelper.java
IResultMetaData rsMeta ) throws BirtException
	{
		if ( dataSetHandle.getCachedMetaDataHandle( ) == null
				|| rsMeta == null || rsMeta.getColumnCount( ) == 0 )
			return true;
		List list = new ArrayList( );
		for ( Iterator iter = dataSetHandle.getCachedMetaDataHandle( )
				.getResultSet( )
				.iterator( ); iter.hasNext( ); )
		{
			list.add( iter.next( ) );
		}
		if ( list.size( ) != rsMeta.getColumnCount( ) )
			return true;
		for ( int i = 1; i <= rsMeta.getColumnCount( ); i++ )
		{
			ResultSetColumnHandle handle = (ResultSetColumnHandle) list.get( i - 1 );
			if ( !handle.getColumnName( ).equals( getColumnName( rsMeta, i ) )
					|| !handle.getDataType( )
							.equals( toModelDataType( rsMeta.getColumnType( i ) ) ) )
				return true;
		}
		return false;
	}
	
	/**
	 * whether need to use result hint
	 * 
	 * @param dataSetHandle
	 * @return