this post was submitted on 06 Jul 2024
936 points (99.4% liked)

Programmer Humor

19623 readers
80 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 

via: @[email protected]

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)

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 50 points 4 months ago* (last edited 4 months ago) (5 children)

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?

[–] qaz 62 points 4 months ago (1 children)

Many programs use SQLite internally and McAfee decided to store the database files in C:/Temp

[–] 7uWqKj 2 points 4 months ago

No, these are sqlite temp files, not the database files. McAfee had no control over the temp files.

[–] [email protected] 52 points 4 months ago (1 children)

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.

[–] [email protected] 63 points 4 months ago* (last edited 4 months ago) (2 children)

A yes, the two genders of binary file formats: renamed sqlite file and renamed zip folder.

[–] shotgun_crab 10 points 4 months ago

Don't forget renamed and compressed xml + zip

[–] [email protected] 1 points 4 months ago (2 children)

Aren't sqilte files themselves (like most other things) just fancy text files?

[–] FooBarrington 15 points 4 months ago (1 children)

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).

[–] [email protected] 4 points 4 months ago (1 children)
[–] FooBarrington 18 points 4 months ago (2 children)

Then I guess my laptop is just a fancy boat.

[–] [email protected] 4 points 4 months ago

Haven't seen your laptop, but if it's anything like mine it's a very lousy boat.

[–] [email protected] 3 points 4 months ago
[–] [email protected] 20 points 4 months ago

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.

[–] [email protected] 8 points 4 months ago (1 children)
[–] [email protected] 2 points 4 months ago (2 children)

Does sqlite create a file for every page in the table or what?

[–] [email protected] 42 points 4 months ago

No, but developers are free to implement things in whatever crazy way they can dream up.

[–] [email protected] 4 points 4 months ago

Nobody ever accused McTrellix of being efficient software 😆

[–] [email protected] 5 points 4 months ago

Al sorts of applications would enjoy a database to log all sorts of stuff, store results, capture events, etc.

SQLite is great because it doesn't necessitate another infra dependency as it is stored to file