@Override
    public Stream<ENTITY> stream(ParallelStrategy parallelStrategy) {
        final AsynchronousQueryResult<ENTITY> asynchronousQueryResult
            = dbmsType.getOperationHandler().executeQueryAsync(
                dbms,
                sqlSelect,
                Collections.emptyList(),
                entityMapper,
                parallelStrategy
            );

        final SqlStreamOptimizerInfo<ENTITY> info = SqlStreamOptimizerInfo.of(
            dbmsType,
            sqlSelect,
            sqlSelectCount,
            this::executeAndGetLong,
            this::sqlColumnNamer,
            this::sqlDatabaseTypeFunction
        );

        final SqlTracer sqlTracer = SqlTracer.from(sqlTraceComponent);

        final SqlStreamTerminator<ENTITY> terminator = new SqlStreamTerminator<>(
            info,
            asynchronousQueryResult,
            sqlStreamOptimizerComponent,
            sqlStreamTerminatorComponent,
            sqlTracer,
            allowIteratorAndSpliterator
        );

        final Supplier<BaseStream<?, ?>> initialSupplier
            = asynchronousQueryResult::stream;

        final Stream<ENTITY> result = new ReferenceStreamBuilder<>(
            new PipelineImpl<>(initialSupplier),
            terminator
        );

        // Make sure we are closing the ResultSet, Statement and Connection later
        result.onClose(asynchronousQueryResult::close);

        return result;
    }
Default implementation of the {@link SqlStreamSupplier}-interface.

@author Emil Forslund
@since 3.0.1
runtime-parent/runtime-core/src/main/java/com/speedment/runtime/core/internal/component/sql/SqlStreamSupplierImpl.java