Markus Winand
banner
winand.at
Markus Winand
@winand.at
SQL Renaissance Ambassador. Author, Trainer, Coach. PhD in Common Sense. Creator of http://use-the-index-luke.com and http://modern-sql.com.
Pinned
Teaching is about making students reach the same level of understanding as the teacher—but with less mental effort.

This allows students to put their mental efforts into growing beyond their teachers.
Reposted by Markus Winand
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!
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.
buff.ly
February 13, 2026 at 12:02 PM
Which was wrong?
February 13, 2026 at 1:08 PM
Gilbert U-238 Atomic Energy Laboratory – Wikipedia
de.wikipedia.org
February 10, 2026 at 4:20 PM
Reposted by Markus Winand
Claude's C Compiler vs. GCC | Discussion
CCC vs GCC
A Guide to comparing Claude Code Compiler with GCC
harshanu.space
February 9, 2026 at 5:40 AM
Thanks. It's fixed. I did indeed not understand your first comment ;)
February 6, 2026 at 5:51 AM
SQL Comments, Please!
modern-sql.com/caniuse/comm...
Comments Inside SQL Statements
C-style comments work in SQL, with nesting
modern-sql.com
February 5, 2026 at 8:18 AM
Reposted by Markus Winand
What is random, but actually useful, things you wish you had a SQL interface for?
February 4, 2026 at 3:15 PM
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.
Infinite Recursion Guards
Protection against infinite loops for WITH RECURSIVE.
modern-sql.com
February 2, 2026 at 2:37 PM
Time to re-watch The Terminator (1984)
February 1, 2026 at 1:36 PM
If 26ai means 23.26.1 but not 23.26.0, then yes :)
January 28, 2026 at 2:51 PM
Oh, BTW, I’m also ecstatic about ASSERTION, but I’ll need some time to cover it on modern-sql.com.
January 28, 2026 at 2:28 PM
FILTER was the first feature I covered on modern-sql.com, only supported by PostgreSQL at the time. In the meanwhile, half the system I cover support FILTER. Frankly speaking, I cannot understand why there are still systems not support such a simple, easy to understand and useful feature.
January 28, 2026 at 2:28 PM
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 :)

🧵
January 28, 2026 at 2:28 PM
Permission granted ;) Go ahead.

I’d expect that the app should use prepared statements when it is designed to executes the same query often.
January 24, 2026 at 5:33 PM
Latencies are often
misunderstood. Also the IO latency in cloud environments, which are often many factors higher as on local discs (during development).
January 24, 2026 at 1:38 PM
Probably coming in PostgreSQL 19, btw.
January 23, 2026 at 8:09 AM
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
T616, “Null treatment option for LEAD and LAG functions”
T616, “Null treatment option for LEAD and LAG functions” in SQL
modern-sql.com
January 22, 2026 at 12:47 PM
From the license perspective a tarball would be fine.

But I think open source is more than that. For me it is a spectrum where MySQL is pretty close to the least openness.
January 22, 2026 at 8:54 AM
Quelle: Der Standard
January 22, 2026 at 5:53 AM
Reposted by Markus Winand
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.

🧵
January 21, 2026 at 12:45 PM
The linked manual says

INSTALL COMPONENT 'file://classic_hashing'

but for me only

INSTALL COMPONENT 'file://component_classic_hashing'

works.
January 21, 2026 at 4:53 PM
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...
MySQL :: MySQL 9.6 Reference Manual :: 7.5.8 Legacy Hashing Component
dev.mysql.com
January 21, 2026 at 4:53 PM
Other arguments made in those recent posts may or may not be accurate. However, one may question to which extend Oracle’s Git push practice (among others) is in the spirit of open source.

The end.
January 21, 2026 at 12:45 PM