揭秘SQLite临时文件前缀改名的有趣经历

发表时间: 2023-07-28 10:22

SQLite 是一个 C 语言库,它实现了一个小型、快速、自包含、高可靠性、功能齐全的 SQL 数据库引擎。它是世界上使用最多的数据库引擎, 内置于所有手机和大多数计算机中,并捆绑在人们每天使用的无数其他应用程序中.

SQLite的数据库在运行过程中会产生一些临时文件, 为了能够标识这些临时文件是 SQLite 产生的, 最开始的时候它们的文件名都以 sqlite_ 开头, 直到 2006 年 11 月 1 日的一次提交 把这个前缀改成了 etilqs, 也就是把 sqlite 这个单词倒过来.

背后的原因和 Macfee 有关.

作为一个著名的杀毒软件, Macfee 也使用 SQLite 作为内置的数据库, 当 Macfee 在用户的电脑上运行的时候, SQLite 数据库的临时文件会被生成到 C:/Temp 目录里, 这些临时文件有时候会很多, 很大, 让用户很苦恼.

但是当时的用户不太知道这些文件都是哪个程序产生的, 不过由于这些文件都有一个相同的前缀 sqlite_, 有些用户就在谷歌里搜索 sqlite, 然后就找到了 sqlite 的网站以及联系方式.

“愤怒"的用户开始打电话给 SQLite 的工程师抱怨, 有时候因为时差的原因, SQLite 的工程师总是会在半夜被电话吵醒.

为了解决这个问题, 让工程师睡个好觉, 在 2006 年 10 月 31 号 21:16 的一次提交里, 这个前缀首先被改成了一串无意义的字符, 不再包含 sqlite 的名字:

又在随后的一次提交里改成了 etilqs, 这样一来, 那些聪明到可以看出这些文件是 SQLite 产生的人, 也能明白给 SQLite 工程师打电话也没有办法解决他们的问题.

你可以在 SQLite 的 git 仓库里看到这些提交的信息: https://sqlite.org/src/info/a19ce5c1c4e86d14