We talk a lot about “data-driven decisions”, but that usually hides three separate layers: Data itself (events, transactions, logs, etc.). Database structure (schemas, constraints, relationships). Insights on top (from SQL, AI copilots, BI tools, notebooks). My current interest is in that middle layer: using real-world database structures as a playground to practice database insights: Understan
Vendredi matin, 9 h 15. Françoise est dans son cockpit — trois écrans, à gauche l'Excel-pointeuse qu'elle tient à jour depuis quinze ans, à droite Sage, et au milieu Rembrandt depuis trois semaines. Sa tasse à la main, celle avec sa tête imprimée dessus que quelqu'un lui a offerte à Noël. Elle pivote sur sa chaise et me lance depuis son bureau : « Michel, combien on a d'inscrits pour la rentrée, d
« Hold on, we need to talk, this doesn't add up » Friday morning, 9:15 AM. Françoise is in her cockpit — three screens: on the left the Excel attendance sheet she's kept up to date for fifteen years, on the right Sage, and in the middle Rembrandt for three weeks now. Cup in hand, the one with her face printed on it that someone gave her at Christmas. She swivels in her chair and calls over from
So you've outgrown MySQL. Maybe you need better JSON support, real window functions, or you're moving to a managed cloud database that defaults to Postgres. Whatever the reason — MySQL to PostgreSQL migration trips up almost everyone the first time. The two dialects look similar but behave very differently under the hood. Why MySQL Dumps Don't Import Directly into PostgreSQL users ( id INT(11) NOT
Skip the theory rabbit holes. This is the caching knowledge that shows up in system design interviews, code reviews, and the 2 AM production incidents nobody warned you about. Why Caching — The 30-Second Version Where Do You Actually Cache? Cache-Aside — The Pattern You'll Use 80% of the Time Write Strategies — The Other Side of the Coin Eviction Policies — LRU, LFU, and When It Matters TTL — Gett
Inside the five-stage pipeline from 1.1.1, there is another fork right after the parser. PostgreSQL classifies every SQL command into one of two camps. One side holds the optimizable queries, the other holds the utility commands. The classification is decided by a single field on the Query node, commandType, and from that point on the two camps travel completely different paths. One goes through t
Why I built it I needed a PostgreSQL parser that could run inside Go tooling without CGO, external binaries, or runtime dependencies. SQL is not one grammar PostgreSQL has a lot of dialect-specific edge cases AST shape matters more than “can it parse” Error handling becomes a product feature Real-world SQL is uglier than examples No CGO, easy installation, works in CI, easy to embed in linters a
Table of Contents Introduction Environment Requirements Core Features Core Design and Code Analysis Actual Execution Demo Architecture Overview How You Can Expand Future Plans & Conclusion What is this It is a basic debugger, running on Linux and implemented in C++, aiming to create a debugger that is easy to read and expand. In addition, Lavender's main function is to help users analyze the logic