@Override public Table propertyFunction(Table table, Node procId, PropFuncArg subjArgs, PropFuncArg objArgs) { Procedure proc = ProcEval.build(procId, subjArgs, objArgs, execCxt) ; QueryIterator qIter = ProcEval.eval(table.iterator(execCxt), proc, execCxt) ; return TableFactory.create(qIter) ; }
@Override public QueryIterator join(JoinKey joinKey, Table left, Table right, ExprList conditions) { return TableJoin.leftJoin(left.iterator(null), right, conditions, null) ; } }
protected QueryIterator execute(OpTable opTable, QueryIterator input) { if (opTable.isJoinIdentity()) return input ; if (input.isJoinIdentity() ) { input.close() ; return opTable.getTable().iterator(execCxt); } QueryIterator qIterT = opTable.getTable().iterator(execCxt) ; QueryIterator qIter = Join.join(input, qIterT, execCxt) ; return qIter ; }
@Override public Table procedure(Table table, Node procId, ExprList args) { Procedure proc = ProcEval.build(procId, args, execCxt) ; QueryIterator qIter = ProcEval.eval(table.iterator(execCxt), proc, execCxt) ; return TableFactory.create(qIter) ; }
@Override public Table groupBy(Table table, VarExprList groupVars, List<ExprAggregator> aggregators) { QueryIterator qIter = table.iterator(getExecContext()) ; qIter = new QueryIterGroup(qIter, groupVars, aggregators, getExecContext()) ; return new TableN(qIter) ; }
@Override public Table reduced(Table table) { QueryIterator qIter = table.iterator(getExecContext()) ; qIter = new QueryIterReduced(qIter, getExecContext()) ; return new TableN(qIter) ; }
@Override public Table project(Table table, List<Var> projectVars) { QueryIterator qIter = table.iterator(getExecContext()) ; qIter = new QueryIterProject(qIter, projectVars, getExecContext()) ; return new TableN(qIter) ; }
@Override public Table extend(Table table, VarExprList exprs) { QueryIterator qIter = table.iterator(getExecContext()) ; qIter = new QueryIterAssign(qIter, exprs, getExecContext(), true) ; return new TableN(qIter) ; }
@Override public Table distinct(Table table) { QueryIterator qIter = table.iterator(getExecContext()) ; qIter = new QueryIterDistinct(qIter, getExecContext()) ; return new TableN(qIter) ; }
@Override public Table slice(Table table, long start, long length) { QueryIterator qIter = table.iterator(getExecContext()) ; qIter = new QueryIterSlice(qIter, start, length, getExecContext()) ; return new TableN(qIter) ; }
public static void outputPlain(IndentedWriter out, Table table, SerializationContext sCxt) { QueryIterator qIter = table.iterator(null) ; for ( ; qIter.hasNext(); ) { Binding b = qIter.nextBinding() ; output(out, b, sCxt) ; out.println() ; } qIter.close() ; }
public static void output(Table table, IndentedWriter out, SerializationContext sCxt) { if ( sCxt != null ) {} // Prefix. But then qnames are wrong. out.print("(table") ; out.incIndent() ; QueryIterator qIter = table.iterator(null) ; for (; qIter.hasNext();) { out.println() ; Binding binding = qIter.nextBinding() ; output(binding, out, sCxt) ; } out.decIndent() ; out.print(")") ; }