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.2.1
sqlite-utils 4.2.1 修复了一个由未列出的 typing-extensions 依赖项导致的崩溃错误,并添加了一个冒烟测试,以验证 CLI 在没有开发依赖的情况下也能正常工作。
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 工具发展。
sqlite-utils 4.2
sqlite-utils 4.2 改进了 transform() 功能,支持复杂模式定义,新增内省属性,并包含其他较小的更改,这些改动由多位开发者贡献。
可执行文件是SQLite数据库
文章探讨了用SQLite替换ELF可执行文件格式,介绍了一个名为SELF的原型,使得可执行文件可以成为SQLite数据库,并讨论了其益处和技术影响。