@Override
    public MergedResult merge(final List<QueryResult> queryResults, final SQLStatementContext sqlStatementContext,
                              final ShardingSphereDatabase database, final ConnectionContext connectionContext) throws SQLException {
        if (!(sqlStatementContext instanceof FetchStatementContext)) {
            return new TransparentMergedResult(queryResults.get(0));
        }
        if (1 == queryResults.size()) {
            return new IteratorStreamMergedResult(queryResults);
        }
        FetchStatementContext fetchStatementContext = (FetchStatementContext) sqlStatementContext;
        Map<String, Integer> columnLabelIndexMap = getColumnLabelIndexMap(queryResults.get(0));
        fetchStatementContext.getCursorStatementContext().getSelectStatementContext().setIndexes(columnLabelIndexMap);
        return new FetchStreamMergedResult(queryResults, fetchStatementContext, getSchema(sqlStatementContext, database), connectionContext);
    }
@Test
    void assertBuildIteratorStreamMergedResult() throws SQLException {
        ShardingDDLResultMerger merger = new ShardingDDLResultMerger();
        assertThat(merger.merge(createSingleQueryResults(), mock(FetchStatementContext.class), mock(ShardingSphereDatabase.class), mock(ConnectionContext.class)),
                instanceOf(IteratorStreamMergedResult.class));
    }