NULL BITMAP by Justin Jaffray
Subscribe
RSS
Archive
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...
Cohost
GitHub
Website
Twitter