@Override
    public void execute(final ConnectionSession connectionSession) {
        String databaseName = sqlStatement.getFromDatabase().map(schema -> schema.getDatabase().getIdentifier().getValue()).orElseGet(connectionSession::getUsedDatabaseName);
        queryResultMetaData = createQueryResultMetaData(databaseName);
        mergedResult = new TransparentMergedResult(getQueryResult(databaseName));
    }
@Test
    void assertShowTablesExecutorWithFull() throws SQLException {
        MySQLShowTablesStatement showTablesStatement = mock(MySQLShowTablesStatement.class);
        when(showTablesStatement.isContainsFull()).thenReturn(true);
        ShowTablesExecutor executor = new ShowTablesExecutor(showTablesStatement, TypedSPILoader.getService(DatabaseType.class, "MySQL"));
        Map<String, ShardingSphereDatabase> databases = getDatabases();
        ContextManager contextManager = mockContextManager(databases);
        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
        executor.execute(mockConnectionSession());
        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
    }