SQLiteの接頭辞が「etilqs_」である理由

逆さまに読める程度のリテラシー / 2023-06-13T00:00:00.000Z

SQLiteという極めて利便性の高いRDBMSが存在します。単体のデータベースとして用いられるよりも特定のソフトウェアの内部で使われることの多いパブリックドメインのデータベースであり、単に通常のデータベースとして使うだけではなく大量にある小さなファイルの格納であったりデータのキャッシュとして活用されることもあります。

ところでSQLiteでは自らの接頭辞として「sqlite_」といういかにも自然なものではなく、「etilqs_」というものが使われています。これはいったいどうしてでしょうか。

結論

  1. 迷惑電話対策
  2. 出来る限りのことはしよう

迷惑電話

ご丁寧なことに、ソースコード中のコメントでなぜこんなことになっているかの解説がなされています。コード中でも読みやすいように整形されてはいるのですが、Web上で読むと反対に読みずらかったので再整形するとこんな感じになります。

2006-10-31: The default prefix used to be "sqlite_". But then Mcafee started using SQLite in their anti-virus product and it started putting files with the "sqlite" name in the c:/temp folder.
This annoyed many windows users. Those users would then do a Google search for "sqlite", find the telephone numbers of the developers and call to wake them up at night and complain.
For this reason, the default name prefix is changed to be "sqlite" spelled backwards. So the temp files are still identified, but anybody smart enough to figure out the code is also likely smart enough to know that calling the developer will not help get rid of the file.

簡単で読みやすい英語ですので必要性は感じないのですが、適当に翻訳するとこんな感じになります。

2006年10月31日。これまでデフォルトのプレフィックスとして「sqlite_」を使用してきました。しかしMcAfeeがアンチウイルスソフトウェアにSQLiteを使用し始めた際、C:/temp以下に「sqlite」と名前の付けられたファイルを置くようになりました。
これは多くのWindowsユーザーを困惑させました。そのようなユーザー(の一部)はGoogleで「sqlite」を検索し、(SQLiteの)開発者の電話番号を見つけた上で、夜中に開発者を電話で起こし文句を言うようになりました。
このためデフォルトのプレフィックスは「sqlite」を逆さのスペルにしたものに変更されています。従って問題となったファイルそのものは未だに存在しているものの、この暗号を理解できるほど賢い人は、開発者に電話したところでファイルを削除できないことを知っているでしょう。

要するにマカフィー製品を使っておりかつGoogleで検索が出来るが、なぜそこにSQLiteのファイルが生えているか考えることが出来ていない人々が(少なくとも2006年には)大量に存在していたことが原因ということです。夜中に電話で起こされるのを快に捉える人はいないでしょうから妥当な変更であると言える…でしょう。多分。

雑誌「Nintendo Power」におけるEvets Kainzowさんの行動のように、綴りを反対にするだけで問題が解決してしまうということは世の中においてそれなりに存在するかもしれません。この話もそのような事例の1つと言えるでしょう。

関連リンク

最後に

C++の入門サイトで知られている江添亮さんのツイート を丸パクリ に触発されて記事を生やしました。かなり申し訳ない気持ちがあったので、CC BY-SA 4.0ではなくCC BY 4.0でライセンスしています。

Writer

Osumi Akari