SQLite 将其临时文件前缀设为 `etilqs_`
摘要
SQLite 将临时文件前缀设为 'etilqs_'(sqlite 的反向拼写)而非 'sqlite_',以避免在 McAfee 的杀毒软件导致 Windows 临时文件混淆后引发用户投诉。
<p><a href="https://lobste.rs/s/tttexr/sqlite_prefixes_its_temp_files_with">评论</a></p>
查看缓存全文
缓存时间: 2026/04/20 14:44
# SQLite 的临时文件前缀为 `etilqs_` - blag
来源:https://avi.im/blag/2026/etilqs/
Turso (https://github.com/tursodatabase/turso) 是用 Rust 重写的 SQLite,完全兼容 SQLite。我一直在实现 `VACUUM` 并研究他们(优美的)代码。`VACUUM` 会将数据库重建到一个新的临时文件中,以回收空间并整理页面碎片。SQLite 将这个临时文件的前缀设置为 `etilqs_`。
原因如下:
```c
/*
** 2006-10-31:原来的默认前缀是 "sqlite_"。但后来
** Mcafee 在其杀毒产品中开始使用 SQLite,而这些产品会在
** C:/temp 文件夹中放置以 "sqlite" 命名的文件。
** 这让许多 Windows 用户感到恼火。这些用户随后会在谷歌上
** 搜索 "sqlite",找到开发者的电话号码,并在半夜打电话
** 把开发者吵醒并抱怨。出于这个原因,默认名称前缀被改为
** "sqlite" 的倒序拼写。这样临时文件仍然可以被识别,但
** 任何聪明到能读懂这段代码的人,大概率也聪明到明白
** 给开发者打电话并不能解决文件问题。
*/
#ifndef SQLITE_TEMP_FILE_PREFIX
# define SQLITE_TEMP_FILE_PREFIX "etilqs_"
#endif
```
代码位于:os.h (https://github.com/sqlite/sqlite/blob/version-3.53.0/src/os.h#L65,%23L79)。
相似文章
sqlite-utils 4.1.1
sqlite-utils 4.1.1 修复了在转换带有外键的表时的一个 TransactionError 边界情况,并改进了 CLI 和 Python API 之间的文档交叉引用。
sqlite-utils 4.1
sqlite-utils 4.1 引入了小型功能,包括用于 Python 代码块的 --code、用于列类型覆盖的 --type 以及严格模式支持,继续作为 SQLite CLI 工具发展。
我们如何在加固Turso时使用Quint在SQLite中发现超过10个漏洞
Turso使用Quint形式化验证工具对SQLite的C API进行建模,并在SQLite自身中发现了超过10个漏洞,从而增强了其SQLite重写版的可靠性。
sqlite-utils 4.0rc3
sqlite-utils 4.0rc3 是一个候选发布版本,包含新功能,包括复合外键内省和不区分大小写的列匹配。
sqlite-utils 4.0,现已支持数据库模式迁移
sqlite-utils 4.0 引入了数据库模式迁移、嵌套事务和复合外键,使得以编程方式管理 SQLite 数据库模式变更更加容易。