Bug 186928 [Regression] Exception is thrown out when preview result for a joint data set [0706]
Description: Exception is thrown out when preview result for a joint data set. Build number: 2.2.0.v20070515-0630 Steps to reproduce: 1. Create a data source dSource_Oracle: oracle.jdbc.OracleDriver, jdbc:oracle:thin:@spmdb:1521:test. 2. Create a new data set dSet_Oracle, select all columns from 'client'. 3. New a data source "d1": select "Flat file data source", use the attached csv file. 4. New a inner join data set: select "FlatFileDataSet" as the left and "dSource_Oracle" as the right. row["FlatFileDataSet::Id"] inner join row["dSource_Oracle::Id"]. 5. Click Preview Results. Expected result: No exception is thrown out. Actual result: Exception is thrown out. Error log: org.eclipse.birt.data.engine.core.DataException: Column binding "dSetOracle::row["ID"]" has referred to a data set column "dSetOracle::row["ID"]" which is not exist. at org.eclipse.birt.data.engine.impl.ResultIterator.validateManualBindingExpressions(ResultIterator.java:290) at org.eclipse.birt.data.engine.impl.ResultIterator.<init>(ResultIterator.java:144) at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:164) at org.eclipse.birt.report.designer.data.ui.dataset.ResultSetPreviewPage.populateRecords(ResultSetPreviewPage.java:468) at org.eclipse.birt.report.designer.data.ui.dataset.ResultSetPreviewPage.access$2(ResultSetPreviewPage.java:461) at org.eclipse.birt.report.designer.data.ui.dataset.ResultSetPreviewPage$5.run(ResultSetPreviewPage.java:417) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:113)
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/impl/PreparedJointDataSourceQuery.java
import org.eclipse.birt.data.engine.api.IResultMetaData;
import org.eclipse.birt.data.engine.api.IScriptExpression;
import org.eclipse.birt.data.engine.api.querydefn.InputParameterBinding;
import org.eclipse.birt.data.engine.api.querydefn.QueryDefinition;
import org.eclipse.birt.data.engine.api.querydefn.SortDefinition;
import org.eclipse.birt.data.engine.core.DataException;
import org.eclipse.birt.data.engine.executor.BaseQuery;
import org.eclipse.birt.data.engine.executor.JointDataSetQuery;
import org.eclipse.birt.data.engine.executor.ResultClass;
import org.eclipse.birt.data.engine.executor.ResultFieldMetadata;
import org.eclipse.birt.data.engine.executor.dscache.DataSetResultCache;
import org.eclipse.birt.data.engine.executor.dscache.DataSourceQuery;
import org.eclipse.birt.data.engine.executor.transform.CachedResultSet;
import org.eclipse.birt.data.engine.i18n.ResourceConstants;
import org.eclipse.birt.data.engine.impl.jointdataset.IJoinConditionMatcher;
import org.eclipse.birt.data.engine.impl.jointdataset.JoinConditionMatcher;
import org.eclipse.birt.data.engine.impl.jointdataset.JointDataSetPopulatorFactory;
import org.eclipse.birt.data.engine.impl.jointdataset.JointResultMetadata;
import org.eclipse.birt.data.engine.odi.IDataSetPopulator;
import org.eclipse.birt.data.engine.odi.IDataSource;
import org.eclipse.birt.data.engine.odi.IEventHandler;
import org.eclipse.birt.data.engine.odi.IPreparedDSQuery;
import org.eclipse.birt.data.engine.odi.IQuery;
import org.eclipse.birt.data.engine.odi.IResultClass;
import org.eclipse.birt.data.engine.odi.IResultObjectEvent;
/**
 * This is an extension of PreparedDataSourceQuery. It is used to provide joint
 * data set service.
 */
public class PreparedJointDataSourceQuery extends PreparedDataSourceQuery