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; }
private int search(List<TblColRef> groups, List<FunctionDesc> aggregations, TupleFilter filter, StorageContext context) { int count = 0; ITupleIterator iterator = null; try { SQLDigest sqlDigest = new SQLDigest("default.test_kylin_fact", filter, null, Collections.<TblColRef> emptySet(), groups, Collections.<TblColRef> emptySet(), Collections.<TblColRef> emptySet(), aggregations); iterator = storageEngine.search(context, sqlDigest); while (iterator.hasNext()) { ITuple tuple = iterator.next(); System.out.println("Tuple = " + tuple); count++; } } catch (Exception e) { e.printStackTrace(); } finally { if (iterator != null) { iterator.close(); } } return count; }
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; }