public static <T> Sequence<T> concat(Sequence<T>... sequences) { return concat(Arrays.asList(sequences)); }
public static <T> Sequence<T> concat(Iterable<Sequence<T>> sequences) { return concat(Sequences.simple(sequences)); }
@Override public Sequence<T> run(final QueryPlus<T> queryPlus, final Map<String, Object> responseContext) { return Sequences.concat( Sequences.map( queryRunners, new Function<QueryRunner<T>, Sequence<T>>() { @Override public Sequence<T> apply(final QueryRunner<T> input) { return input.run(queryPlus, responseContext); } } ) ); } }
private Sequence<Integer> concat(Sequence<Integer>... sequences) { return Sequences.concat(Arrays.asList(sequences)); }
@Override @SuppressWarnings("unchecked") public Sequence<Object[]> runQuery() { // Lazy: run each query in sequence, not all at once. if (limit == 0) { return Sequences.empty(); } else { final Sequence baseSequence = Sequences.concat( FluentIterable.from(rels).transform(rel -> ((DruidRel) rel).runQuery()) ); return limit > 0 ? baseSequence.limit(limit) : baseSequence; } }
@Override public Sequence<ScanResultValue> run( final QueryPlus<ScanResultValue> queryPlus, final Map<String, Object> responseContext ) { // Note: this variable is effective only when queryContext has a timeout. // See the comment of CTX_TIMEOUT_AT. final long timeoutAt = System.currentTimeMillis() + QueryContexts.getTimeout(queryPlus.getQuery()); responseContext.put(CTX_TIMEOUT_AT, timeoutAt); return Sequences.concat( Sequences.map( Sequences.simple(queryRunners), new Function<QueryRunner<ScanResultValue>, Sequence<ScanResultValue>>() { @Override public Sequence<ScanResultValue> apply(final QueryRunner<ScanResultValue> input) { return input.run(queryPlus, responseContext); } } ) ); } };
Sequence<InputRow> rows = Sequences.concat( Iterables.transform( adapters,
private Sequence<Object[]> executeTopN( final DruidQuery druidQuery, final TopNQuery query ) { final List<RelDataTypeField> fieldList = druidQuery.getOutputRowType().getFieldList(); return Sequences.concat( Sequences.map( runQuery(query), new Function<Result<TopNResultValue>, Sequence<Object[]>>() { @Override public Sequence<Object[]> apply(final Result<TopNResultValue> result) { final List<DimensionAndMetricValueExtractor> rows = result.getValue().getValue(); final List<Object[]> retVals = new ArrayList<>(rows.size()); for (DimensionAndMetricValueExtractor row : rows) { final Object[] retVal = new Object[fieldList.size()]; for (final RelDataTypeField field : fieldList) { final String outputName = druidQuery.getOutputRowSignature().getRowOrder().get(field.getIndex()); retVal[field.getIndex()] = coerce(row.getMetric(outputName), field.getType().getSqlTypeName()); } retVals.add(retVal); } return Sequences.simple(retVals); } } ) ); }
return Sequences.concat( Sequences.map( runQuery(query),
return Sequences.concat( Lists.newArrayList( FunctionalIterable.create(chunkIntervals).transform(
Sequences.concat(subtotalsResults), () -> Lists.reverse(closeOnExit).forEach(closeable -> CloseQuietly.close(closeable)) );
final Sequence<Integer> seq = Sequences.concat( new BaseSequence<>( new BaseSequence.IteratorMaker<Sequence<Integer>, Iterator<Sequence<Integer>>>()
public Sequence<InputRow> apply(WindowedStorageAdapter adapter) return Sequences.concat( Sequences.map( adapter.getAdapter().makeCursors(
@Test public void testClosingOfSequenceSequenceWhenExceptionThrown() { final AtomicInteger closedCount = new AtomicInteger(0); final Sequence<Integer> seq = Sequences.concat( new BaseSequence<>( new BaseSequence.IteratorMaker<Sequence<Integer>, Iterator<Sequence<Integer>>>() { @Override public Iterator<Sequence<Integer>> make() { return Arrays.asList( Sequences.simple(Arrays.asList(1, 2, 3, 4)), new UnsupportedSequence() ).iterator(); } @Override public void cleanup(Iterator<Sequence<Integer>> iterFromMake) { closedCount.incrementAndGet(); } } ) ); SequenceTestHelper.testClosed(closedCount, seq); }
return Sequences.concat( ImmutableList.of( mappedSequence,
Sequence<Integer> seq = Sequences.concat( Sequences.map( Sequences.simple(
return Sequences.concat(sequenceOfSequences);
@Override public Sequence<Result<SearchResultValue>> run( QueryPlus<Result<SearchResultValue>> queryPlus, Map<String, Object> responseContext ) { final QueryPlus<Result<SearchResultValue>> queryPlus1 = queryPlus.withQuerySegmentSpec( new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-01-12/2011-02-28"))) ); final QueryPlus<Result<SearchResultValue>> queryPlus2 = queryPlus.withQuerySegmentSpec( new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-03-01/2011-04-15"))) ); return Sequences.concat(runner.run(queryPlus1, responseContext), runner.run(queryPlus2, responseContext)); } }
configSupplier.get(), bufferPool, Sequences.concat( Sequences.map( Sequences.simple(outerQuery.getIntervals()),
return Sequences.concat( Sequences.withBaggage( Sequences.map(