public SQLDigest getSQLDigest() { if (sqlDigest == null) { Set<TblColRef> rtDimColumns = new HashSet<>(); for (TupleExpression tupleExpr : dynGroupBy.values()) { rtDimColumns.addAll(ExpressionColCollector.collectColumns(tupleExpr)); } Set<TblColRef> rtMetricColumns = new HashSet<>(); List<DynamicFunctionDesc> dynFuncs = Lists.newLinkedList(); for (FunctionDesc functionDesc : aggregations) { if (functionDesc instanceof DynamicFunctionDesc) { DynamicFunctionDesc dynFunc = (DynamicFunctionDesc) functionDesc; rtMetricColumns.addAll(dynFunc.getMeasureColumnSet()); rtDimColumns.addAll(dynFunc.getFilterColumnSet()); dynFuncs.add(dynFunc); } } sqlDigest = new SQLDigest(firstTableScan.getTableName(), allColumns, joins, // model groupByColumns, subqueryJoinParticipants, dynGroupBy, groupByExpression, // group by metricsColumns, aggregations, aggrSqlCalls, dynFuncs, // aggregation rtDimColumns, rtMetricColumns, // runtime related columns filterColumns, filter, havingFilter, // filter sortColumns, sortOrders, limitPrecedesAggr, // sort & limit involvedMeasure); } return sqlDigest; }
Set<TblColRef> srcCols = ExpressionColCollector.collectColumns(tupleExpression);
Set<TblColRef> srcCols = ExpressionColCollector.collectColumns(tupleExpression);
TblColRef column = translateRexNode(tupleExpr, fieldName); if (!this.rewriting && !this.afterAggregate && !isMerelyPermutation) { Set<TblColRef> srcCols = ExpressionColCollector.collectColumns(tupleExpr);
public SQLDigest getSQLDigest() { if (sqlDigest == null) { Set<TblColRef> rtDimColumns = new HashSet<>(); for (TupleExpression tupleExpr : dynGroupBy.values()) { rtDimColumns.addAll(ExpressionColCollector.collectColumns(tupleExpr)); } Set<TblColRef> rtMetricColumns = new HashSet<>(); List<DynamicFunctionDesc> dynFuncs = Lists.newLinkedList(); for (FunctionDesc functionDesc : aggregations) { if (functionDesc instanceof DynamicFunctionDesc) { DynamicFunctionDesc dynFunc = (DynamicFunctionDesc) functionDesc; rtMetricColumns.addAll(dynFunc.getMeasureColumnSet()); rtDimColumns.addAll(dynFunc.getFilterColumnSet()); dynFuncs.add(dynFunc); } } sqlDigest = new SQLDigest(firstTableScan.getTableName(), allColumns, joins, // model groupByColumns, subqueryJoinParticipants, dynGroupBy, groupByExpression, // group by metricsColumns, aggregations, aggrSqlCalls, dynFuncs, // aggregation rtDimColumns, rtMetricColumns, // runtime related columns filterColumns, filter, havingFilter, // filter sortColumns, sortOrders, limitPrecedesAggr, // sort & limit involvedMeasure); } return sqlDigest; }
TblColRef column = translateRexNode(tupleExpr, fieldName); if (!this.rewriting && !this.afterAggregate && !isMerelyPermutation) { Set<TblColRef> srcCols = ExpressionColCollector.collectColumns(tupleExpr);