@Override
    public MergedResult merge(final List<QueryResult> queryResults, final SQLStatementContext sqlStatementContext,
                              final ShardingSphereDatabase database, final ConnectionContext connectionContext) throws SQLException {
        SQLStatement dalStatement = sqlStatementContext.getSqlStatement();
        if (dalStatement instanceof MySQLShowDatabasesStatement) {
            return new LocalDataMergedResult(Collections.singleton(new LocalDataQueryResultRow(databaseName)));
        }
        ShardingSphereSchema schema = getSchema(sqlStatementContext, database);
        if (dalStatement instanceof MySQLShowTablesStatement) {
            return new LogicTablesMergedResult(shardingRule, sqlStatementContext, schema, queryResults);
        }
        if (dalStatement instanceof MySQLShowTableStatusStatement) {
            return new ShowTableStatusMergedResult(shardingRule, sqlStatementContext, schema, queryResults);
        }
        if (dalStatement instanceof MySQLShowIndexStatement) {
            return new ShowIndexMergedResult(shardingRule, sqlStatementContext, schema, queryResults);
        }
        if (dalStatement instanceof MySQLShowCreateTableStatement) {
            return new ShowCreateTableMergedResult(shardingRule, sqlStatementContext, schema, queryResults);
        }
        return new TransparentMergedResult(queryResults.get(0));
    }
@Test
    void assertMergeForShowOtherStatement() throws SQLException {
        DALStatement dalStatement = new MySQLShowOtherStatement();
        SQLStatementContext sqlStatementContext = mockSQLStatementContext(dalStatement);
        ShardingDALResultMerger resultMerger = new ShardingDALResultMerger(DefaultDatabase.LOGIC_NAME, null);
        ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
        when(database.getName()).thenReturn(DefaultDatabase.LOGIC_NAME);
        assertThat(resultMerger.merge(queryResults, sqlStatementContext, database, mock(ConnectionContext.class)), instanceOf(TransparentMergedResult.class));
    }