NULL BITMAP by Justin Jaffray
Subscribe
RSS
Archive
Physical Properties #1
January 29, 2024
I wanna talk about relational algebra. Specifically, the things relational algebra is not concerned with, but obviously matter. Things like: ordering of a...
Testing Query Planners
January 22, 2024
A thing I did not appreciate for a long time is how different pieces of software merit different testing methodologies. I don't necessarily mean like, a...
Why SQL is Unkillable
January 15, 2024
My Twitter bio is it is easier to imagine an end to computing than an end to sql. I've thought a lot about the question of why SQL is such a cockroach. It...
Certificates and Duality
January 8, 2024
I wanna talk about optimization. Not query optimization, or program optimization, today, but the other kind. Mathematical optimization. Like when your high...
Reification and Exchange
January 1, 2024
One thing I really like about the parse-plan-execute cycle of queries is the ability to reify various computations in a way that are often invisible, or hard...
Should you read about "Database Theory?"
December 25, 2023
Hello! I am traveling and also sick and also this post is scheduled to come out on Christmas Day so it's going to be a little shorter and chiller than usual....
Tiering vs. Leveling
December 18, 2023
Last week we talked about how to think about "what is going on with LSMs." Today, we are going slightly deeper and a little bit sideways to discuss a design...
Thinking about Closure and LSMs
December 11, 2023
Math, specifically algebra, has some very nice interfaces. The idea that to perform operations on groups you simply take two of its elements and bash them...
The Little Planner Chapter 4: A Pushdown Party
December 4, 2023
Hi everybody, apologies, I didn't have time to put together a newsletter this week. In lieu of that, I found this chapter of a book called "The Little...
Simplifying Expressions Bottom-Up
November 27, 2023
There's a technique for simplifying expression trees that I learned from an old manager of mine, have never seen elsewhere, and have never shown to anyone...
Independence and The Futility of Cardinality Estimation
November 20, 2023
The official NULL BITMAP position is that query planners exist to approximate domain knowledge. That is, they're tools to replicate the knowledge of an...
A Left-to-Right Mental Model for Datalog
November 13, 2023
Note: see the end of this post for some housekeeping on last week. I get the sense that datalog scares a lot of people off. And I get that people might not...
SQL Scoping is Surprisingly Subtle and Semantic
November 6, 2023
It is not my intention with NULL BITMAP to dwell forever on somewhat obscure, unintuitive SQL-isms, but...with that said, I know a lot of you out there are...
Databases are not Compilers
October 30, 2023
Last week's issue was the topic of some contention in some of my circles. The general question was, is the following transformation valid: SELECT count(*)...
The Case of a Curious SQL Query
October 23, 2023
Languages that suffer success often have to do so by selling out and adding features that go against some of the original purposes of their design. SQL is a...
Databases Have a Lot of Data
October 16, 2023
A recurring theme in the ongoing coverage of Sam Bankman-Fried's trial has been his apparent recklessness. One particularly popular anecdote being his...
Representing Columns in Query Optimizers
October 9, 2023
Query optimizers must have a way to internally represent their plans. This is query planning's version of an "intermediate representation," or IR. There's a...
Why Are Query Plans Trees?
October 2, 2023
Looking at just about any database's EXPLAIN output will reveal that generally, queries get compiled into tree-shaped plans, rather than general cyclic...
Internal Affairs
September 25, 2023
There is a trick called string interning that is well known to compiler authors, and sometimes shows up in other places as well. It's used to change the...
Unity and VLDB Reading List #2
September 18, 2023
Normies Learn Software Licensing If you're a software person and at all plugged in to the world of video games, you might have watched in horror as Unity...
VLDB Reading List #1: TUM Edition
September 11, 2023
VLDB just happened! And I have been going through some of the papers that caught my eye. As it turns out, this week is TUM week. What Modern NVMe Storage Can...
The Problem with Declarativity
September 4, 2023
IN or OR There was a very nice blog post from OtterTune [1] recently, digging into some of the quirks of the way Postgres executes a particular query: Query...
Hard and Soft Statistics
August 28, 2023
One lens I've found satisfying for "what is a query planner" is that it's a tool for "approximating domain knowledge." By that I mean, someone who knows...
The Halloween Problem
August 14, 2023
What if you had an isolation anomaly with yourself? If you're receiving this as an email, thank you for entrusting me with your email address, I know that's...
GitHub
Website
Bluesky
Twitter