939
submitted 1 month ago* (last edited 1 month ago) by ABasilPlant@lemmy.world to c/programmer_humor@programming.dev

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)

you are viewing a single comment's thread
view the rest of the comments
[-] bleistift2@sopuli.xyz 50 points 1 month ago* (last edited 1 month ago)

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@lemmy.world 66 points 1 month ago

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

[-] 7uWqKj@lemmy.world 2 points 1 month ago

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

[-] towerful@programming.dev 53 points 1 month ago

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.

[-] anton@lemmy.blahaj.zone 64 points 1 month ago* (last edited 1 month ago)

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

[-] shotgun_crab@lemmy.world 10 points 1 month ago

Don't forget renamed and compressed xml + zip

[-] ElderWendigo@sh.itjust.works 1 points 1 month ago

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

[-] FooBarrington@lemmy.world 15 points 1 month ago

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

[-] ElderWendigo@sh.itjust.works 4 points 1 month ago
[-] FooBarrington@lemmy.world 18 points 1 month ago

Then I guess my laptop is just a fancy boat.

[-] tofubl@discuss.tchncs.de 4 points 1 month ago

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

[-] Laser@feddit.org 3 points 1 month ago
[-] Michal@programming.dev 19 points 1 month 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.

[-] Zorsith@lemmy.blahaj.zone 9 points 1 month ago
[-] bleistift2@sopuli.xyz 2 points 1 month ago

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

[-] Shadow@lemmy.ca 43 points 1 month ago

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

[-] Zorsith@lemmy.blahaj.zone 4 points 1 month ago

Nobody ever accused McTrellix of being efficient software 😆

[-] GBU_28@lemm.ee 5 points 1 month 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

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

Programmer Humor

18872 readers
1132 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