Un desarrollador repasa, tras años de borrador, las carencias que detecta en SQL y dibuja cómo sería un lenguaje de consulta relacional moderno pensado para programadores. El texto, motivado por la aparición de nuevos lenguajes como Acadia, parte de la idea de que el éxito de NoSQL se explica en buena medida por una implementación torpe y arcaica del potencial de SQL.
El autor, con experiencia principalmente en MySQL y Db2 y nociones de SQLite, SQL Server, Oracle y Postgres, aboga por una sintaxis limpia alejada del legado de PL/I, con estética cercana a C, Python o incluso ML y Prolog, como demuestra Rust. Critica especialmente el analizador de MySQL, que apenas señala errores, frente al de Oracle, mucho más claro. Defiende además un lenguaje verdaderamente funcional, sin stored procedures que reintroduzcan lo procedural, y planners de consulta menos opacos, retomando críticas ya clásicas a la herramienta EXPLAIN de MySQL.
Otro apartado clave son los tipos definidos por el usuario: recuerda que los dominios forman parte del modelo relacional de Codd y solo Postgres los implementa con solidez, mientras que Oracle los ha incorporado recientemente. Propone después sumar tipos suma, uniones discriminadas y pattern matching para resolver esquemas con columnas mutuamente excluyentes y enumeraciones mal modeladas, ilustrándolo con una función de IBM i que devuelve información de pila y mostrando consultas y funciones en una sintaxis declarativa inspirada en F#, Erlang y Elixir.
