Server System Variable "character_set_results" の意味とnull値設定について

http://dev.mysql.com/doc/mysql/en/charset-connection.html

サーバ側にはある文字コードでデータがテーブルに格納されているが,クライアントにデータを返す際に別の文字コードに変換して(Unicodeをはさんだ変換)から返して欲しい場合,この変数を設定する.

If you do not want the server to perform any conversion, set character_set_results to NULL:

mysql> SET character_set_results = NULL;

SET NAMES = 文字コード,をするとその文字コードがこの変数にも設定される.サーバ側に変換をしないでそのままデータを返して欲しい場合には,NULLを設定する.

例えばConnector/J側で以下のように設定していた際,cp932→ucs2→cp932と無駄な変換をしないように動いてくれるのかは未調査.

        props.put("characterEncoding", "WINDOWS-31J");
        props.put("characterSetResults", "WINDOWS-31J");

サーバ変数character_set_resultsおよびConnector/JプロパティcharacterSetResultは通常はあまり使用されないと思われる.

しかし,バグはバグなので直すだけ直しておかないと・・.

PS.
cp932→ucs2→cp932のようなパターンは変換しないようになっていると以前聞いたような気も・・・.正確な情報お持ちの方いましたらご一報を・・.