How DuckDB is USING KEY to Unlock Recursive Query Performance
Björn Bamberg • Denis Hirn • Torsten Grust
Proceedings of the 2025 ACM SIGMOD International Conference on Management of Data (SIGMOD'25), June 22–27, 2025, Berlin, Germany. doi:10.1145/3722212.3725107
SQL’s recursive common table expressions (CTEs) can express complex computations
over tabular data. Their accumulative semanticswhich collects all intermediate
results in a union table—may incur substantial space and runtime overhead,
however. This paper takes the recently proposed USING KEY variant of recursive
CTEs as a starting point and demonstrates it as a production-ready feature in
DuckDB. This CTE variant admits queries to selectively “overwrite” prior
intermediate results, which ultimately leads to substantially smaller union
tables and runtime savings. We present the changes we made to DuckDB to support
this new CTE form and showcase the performance of the USING KEY variant using
the LDBC graph instances. The demonstration features a fully functional
implementation of USING KEY in a DuckDB instance, pre-loaded with LDBC graphs,
and a large set of queries that demonstrate the benefits. The demonstration will
be interactive, allowing attendees to play with sample SQL queries and data.