@Override
    public void execute(final ConnectionSession connectionSession) {
        String name = showStatement.getName().orElse("").toLowerCase(Locale.ROOT);
        if ("ALL".equalsIgnoreCase(name)) {
            executeShowAll(connectionSession);
            return;
        }
        queryResultMetaData = new RawQueryResultMetaData(Collections.singletonList(new RawQueryResultColumnMetaData("", "", name, Types.VARCHAR, "VARCHAR", -1, 0)));
        VariableRowDataGenerator variableRowDataGenerator = VARIABLE_ROW_DATA_GENERATORS.getOrDefault(name, unused -> new String[]{"", "", ""});
        mergedResult = new LocalDataMergedResult(Collections.singletonList(new LocalDataQueryResultRow(variableRowDataGenerator.getVariable(connectionSession)[1])));
    }
@Test
    void assertExecuteShowOne() throws SQLException {
        ConnectionSession connectionSession = mock(ConnectionSession.class);
        PostgreSQLShowVariableExecutor executor = new PostgreSQLShowVariableExecutor(new PostgreSQLShowStatement("client_encoding"));
        executor.execute(connectionSession);
        QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
        assertThat(actualMetaData.getColumnCount(), is(1));
        assertThat(actualMetaData.getColumnLabel(1), is("client_encoding"));
        MergedResult actualResult = executor.getMergedResult();
        assertTrue(actualResult.next());
        assertThat(actualResult.getValue(1, String.class), is("UTF8"));
        assertFalse(actualResult.next());
    }