Bug 134464 Set an alias on a column of the join dataset, an error is thrown out
Description: Set an alias on a column of the join dataset, an error is thrown out Steps to reproduce: 1. new a report 2. new two dataset and create a join dataset on the two datasets 3. set an alias on a column on the dataset 4. drag the joint dataset to the layout, add a filter row["a"]>10 on the table 5. save and preview. Actual result: org.eclipse.birt.data.engine.core.DataException: Invalid field name: a at org.eclipse.birt.data.engine.executor.ResultObject.getFieldValue(ResultObject.java:138) at org.eclipse.birt.data.engine.script.DataRow.getColumnValue(DataRow.java:90) at org.eclipse.birt.data.engine.script.JSRowObject.get(JSRowObject.java:244) at org.mozilla.javascript.ScriptableObject.getProperty(ScriptableObject.java:1263) at org.mozilla.javascript.ScriptRuntime.getObjectElem(ScriptRuntime.java:1301) at org.mozilla.javascript.ScriptRuntime.getObjectElem(ScriptRuntime.java:1283) at org.mozilla.javascript.gen.c68._c0(Filter:0) at org.mozilla.javascript.gen.c68.call(Filter) at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:304) at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2769) at org.mozilla.javascript.gen.c68.call(Filter) at org.mozilla.javascript.gen.c68.exec(Filter) at org.eclipse.birt.core.script.JavascriptEvalUtil.evaluateScript(JavascriptEvalUtil.java:86) at org.eclipse.birt.data.engine.script.ScriptEvalUtil.evaluateJSAsExpr(ScriptEvalUtil.java:538) at org.eclipse.birt.data.engine.script.ScriptEvalUtil.evalExpr(ScriptEvalUtil.java:495) at org.eclipse.birt.data.engine.script.ScriptEvalUtil.evalExpr(ScriptEvalUtil.java:480) at org.eclipse.birt.data.engine.impl.FilterByRow.process(FilterByRow.java:202) at org.eclipse.birt.data.engine.executor.cache.RowResultSet.processFetchEvent(RowResultSet.java:121) at org.eclipse.birt.data.engine.executor.cache.RowResultSet.next(RowResultSet.java:89) at org.eclipse.birt.data.engine.executor.cache.SmartCache.populateData(SmartCache.java:296) at org.eclipse.birt.data.engine.executor.cache.SmartCache.initInstance(SmartCache.java:223) at org.eclipse.birt.data.engine.executor.cache.SmartCache.<init>(SmartCache.java:97) at org.eclipse.birt.data.engine.executor.transform.SinglePassRowProcessor.initOdiResultSet(SinglePassRowProcessor.java:101) at org.eclipse.birt.data.engine.executor.transform.SinglePassRowProcessor.pass(SinglePassRowProcessor.java:60) at org.eclipse.birt.data.engine.executor.transform.ResultSetPopulator.populateResultSet(ResultSetPopulator.java:194) at org.eclipse.birt.data.engine.executor.transform.CachedResultSet.<init>(CachedResultSet.java:59) at org.eclipse.birt.data.engine.impl.PreparedJointDataSourceQuery$JointDataSetQueryExecutor.executeOdiQuery(PreparedJointDataSourceQuery.java:371) at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:555) at org.eclipse.birt.data.engine.impl.QueryService.executeQuery(QueryService.java:125) at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:143) at org.eclipse.birt.report.engine.data.dte.DteDataEngine.execute(DteDataEngine.java:210) at org.eclipse.birt.report.engine.executor.QueryItemExecutor.openResultSet(QueryItemExecutor.java:62) at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:123) at org.eclipse.birt.report.engine.executor.ReportExecutorVisitor.visitTableItem(ReportExecutorVisitor.java:188) at org.eclipse.birt.report.engine.ir.TableItemDesign.accept(TableItemDesign.java:69) at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:125) at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:89) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:175) at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:505) at org.eclipse.birt.report.presentation.aggregation.layout.EngineFragment.doService(EngineFragment.java:100) at org.eclipse.birt.report.presentation.aggregation.BaseFragment.service(BaseFragment.java:156) at org.eclipse.birt.report.servlet.ViewerServlet.doGet(ViewerServlet.java:211) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.eclipse.tomcat.internal.EclipseErrorReportValve.invoke(EclipseErrorReportValve.java:153) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Unknown Source)
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/impl/PreparedJointDataSourceQuery.java
QueryDefinition queryDefinition = new QueryDefinition( );
		queryDefinition.setDataSetName( dataSetDesignName );
		IPreparedQuery preparedQuery;
		try
		{
			preparedQuery = PreparedDataSourceQuery.newInstance( dataEngine,
					queryDefinition,
					appContext );
			for ( int i = 0; i < joinConditions.size( ); i++ )
			{
				addSortToPreparedQuery( (IJoinCondition) joinConditions.get( i ),
						isLeftDataSet,
						preparedQuery );
			}
			IResultIterator ri = preparedQuery.execute( null )
					.getResultIterator( );
			assert ri instanceof ResultIterator;
			return (ResultIterator) ri;
		}
		catch ( BirtException e )
		{
			throw new DataException( e.getMessage( ) );
		}
	}
	/**
	 * Add a sort expression to preparedQuery.
	 * @param joinConditions
	 * @param isLeftDataSet
	 * @param preparedQuery
	 */