private TupleBuilder makeJoinedBuilder( final Fields[] joinFields ) { final Fields[] fields = isSelfJoin() ? new Fields[ size() ] : joinFields; if( isSelfJoin() ) Arrays.fill( fields, 0, fields.length, joinFields[ 0 ] ); return new TupleBuilder() { Tuple result = TupleViews.createComposite( fields ); @Override public Tuple makeResult( Tuple[] tuples ) { return TupleViews.reset( result, tuples ); } }; }
private TupleBuilder makeJoinedBuilder( final Fields[] joinFields ) { final Fields[] fields = isSelfJoin() ? new Fields[ size() ] : joinFields; if( isSelfJoin() ) Arrays.fill( fields, 0, fields.length, joinFields[ 0 ] ); return new TupleBuilder() { Tuple result = TupleViews.createComposite( fields ); @Override public Tuple makeResult( Tuple[] tuples ) { return TupleViews.reset( result, tuples ); } }; }
protected void initLists() { collections = new Collection[ size() ]; // handle self joins if( numSelfJoins != 0 ) { Arrays.fill( collections, createTupleCollection( joinFields[ 0 ] ) ); } else { collections[ 0 ] = new FalseCollection(); // we iterate this only once per grouping for( int i = 1; i < joinFields.length; i++ ) collections[ i ] = createTupleCollection( joinFields[ i ] ); } joinedBuilder = makeJoinedBuilder( joinFields ); joinedTuplesArray = new Tuple[ collections.length ]; }
protected void initLists() { collections = new Collection[ size() ]; // handle self joins if( numSelfJoins != 0 ) { Arrays.fill( collections, createTupleCollection( joinFields[ 0 ] ) ); } else { collections[ 0 ] = new FalseCollection(); // we iterate this only once per grouping for( int i = 1; i < joinFields.length; i++ ) collections[ i ] = createTupleCollection( joinFields[ i ] ); } joinedBuilder = makeJoinedBuilder( joinFields ); joinedTuplesArray = new Tuple[ collections.length ]; }