Sign in

Markus Winand

@winand.at
1.4K followers 67 following 296 posts

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

PostsRepliesMedia
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 · 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 · 22/01/2026
Quelle: Der Standard
010
Markus Winand @winand.at · 05/09/2025
My favorite change is that MariaDB got an improved implementation of the WHERE year(...) = ? rewriting. use-the-index-luke.com/blog/2024-12... In picture: the green check mark used to be yellow, with the "a" footnote: Unconditionally rewritten — even if only a matching function-based index exists
072
Markus Winand @winand.at · 23/04/2025
I wish I was running my business in a garage. I'd have more space there. Related: New mugs arrived: use-the-index-luke.com/shop#mugplus...
Picture of a coffee mug featuring the "Use The Index, Luke!" mascot.
070
Markus Winand @winand.at · 18/12/2024
I think the reason for that is the legal dispute that caused the SEQUEL→SQL renaming. The reunion paper (pic) doesn't say it explicitly, but I'd guess that the removing the vowels trick requires a different pronunciation too (but that is just my interpretation). www.mcjones.org/System_R/SQL...
A bunch of things were happening at about this time that
I think we ought to mention just in passing. One was that
we had to change the name of our language from SEQUEL
to SQL. And the reason that we had to do that was because
of a legal challenge that came from a lawyer. Mike, you
probably can help me out with this. I believe it was from the
Hawker Siddeley Aircraft Company in Great Britain, that
said SEQUEL was their registered trademark. We never
found out what kind of an aircraft a SEQUEL was, but they
said we couldn’t use their name anymore, so we had to
figure out what to do about that. I think I was the one who
condensed all the vowels out of SEQUEL to turn it into
SQL, based on the pattern of APL and languages that had
three-lettered names that end in L. So that was how that
happened.
110
Markus Winand @winand.at · 18/12/2024
The article just says how it is typically pronounced — but doesn't say what is correct. I, for myself, refer to the standard itself. Part 1 has a clear answer (picture).
The name “SQL” is correctly pronounced “ess cue ell,” instead of the somewhat common “sequel”.
430
Markus Winand @winand.at · 11/12/2024
Big Data was yesterday. Today we've got Colossal Data! www.commitstrip.com/en/2014/06/0... Just because the comic is old doesn't mean it's wrong.
3214
Markus Winand @winand.at · 05/12/2024
TIL: MySQL's TIMESTAMP doesn't even provide the full 32bit epoch as it starts one second after 1970-01-01 00:00:00Z. dev.mysql.com/doc/refman/9...
071
Markus Winand @winand.at · 03/12/2024
(1) It’s slow; (2) is gives you wrong results. What else do you need? The main problem is that the number of rows you have seen in the past cannot be used to find the spot where you stopped over the last time. Since then, new rows might have arrived.
Visualization of drifting: The first 10 rows now might not be the first 10 rows later.
110
Markus Winand @winand.at · 29/11/2024
JSON support in SQL is not about storing JSON documents¹. While storing JSON in SQL tables is possible and sometimes quite useful, the true power of JSON in SQL comes from the ability to *process* JSON within SQL.
31810
Markus Winand @winand.at · 28/11/2024
Just scheduled the first round of trainings 2025. Now also offering a US shift (9am pacific). Also pimped my concurrency training. Read more at my website: winand.at/newsletter/2...
074
Markus Winand @winand.at · 13/11/2024
For those of you who like stickers. I'll ship mine to you—totally free. Coasters will also be in the package. use-the-index-luke.com/shop
161
Markus Winand @winand.at · 13/11/2024
SQL's data types CHAR and VARCHAR are about characters. Sounds like a no-brainer, doesn't it? Well, a consequence is that the number in the parenthesis refer to characters, not bytes. Unfortunately, some SQL engines don't get that right—causing major confusion among users.
160
Markus Winand @winand.at · 08/11/2024
SQL's FILTER clause should be easy to implement for every engine. Why is it still not supported widely? Sure it can be emulated easily—and ugly. The value on readability (and learning) is huge. Please vendors: Just get it done. modern-sql.com/feature/filter
073
Markus Winand @winand.at · 25/10/2024
For this WHERE, what index to create? WHERE subsidiary_id = 42 AND last_name LIKE '%INA%' Is (subsidiary_id) enough or should it be (subsidiary_id, last_name)? A decade ago I prepared an animation for that. use-the-index-luke.com/sql/clusteri...
130
Markus Winand @winand.at · 25/10/2024
😱
Developers will not necessarily understand how to manage database transactions effectively when using JDBC. Thus, if handling transactions manually, developers may not start them where appropriate or not at all. The same problem applies to issuing commits or rollbacks where necessary.

To get around this problem, the auto-commit mode in JDBC provides a way to execute SQL statements with transaction management handled automatically by the JDBC driver.
011
Markus Winand @winand.at · 01/03/2024
Sneak peek. First here on Blue Sky — the others have to wait (probably some month). Can you guess about which SQL-Feature this chart is about?
010
Markus Winand @winand.at · 19/12/2023
Last orders please! The next "SQL Reloaded" training has some seats left. The training covers a lot what you already know, but much deeper than you every thought about it. Online, as a series of six two-hour units. Starting Jan 9th. More info: winand.at/sql-training...
000
Markus Winand @winand.at · 12/12/2023
On the way to pgconf.eu. Also: I hope to win the ”most outdated profile picture“ competition.
000