NULL BITMAP by Justin Jaffray
Archives
Search...
Subscribe
A Query Planning Guideline
July 22, 2024
A number of readers last week reached out to direct my attention to What if a SQL Statement Returned a Database which is a much more thorough and well-...
Multiple Returns in SQL
July 15, 2024
Podcast Appearance I was on the Thinking About Computers podcast recently! We had a fun chat on the topic of writing technical content and research....
Deriving Functional Dependencies for Selections
July 8, 2024
Over the last two weeks you were babysat by the pre-scheduling feature of Buttondown, since I was away in Japan without my laptop. Here's me in Japan: I had...
To Understand Correctness, You Must First Understand Incorrectness
July 1, 2024
Recently I was in a Discord channel where someone wrote something akin to “I have a question about linearizability” which had an attached thread with 80...
Physical Properties #4
June 24, 2024
Previous parts of this series: Physical Properties #1 Physical Properties #2 Physical Properties #3 Relational query planning makes a distinction between...
In Codd we Trust (or not)
June 17, 2024
Get in loser, we’re doing another Codd philosophizing session. Codd’s paper introducing the relational model opens up like so: Future users of large data...
NULL BITMAP Builds a Database #2: Enter the Memtable
June 10, 2024
I didn't realize how hard it would be to bin-pack episodes of this thing into the roughly ~750 word chunks that I try to keep issues of this newsletter at....
TPC-See?
June 3, 2024
One thing about concurrency control (“isolation”) in a transactional database is that it incurs costs, and there’s broadly two kinds of such costs. The first...
Avoiding Cross Products with the Query Graph
May 27, 2024
To compute the join of two relations, we find all pairs of rows their rows which have the same value for any columns with the same name. This is sometimes...
NULL BITMAP Builds a Database #1: The Log is Literally the Database
May 20, 2024
It is time to end the tyranny of people becoming interested in database implementation and building a BTree. Let us turn to the succor of immutable storage....
A Card Counting Trick
May 13, 2024
I used to call this thing a “game” but my friend Kevin (who is not the same Kevin as last week but who is also a mathematician) kept telling me it’s really...
The Official NULL BITMAP Glossary: Graph Theory Edition
May 6, 2024
Last week a post of mine made it to God’s favourite website and one thing I was struck by was how many people disagreed about basic graph theory terminology....
Not all Graphs are Trees
April 29, 2024
It's pretty easy to imagine how to represent relational algebra expressions as a tree—they are already structurally rooted trees where each operator has its...
Heath's Theorem
April 22, 2024
We don't have all that much in the world of relational query planning that could be considered a "fundamental theorem," as in like, some central idea that...
The Geometry of SQL
April 15, 2024
Today I want to talk about a way to think about some relational algebra operations. First, let's start with this relation: This is just a handful of games...
My First Distributed System
April 8, 2024
I can show you a picture of the first distributed system I ever used: (Not entirely accurate, I had a Game Boy Color.) When I was a kid, we'd spend summers...
A Sniff Test for Some Query Optimizers
April 1, 2024
One important part of query planning is performing transformations over queries. Today I want to see how a couple common databases perform on a completely...
When Compositionality Fails
March 25, 2024
The idea of abstraction is that we can take some complex thing and present it as some simpler thing. Where people can ignore the aspects of the thing not...
So You Want to Generate SQL Queries (me too)
March 18, 2024
We have talked before about how to appropriately test query planners. I wrote there: I love metamorphic testing for SQL databases because it in large part...
CAP is Good, Actually
March 11, 2024
It seems like there are two main takes regarding the CAP theorem online: In introductory materials, it is presented as a deep, fundamental truth about...
Newer archives
Older archives