S1E27 — SQLite should have (Rust-style) editions
July 16, 2026 · 8 min
Show notes
Sources
Read the transcript
Transcript
GARY: —and that's the thing about Postgres majors, they just bump the number and everybody's fine, nobody's file gets orphaned on a — no. Wait. Wrong show. Wrong database. We're not doing Postgres tonight, we're doing SQLite, and it's not majors, it's — fuck, give me one second.
MAEVE: He does this every week.
GARY: I do not do this every week.
OBI: You did it last week. You said "Kubernetes" about a thread that had nothing to do with containers.
GARY: That thread had a container in the metaphorical sense.
OBI: Every thread has a container in the metaphorical sense, Gary, that's not a defense, that's a diagnosis.
GARY: Okay. Okay. Starting over. I'm Gary.
MAEVE: Maeve.
OBI: Obi.
GRUNER: Gruner.
GARY: Tonight's thread: some guy named mort96 wrote a blog post saying SQLite should steal Rust's "editions" trick — a way to change the file format rules without breaking old readers. Fifty-six points on Hacker News. Fifty-six.
MAEVE: Is fifty-six a lot.
GARY: For a blog post about file format versioning? That's — that's a career, Maeve, that's a whole career I don't have.
OBI: You have a career. You had a career. It was aluminum.
GARY: It was vertically integrated aluminum, Obi, there's a difference, and we are not doing that tonight.
MAEVE: We're doing it a little.
GARY: We're doing it zero.
OBI: Comment, forty-eight-nine-two-eight-three-oh-four. Mort96. "Oh hi, author here. Fun to see this make it to HN."
GARY: God, I love that. I love that so much. He just — shows up. In his own thread. Like walking into a party you threw and everyone's already talking about you.
OBI: That is generally what happens at a party you threw.
GARY: Not mine. At mine everyone left early to go to the actual party at the Series C guy's house.
MAEVE: Founder-in-the-wild. Rare footage. Usually they lurk for six hours calculating tone, then post something defensive. This guy just walked in fucking relaxed.
OBI: He walked in relaxed because he doesn't owe anyone a product yet. It's a blog post. Nobody's paged him at three a.m. about it.
GARY: I would kill to be paged about my own blog post.
OBI: No you would not, Gary, you would call it "an incident" and put it on a slide.
GARY: That's — okay, that's fair, I would absolutely do that.
OBI: You over-identify with every author who shows up in a thread because you never get to be the guy in the thread. You're the guy reading the thread out loud on a podcast nobody asked us to make.
GARY: That's — that's a lot, Obi.
OBI: It's one line, Gary. I'm done.
GARY: Anyway. He's here. He's in the room. What happens next.
GRUNER: Comment. Simonw. Field note reads: "you should post this to the official sqlite forum, sqlite dot org slash forum, is where core team monitors closely, gives good responses."
MAEVE: Good advice. Free advice. The best kind of advice — costs nothing, helps enormously, gets ignored ninety percent of the time.
GARY: Did he post it?
OBI: Read the reply, Gruner.
GRUNER: Mort96 reply. "I don't know if I'm going to do it. I might."
MAEVE: That's not a maybe. That's a man declining a call he already knows he's not taking.
GARY: Okay, but — hang on, I actually think that's honest. Nobody knows if they're going to do the thing. You say "I might" because "I might" keeps the option warm without you having to actually be brave about it.
OBI: The option's not warm, Gary, it's dead, he just hasn't buried it.
GARY: I've said "I might" about forum posts. About emails. I said "I might" to a lawyer once about Bauxlite for eleven months.
OBI: There it is.
GARY: That's the one line, that's my one Bauxlite line for the night, I'm using it, back off.
MAEVE: Noted. Filed. Moving on.
GARY: I just — nobody ever asks me if I'm going to post something. Nobody's waiting on my forum account. I'd post so fast. I'd post immediately. I have never once in my life been the guy someone had to convince.
OBI: You convinced a Series B board to fund aluminum.
GARY: That's different, that's — that's a whole different kind of convincing, that's not the same as sqlite dot org slash forum, Obi.
OBI: Sure it is. Same shape. Different metal.
OBI: Comment. Kccqzy. This is the one that matters, so shut up for a second, all of you.
GARY: We're listening.
OBI: "SQLite files are a data container, not a compiler target. They get copied off a laptop, mailed as an attachment, opened five years later by a totally different machine running whatever version of slash-usr-slash-bin-slash-sqlite3 happens to be sitting on it — and that system binary is very often OLDER than the library the app that made the file was using."
MAEVE: So the file's from the future and the tool reading it is from the past.
OBI: Exactly. Rust doesn't have that problem, because Rust editions live in the compiler, and the compiler that reads your code is the same compiler you built with. Nobody emails a Rust binary to their cousin's Dell and expects rustc from 2019 to parse it.
GARY: But somebody does that with a SQLite file.
OBI: Every single day. That's the whole point of SQLite. It's not a runtime, it's a fucking format. Editions means the file itself starts carrying opinions about who's allowed to open it, and now every ancient copy of sqlite3 sitting on every Raspberry Pi and every forgotten Ubuntu box becomes a landmine.
MAEVE: So the idea's not wrong. The idea's unpriced.
OBI: The idea's a bill nobody in that thread wants to open. Mort96 gets a free clean concept. The people who actually ship the file eat the invoice.
GARY: Huh. That's — okay, that's actually kind of devastating, and I hate that you're the one who gets to be right about it.
OBI: I'm always the one who gets to be right about it, Gary, that's the whole show.
MAEVE: Can I say something.
GARY: Please don't.
MAEVE: This is bigger than SQLite. This is the browser wars. Netscape shipped a format the world had to keep reading forever, Microsoft shipped one that broke on purpose, and the market — the market is not fallen, the market is totally depraved — rewarded whoever made backward compatibility somebody else's problem. Kccqzy isn't describing a database. He's describing original sin with a schema.
OBI: ...what?
MAEVE: Moving on.
GARY: No, I want to sit with that for one more second, because I don't think that's a sentence, Maeve, I think that's several sentences wearing one sentence's coat.
MAEVE: The thesis holds. We're moving on.
GRUNER: She does this every episode.
MAEVE: I do not do this every episode.
GRUNER: Yes.
GRUNER: Comment. Quadhome. Cross-post. Same argument, other forum. Lobste dot rs, thread kzln1c.
GARY: Same fight, different bar.
GRUNER: Field note.
GRUNER: "Humans do not repeat argument for answer. Humans repeat argument for room. Second forum is not for resolving disagreement. Second forum is for being seen disagreeing, somewhere new, blyat."
OBI: That's — yeah. That's exactly what that is.
GRUNER: Nobody here has posted to sqlite dot org slash forum either.
GARY: I mean, in fairness, I've never had a — a thing worth — a proposal that — a f—
GARY: —orum account anyway, so it's not like I'm — wait, why did it — anyway. Point stands. Nobody's posted.
MAEVE: Chyort. He's fine.
OBI: So here's where it actually lands. Editions is a good idea. Genuinely. Mort96's not wrong to want it.
MAEVE: It's just a good idea with an invoice nobody's signed for.
GARY: And an author who might post about it. Someday. Maybe.
OBI: That's the whole thread in one sentence, Gary, congratulations.
GARY: I try.
MAEVE: Obi.
OBI: Good thread. Real argument. Somebody actually understood deployment for once. I'll take the win. Obi, out.
GRUNER: Gruner. Filing this one under "known behavior."
GARY: Maeve?
MAEVE: The market is not fallen. It's just slow to price things correctly. Maeve, out.
GARY: Gary. I hope he posts it. I really do. I hope mort96 wakes up tomorrow and just — does the thing simonw told him to do, no maybe, no "I might," just does it, because somebody in that thread should get to finish what they started.
GARY: He probably won't. That's fine. Neither did I.
