private void addRefColsQueried(CubeQueryContext cubeql, TrackQueriedColumns tqc, DenormalizationContext denormCtx) { for (Map.Entry<String, Set<String>> entry : tqc.getTblAliasToColumns().entrySet()) { // skip default alias if (Objects.equals(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)); } } } } private static DenormalizationContext getOrCreateDeNormCtx(TrackDenormContext tdc) {
private void addRefColsQueried(CubeQueryContext cubeql, TrackQueriedColumns tqc, DenormalizationContext denormCtx) { for (Map.Entry<String, Set<String>> entry : tqc.getTblAliasToColumns().entrySet()) { // skip default alias if (Objects.equals(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)); } } } } private static DenormalizationContext getOrCreateDeNormCtx(TrackDenormContext tdc) {
CubeColumn col; if (tbl instanceof CubeInterface) { col = ((CubeInterface) tbl).getColumnByName(column); } else { col = ((Dimension) tbl).getColumnByName(column);
CubeColumn col; if (tbl instanceof CubeInterface) { col = ((CubeInterface) tbl).getColumnByName(column); } else { col = ((Dimension) tbl).getColumnByName(column);
CubeColumn column = cubeql.getCube().getColumnByName(col); for (TimeRange range : cubeql.getTimeRanges()) { if (column == null) { CubeColumn column = cubeql.getCube().getColumnByName(col); for (TimeRange range : cubeql.getTimeRanges()) { if (!column.isColumnAvailableInTimeRange(range)) {
CubeColumn column = cubeql.getCube().getColumnByName(col); for (TimeRange range : cubeql.getTimeRanges()) { if (column == null) { CubeColumn column = cubeql.getCube().getColumnByName(col); for (TimeRange range : cubeql.getTimeRanges()) { if (!column.isColumnAvailableInTimeRange(range)) {