sjisなカラム(テーブル)にNEC特殊文字が格納できる理由

MySQL Server ver4.1.14 for Linuxソースコードより

${ルート}/mysql-test/t/ctype-sjis.testの40行目付近

#
# Allow to insert extra CP932 characters
# into a SJIS column
#
create table t1 (a char(10) character set sjis);
insert into t1 values (0x878A);
select hex(a) from t1;
drop table t1;

このコードはmysqlサーバのテストスイート用のコードなんだけど,sjis実装のテストコードに"cp932に含まれている文字をsjisへもINSERTできることを保証するテスト"が含まれている.つまり仕様であるということ.

ちなみにこのテストコード書いたのはTさん?

cp932はsjisのスーパーセットだと単純に思っていたのが間違いだったようだ.

しかしsjisを実装しているソースコードである"${ルート}/strings/ctype-sjis.c"には"0x878A"その他が含まれていない.一方cp932の実装コードである"${ルート}/strings/ctype-cp932.c"には含まれている.

ctype-cp932.cとctype-sjis.cだけを比較するとcp932はsjisのスーパーセットであると思っても間違いではなさそうなのだけれども・・・.