UserProfile userProfile = (UserProfile)getEnv().get(EngineConstants.ENV_USER_PROFILE);
//auditlogger.info("[" + userProfile.getUserId() + "]:: HQL: " + hqlQuery);
//auditlogger.info("[" + userProfile.getUserId() + "]:: SQL: " + sqlQuery);
// STEP 3: transform the sql query
FilterQueryTransformer transformer = new FilterQueryTransformer();
List selectFields = SqlUtils.getSelectFields(sqlQuery);
List queryFields = query.getDataMartSelectFields(true);
for(int i = 0; i < queryFields.size(); i++) {
ISelectField queryField = (ISelectField)queryFields.get(i);
String[] f = (String[])selectFields.get(i);
transformer.addColumn(f[1]!=null? f[1]:f[0], f[1]!=null? f[1]:f[0]);
}
for(int i = 0; i < filters.length(); i++) {
JSONObject filter = filters.getJSONObject(i);
String columnName = filter.getString("columnName");
String value = filter.getString("value");
int fieldIndex = query.getSelectFieldIndex(columnName);
String[] f = (String[])selectFields.get(fieldIndex);
transformer.addFilter(f[1]!=null? f[1]:f[0], value);
}
sqlQuery = (String)transformer.transformQuery(sqlQuery);
// put the query into session
this.setAttributeInSession(LAST_DETAIL_QUERY, sqlQuery);
// STEP 4: execute the query