HN Hall of Fame Weekly email

Let’s Build a Simple Database (2017)

cstack.github.io Books & learning Tutorials & guides Software engineering Class of 2021-07 Hall of Fame
Screenshot of cstack.github.io captured 2026-07-20
Page preview · captured 2026-07-20

Resurfaced independently across 8 calendar years, with breakout response in 4 of them.

submissions
16
submitters
15
observed span
2017–2026
peak thread · 146 comments
783 pts
latest 20+ return · 2023-05-03
328 pts

Submission timeline

2007–2026

One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.

First comments on top threads

HN comment order

I have spent quite a lot of time building a database in Java. It's not a small undertaking. I've gone through as many books and papers as I can, and there is only one, one, that gives an overview and actual examples of building a system that processes SQL. Everything else is theoretical or so general that you don't get enough direction to get started. It's "Database Design and Implementation" by Sciore. It's a little dated, but not by much…

ccleve·783-point thread·

A bit shameless to ask a question under top HN record, but I always wondered why do not SQL engines give access to their SQL AST to generate queries. Of course, one can combine a query from strings with placeholders, and it takes not so much comparing to actual querying process, but it feels so hacky. Why not provide something like: Query *q = db_select(db); db_add_from(q, "persons"); db_left_join(q, "companies", db_expr(DB_EQ, "per_id", "com_id")); Query *q = db_create_table(db); db_add_column(q, "id"…

wruza·574-point thread·

In software, as in most things, most of learning is done by doing. Creating a clone of something from scratch is a really useful learning technique and has the benefit of a defined specification. It doesn't even really matter if the job is even completed or if the program is ever used. The important part is the doing, not the result. I confess we did similar things at uni 30 years ago, although we mostly re-implemented arcade games, not sql…

Discussed at the time: Writing a SQLite clone from scratch in C - https://news.ycombinator.com/item?id=15168467 - Sept 2017 (146 comments)

dang·210-point thread·

The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.

Breakout years
4

100+ points or 50+ comments

Total points
1952

reference only — not used in Hall rules or ranking

Total comments
332

reference only — not used in Hall rules or ranking

Every submission

DateTitle as submittedByPointsComments
2017-09-02Let's Build a Simple Databasehacknrk40
2017-09-03Writing a sqlite clone from scratch in Ctim_sw233
2017-09-04Writing a SQLite clone from scratch in CFirst breakoutingve574146
2019-03-12Writing a (simple) sqlite clone from scratch in Cgary__20
2019-03-17Writing a sqlite clone from scratch in Cbibyte60
2019-03-19How Does a Database Work? – Let’s Build a Simple Databasekristianp20
2019-04-05Let’s Build a Simple Database (2017)Best threadAlexeyBrin78388
2020-08-26Writing a Sqlite Clone from Scratch in Ccaeril30
2021-05-26Let's Build a Simple Databasedividead10
2021-07-04Writing a SQLite clone from scratch in C (2017)Hall inductionrubyn00bie21043
2023-05-03Writing a SQLite Clone from Scratch in CLatest 20+ point returnpgayed32852
2024-12-28Let's Build a Simple Databasesebg20
2025-03-21Let's Build a Simple Databaseibobev60
2025-03-27Let's Build a Simple Databasejcartw30
2025-05-19Let's Build a Simple Databaseibobev30
2026-02-10Let's Build a Simple Databaseonurkanbkrc20