Sign in

Markus Winand

@winand.at
1.3K followers 67 following 294 posts

SQL Renaissance Ambassador. Author, Trainer, Coach. PhD in Common Sense. Creator of use-the-index-luke.com and modern-sql.com.

PostsRepliesMedia
Reposted by Markus Winand
Vik Fearing @vik.thegresqlpost.org · 14/08/2026
Venn diagrams for teaching relational joins are plain wrong. I explain why in this new article. thegresqlpost.org/articles/joi...
thegresqlpost.org
Joins, Naturally
What relational joins are and why Venn diagrams cannot represent them.
283
Markus Winand @winand.at · 18/08/2026
Do you know the term “business of broken dreams”? This was introduced to me be a publisher and shortly after by a book printing company. They said that many people dream from writing their own book, which never sell beyond their family. Publishing is “a business of broken dreams”. (Thread)
161
Reposted by Markus Winand
Hacker News 100 @hn100.atproto.rocks · 05/08/2026
Oracle Just Halved Its Always Free ARM Limits www.cnelecar.com/blog/oracle-always… news.ycombinator.com/item?id=491837…
cnelecar.com
Oracle Just Halved Its Always Free ARM Limits — Here's Exactly What to Do Before August 18, 2026
Oracle cut its Always Free ARM limits to 2 OCPU / 12GB, enforced Aug 18, 2026. Resize or consolidate your free instances before they're terminated.
001
Reposted by Markus Winand
SQLDaily @sqldaily.bsky.social · 02/07/2026
There's much more to defining primary keys than using surrogate id columns @winand.at introduces Structured Primary Keys These are based on foreign keys plus the columns needed for uniqueness Using these can give big performance and functional benefits
buff.ly
Structured Primary Keys
Structured primary keys prevent contradiction and perform better than surrogate keys
061
Markus Winand @winand.at · 30/06/2026
peter.eisentraut.org/blog/2026/06...
peter.eisentraut.org
Waiting for SQL:202y: Stockholm (BMA) meeting report
The most recent meeting of ISO/IEC JTC1 SC32 WG3 “Database Languages” took place from the 15th to the 19th of June 2026 in Stockholm. “WG3”, as we call it, works on standardizing the database language...
031
Markus Winand @winand.at · 26/06/2026
What happens, when the race to to bottom hits the bottom? Asking for a friend.
140
Markus Winand @winand.at · 25/06/2026
New post: Structured Primary Keys For consistency and performance. modern-sql.com/blog/2026-06...
modern-sql.com
Structured Primary Keys
Structured primary keys prevent contradiction and perform better than surrogate keys
3251
Markus Winand @winand.at · 19/06/2026
Taking a walk to think in peace can solve quite some problems.
170
Reposted by Markus Winand
Connor McDonald on Database and SQL @connormcd.bsky.social · 17/06/2026
The perfect guide to the oracle optimizer blogs.oracle.com/optimizer/or... Kudos @vldbb.bsky.social
blogs.oracle.com
063
Markus Winand @winand.at · 16/06/2026
Once I though Bitcoin is the greatest possible waste of energy...
060
Markus Winand @winand.at · 05/06/2026
The SQL/JSON Path item-method .keyvalue() has an interesting history in the Oracle Database. modern-sql.com/caniuse/keyv... In 23.26.2 it works, but not in ?( filter ) context.
modern-sql.com
.KEYVALUE() (SQL/JSON Path Item Method)
.KEYVALUE() JSON/Path: Transform Object Attributes into Array Elements
020
Reposted by Markus Winand
Markus Winand @winand.at · 01/06/2026
MariaDB 12.3.2 was released last week. It is the first "stable" version of the long-term supported (LTS = 3 years) 12.3 branch. An SQL dialect enhancement is the IS JSON predicate. Also: a bug I reported is fixed (MDEV-38835). All charts on modern-sql.com are updated. #SQL #JSON #MariaDB
Chart showing the degree of support for SQLs "IS JSON" test: Full H2 support since 1.4.200. Full PostgreSQL support since 16. Full MariaDB support since 12.3.2. Partial Oracle DB support since 21c.
092
Markus Winand @winand.at · 01/06/2026
MariaDB 12.3.2 was released last week. It is the first "stable" version of the long-term supported (LTS = 3 years) 12.3 branch. An SQL dialect enhancement is the IS JSON predicate. Also: a bug I reported is fixed (MDEV-38835). All charts on modern-sql.com are updated. #SQL #JSON #MariaDB
Chart showing the degree of support for SQLs "IS JSON" test: Full H2 support since 1.4.200. Full PostgreSQL support since 16. Full MariaDB support since 12.3.2. Partial Oracle DB support since 21c.
092
Markus Winand @winand.at · 14/05/2026
ORDER BY Has Come a Long Way modern-sql.com/blog/2026-05... The ORDER BY clause is surely one of the best-known SQL clauses. Yet there are a number of common misunderstandings that are worth clearing up. For that, the article walks you through the evolution of the ORDER BY clause the SQL standard.
modern-sql.com
SQL’s ORDER BY Has Come a Long Way
ORDER BY Evolution
1224
Reposted by Markus Winand
Hacker News Top Stories @hackernewsbot.bsky.social · 11/05/2026
dBase: 1979-2026 | Discussion
delphinightmares.substack.com
dBase: 1979-2026
Litigation, neglect killed dBase. The dBase newsgroup servers went off-line since November 2025. Court-smart dBase vendors and AI accelerated the fall.
151
Reposted by Markus Winand
SQLDaily @sqldaily.bsky.social · 25/03/2026
Should these functions return the same value? SELECT ROW_NUMBER() OVER (ORDER BY x), ROW_NUMBER() OVER (ORDER BY x) FROM ... What about when many rows have the same value for X? According to the #SQL standard: yes @winand.at investigates
buff.ly
Order-Equivalence
Do identical OVER clauses always produce identical row orders?
162
Markus Winand @winand.at · 10/03/2026
Order-equivalent OVER clauses modern-sql.com/blog/2026-03... About an important but rarely appreciated aspect when using multiple OVER clauses in a single query.
080
Markus Winand @winand.at · 03/03/2026
AI is the future? Well, if we cannot buy computers anymore, it sounds like stone age to me.
9679
Markus Winand @winand.at · 24/02/2026
hakibenita.com/postgres-row...
hakibenita.com
Row Locks With Joins Can Produce Surprising Results in PostgreSQL
The strange edge case that triggered our assertions
031
Reposted by Markus Winand
HutchyBen @chickencotta.ge · 16/02/2026
i love databases i love databases i love databases writing sql is fun writing sql is fun writing sql is fun
2101
Reposted by Markus Winand
Patricio Del Boca @pdelboca.me · 17/02/2026
Reading about LLM's accuracy to produce SQL queries I ran into llm-benchmark.tinybird.live. According to their study, the average accuracy/exactness is ~50%. So half of the time models returns a query than runs but returns a wrong answer. How are people using this in production?
llm-benchmark.tinybird.live
AI SQL Benchmark
We benchmark the performance of AI SQL models against a human baseline to help you choose the best model for your needs.
083
Markus Winand @winand.at · 16/02/2026
I wonder when we see the first OpenClaw worm, if there isn't one already. Switching off your Mac Mini won't stop it.
021
Reposted by Markus Winand
SQLDaily @sqldaily.bsky.social · 13/02/2026
Think you know about #SQL performance? Take this 3-minute indexing quiz by @winand.at A simple test that 60% fail! buff.ly/5C4XZ7N Did you pass? Let us know how you did!
buff.ly
3-Minute Quiz: What do you know about SQL performance?
Just 5 questions to see how much you know about SQL performance. Never make these mistakes again.
4103
Reposted by Markus Winand
Hacker News Top Stories @hackernewsbot.bsky.social · 09/02/2026
Claude's C Compiler vs. GCC | Discussion
harshanu.space
CCC vs GCC
A Guide to comparing Claude Code Compiler with GCC
033
Markus Winand @winand.at · 05/02/2026
SQL Comments, Please! modern-sql.com/caniuse/comm...
modern-sql.com
Comments Inside SQL Statements
C-style comments work in SQL, with nesting
2102
Reposted by Markus Winand
Donald Dinkenfelter @donalddinkenfelter.bsky.social · 04/02/2026
What is random, but actually useful, things you wish you had a SQL interface for?
021
Markus Winand @winand.at · 02/02/2026
Infinite Recursion Guards modern-sql.com/caniuse/with... With recursive is the only SQL construct that is not guaranteed to terminate, eventually. As the DBMS is typically a very crucial system, infinite loops must be prevented at all times. See how various SQL systems help you.
modern-sql.com
Infinite Recursion Guards
Protection against infinite loops for WITH RECURSIVE.
092
Markus Winand @winand.at · 01/02/2026
Time to re-watch The Terminator (1984)
020
Markus Winand @winand.at · 28/01/2026
I’m a simple man. While Oracle people are ecstatic about ASSERTION in the just released version 23.26.1 of the Oracle Database, I’m happy to see something as simple as FILTER :) 🧵
Infographic showing that PostgreSQL supports FILTER since 2015, followed by H2 and SQLite in 2019, DuckDB 2024 (first tested release) and now Oracle in 2026.
181
Markus Winand @winand.at · 24/01/2026
Latencies are often misunderstood. Also the IO latency in cloud environments, which are often many factors higher as on local discs (during development).
120
Markus Winand @winand.at · 23/01/2026
Probably coming in PostgreSQL 19, btw.
051
Markus Winand @winand.at · 22/01/2026
LEAD(x) IGNORE NULLS OVER(ORDER BY n) Not very often, but when I need IGNORE NULLS, then I really miss it in PostgreSQL. modern-sql.com/caniuse/T616
modern-sql.com
T616, “Null treatment option for LEAD and LAG functions”
T616, “Null treatment option for LEAD and LAG functions” in SQL
173
Markus Winand @winand.at · 22/01/2026
Quelle: Der Standard
010
Reposted by Markus Winand
Markus Winand @winand.at · 21/01/2026
Recent posts made the point that MySQL is dying. One of the arguments was that there are no Git commits in the past months. This particular argument is totally misleading. 🧵
123
Markus Winand @winand.at · 21/01/2026
Charts on modern-sql.com updated for MySQL 9.6.0. The functions MD5, SHA and SHA1 were "removed". That is (not very prominently) mentioned in the security section of the release notes. You can get them back via INSTALL COMPONENT 'file://component_classic_hashing' dev.mysql.com/doc/refman/9...
dev.mysql.com
MySQL :: MySQL 9.6 Reference Manual :: 7.5.8 Legacy Hashing Component
130
Markus Winand @winand.at · 21/01/2026
Recent posts made the point that MySQL is dying. One of the arguments was that there are no Git commits in the past months. This particular argument is totally misleading. 🧵
123
Reposted by Markus Winand
Joe Stead @joestead.codes · 20/01/2026
I genuinely think SQL might be the best bit of technology ever. I'm not very good at it, but it just works, for so many things, and if it doesn't work, it's probably because you're wrong
1143
Markus Winand @winand.at · 19/01/2026
Mankind completely lost the gut feeling for how long a task on a computer should reasonably take. When a simple something like inserting three rows takes 700ms, we should fix that. Implementing a scale-out architecture to cope with that is just plain wrong.
180
Markus Winand @winand.at · 09/01/2026
SQL’s access rights are often ignored. In context of MCP, they are essential I’d say.
060
Markus Winand @winand.at · 09/01/2026
Database management is more than persistence. Beyond persistence, a DBMS also provides access rights (GRANT), schema enforcement (types, constaints), schema evolution (ALTER), concurrency control (TX isolation, deferred constraints), a query language… Persistence is simple, DB managemant is hard.
0213
Reposted by Markus Winand
Johannes Rabauer @rabauer.dev · 28/12/2025
On Tuesday 30 December 2025 at 20:00 CEST I will do a live coding stream comparing both approaches. youtube.com/live/3tnpb88... #LiveCoding #SoftwareEngineering
youtube.com
One backend twice - Hibernate vs jOOQ on real code
In this live coding session, I compare two backend implementations of the exact same API. One built with Hibernate as a traditional ORM and one built with jO...
171
Markus Winand @winand.at · 18/12/2025
Without Overlaps Constraints modern-sql.com/caniuse/with... New in PostreSQL 18. Since 9.2, EXCLUDE constraints can be used for the same purpose.
modern-sql.com
WITHOUT OVERLAPS Constraints
PRIMARY KEY (id, period WITHOUT OVERLAPS)
181
Reposted by Markus Winand
Die Tagespresse @dietagespresse.com · 17/12/2025
Veggie-Burger verboten, Verbrenner erlaubt: EU gut gerüstet für 19. Jahrhundert dietagespresse.com/veggie-burge...
dietagespresse.com
Veggie-Burger verboten, Verbrenner erlaubt: EU gut gerüstet für 19. Jahrhundert
Durch das Veggie-Verbot und dem Festhalten am Verbrennungsmotor positioniert sich Europa als Innovationsführer für das späte Biedermeier.
432790
Markus Winand @winand.at · 17/12/2025
Trivia: To run modern-sql.com I've currently 195 SQL systems in my lab and 60000+ test cases.
2181
Markus Winand @winand.at · 16/12/2025
Adieu Apache Derby, Welcome DuckDB modern-sql.com/blog/2025-12...
modern-sql.com
DuckDB Coverage
Apache Derby is retired, ModernSQL now covers DuckDB instead
2225
Reposted by Markus Winand
Jake @honyocker.bsky.social · 16/12/2025
clever deflock solutions abound.
flock sql injection?
161
Reposted by Markus Winand
Markus Winand @winand.at · 28/11/2025
modern-sql.com now covers DuckDB.
modern-sql.com
Modern SQL: A lot has changed since SQL-92
SQL has evolved. Beyond the relational model. Discover it now.
24715
Markus Winand @winand.at · 28/11/2025
modern-sql.com now covers DuckDB.
modern-sql.com
Modern SQL: A lot has changed since SQL-92
SQL has evolved. Beyond the relational model. Discover it now.
24715
Reposted by Markus Winand
Picard Tips @picardtips.bsky.social · 26/11/2025
Picard engineering tip: Use the metric system.
131466