via: @memes@wetdry.world
https://wetdry.world/@memes/112717700557038278
the sqlite codebase is a gem.
tldr; mcaffee made a shit ton of sqlite files in the temp folder causing people to call the sqlite devs phone angrily. now they name all files etilqs to prevent this.
Text from the screenshot:
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.
Code found at: https://github.com/sqlite/sqlite/blob/master/src/os.h#L65 (The line numbers in the screenshot and the code don’t match up)
Forgive my ignorance. SQLite is a database software. Why would McAffee create lots of database files?
[Edit:] I’m not asking why a program needs to store data. I’m asking why that necessitates many files. One database file (or one per table) should be enough, right?
The program needs to store multiple temporary files (one per virus definition update, or scan results or whatever purpose).
It looks like they simply picked sqlite as a format because the data has a structured format and that way they leverage databases robustness, easiness to read and query the data.
The comment appears to be from 2006. Sqlite mightve had some limitations then that necessitated creating a new (temporary) database file as a subset of larger database for performance reasons or to allow multiple processes to read/write them and then consolidate data back into the single database.
Many programs use SQLite internally and McAfee decided to store the database files in C:/Temp
Sqlite is a great embedded database.
If you are storing lots and lots of information in a JSON file, CSV file, or coming up with your own serialisation… Chances are, sqlite is going to do it better.
I know loads of android apps use sqlite for storage. I’ve also managed to open quite a few programmes “proprietary” file format in sqlite.
A yes, the two genders of binary file formats: renamed sqlite file and renamed zip folder.
Aren’t sqilte files themselves (like most other things) just fancy text files?
Nah, only actual string data is stored as text. Everything else is stored as binary: https://www.sqlite.org/fileformat.html#record_format
The file also isn’t written sequentially, it’s stored in blocks (pages), where sometimes later data can be inserted in the middle (e.g. when data was deleted).
I did say fancy.
Then I guess my laptop is just a fancy boat.