Scylla, Charybdis, and the mystery of Quill
summary
Quill is a Scala compile‑time LINQ-style library that generates SQL from quoted for-comprehensions via compile-time SQL generation and implements the paper’s Scylla/Charybdis normalization rules so host-language queries avoid failure or query explosion. It uses white-box macros and beta-reduction to inline quoted functions, supports lifted runtime parameters, composable predicates, an infix for raw SQL, and modules for driver-agnostic SQL, nonblocking Postgres/MySQL, and Cassandra with reactive streams; core normalization fits in <1000 LOC and is already used in production.
AI-written summary · about
chapters (8)
- 0:00Start
- 4:35Transparent Persistence
- 10:00Theorem of Scylla and Charybdis
- 18:11Associativity Law
- 19:57Beta Reduction
- 25:38Dynamically Generated Queries
- 30:17Ensure that the Database Actually Has a Table
- 37:28Status of the Project
related talks
37mTyqu: Typesafe SQL Queries in Scala
31mQuill + Doobie = Better Together
48mCompositional, Expressive, Performant Database Queries: Choose 3
42mEverything Old is New Again: Quoted Domain Specific Languages
41mHow types can turn a SQL interpreter into a SQL compiler
15mReorganizing Queries with Grouping
32mBecause SQL is everywhere but you don't want to use it
45mLet's make SQL great again - Google BigQuery's Pipe query syntax
