private void addRefColsQueried( CubeQueryContext cubeql, TrackQueriedColumns tqc, DenormalizationContext denormCtx) { for (Map.Entry<String, Set<String>> entry : tqc.getTblAliasToColumns().entrySet()) { // skip default alias if (entry.getKey() == CubeQueryContext.DEFAULT_TABLE) { continue; } // skip join chain aliases if (cubeql.getJoinchains().keySet().contains(entry.getKey().toLowerCase())) { continue; } AbstractCubeTable tbl = cubeql.getCubeTableForAlias(entry.getKey()); Set<String> columns = entry.getValue(); for (String column : columns) { CubeColumn col; if (tbl instanceof CubeInterface) { col = ((CubeInterface) tbl).getColumnByName(column); } else { col = ((Dimension) tbl).getColumnByName(column); } if (col instanceof ReferencedDimAttribute) { // considering all referenced dimensions to be denormalized columns denormCtx.addReferencedCol( column, new ReferencedQueriedColumn((ReferencedDimAttribute) col, tbl)); } } } }