As a self-assessment, I rewrote the entire implementation from a columnar/vector-based engine (it uses Arrow) to row-based, using JDBC types, and it took me only 2 readthroughs of the book to be able to do that.
There's also "Database Design and Implementation" by Edward Sciore
It's written in Kotlin and is very intelligible + succinct (99 pages):
https://leanpub.com/how-query-engines-work
https://github.com/andygrove/how-query-engines-work
As a self-assessment, I rewrote the entire implementation from a columnar/vector-based engine (it uses Arrow) to row-based, using JDBC types, and it took me only 2 readthroughs of the book to be able to do that.
There's also "Database Design and Implementation" by Edward Sciore