| Home | Libraries | People | FAQ | More

###### any_connection::async_reset_connection (2 of 2 overloads)

Resets server-side session state, like variables and prepared statements.

###### Synopsis

    template<
        class CompletionToken>
    auto
    async_reset_connection(
        diagnostics& diag,
        CompletionToken&& token);

###### Description

Resets all server-side state for the current session:

- Rolls back any active transactions and resets autocommit mode.
- Releases all table locks.
- Drops all temporary tables.
- Resets all session system variables to their default values (including the ones set by `SET NAMES`) and clears all user-defined variables.
- Closes all prepared statements.

A full reference on the affected session state can be found here.

This function will not reset the current physical connection and won't cause re-authentication. It is faster than closing and re-opening a connection.

The connection must be connected and authenticated before calling this function. This function involves communication with the server, and thus may fail.

###### Warning on character sets

This function will restore the connection's character set and collation to the server's default, and not to the one specified during connection establishment. Some servers have `latin1` as their default character set, which is not usually what you want. Since there is no way to know this character set, `current_character_set` will return `nullptr` after the operation succeeds. We recommend always using `set_character_set` or `async_set_character_set` after calling this function.

You can find the character set that your server will use after the reset by running:

    "SELECT @@global.character_set_client, @@global.character_set_results;"

###### Handler signature

The handler signature for this operation is `void(boost::mysql::error_code)`.