Modern SQL retweeted
New post: Structured Primary Keys
For consistency and performance.
modern-sql.com/blog/2026-06/…
The SQL/JSON Path item-method .keyvalue() has an interesting history in the Oracle Database.
modern-sql.com/caniuse/keyva…
In 23.26.2 it works, but not in ?( filter ) context.
Modern SQL retweeted
MariaDB 12.3.2 was released last week.
It's 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.
Replying to @damassima
For the avoidance of misunderstandings: PostgreSQL *can* use expressions in ORDER BY, but they must not contain the names of columns from the SELECT clause.
ORDER BY Has Come a Long Way
modern-sql.com/blog/2026-05/…
The ORDER BY clause is one of the best-known SQL clauses. Yet there are a number of common misunderstandings that are worth clearing up. The article walks you through the evolution of the ORDER BY clause in the SQL standard.
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
@MarkusWinand investigates modern-sql.com/blog/2026-03/…
Replying to @rwmarti
Neither would I expect the order-equivalence rule to cover different SELECTs. The wording is very open. I'm sure it covers different OVER clauses of the same SELECT (and DBMS) though.
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.
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.
The just released version 23.26.1 of the Oracle DB supports the FILTER clause.
modern-sql.com/feature/filte…
WITHOUT OVERLAPS Constraints
modern-sql.com/caniuse/witho…
New in PostreSQL 18. Since 9.2, EXCLUDE constraints can be used for the same purpose.
Adieu Apache Derby, Welcome DuckDB
modern-sql.com/blog/2025-12/…
Modern SQL retweeted
modern-sql.com/ now covers DuckDB.
GROUP BY ALL
Very popular, not yet standard but set to become standard. Also expected for PostgreSQL 19.
modern-sql.com/caniuse/group…
Modern SQL retweeted
Oracle 26ai¹ was released yesterday.
Noteworthy SQL addition: QUALIFY.
modern-sql.com/caniuse/quali…
I bet this starts an avalanche (there are already PostgreSQL patches).
¹ 26ai is the marketing version, 23.26.0 is the technical version.
Modern SQL retweeted
After being « gone fishin' » during summertime I just updated my website for the releases that happened during that time:
* MariaDB 11.8 and 12.0
* Oracle 23.9
* Db2 12.1.2
All charts on modern-sql.com/ and use-the-index-luke.com are updated.
Just updated modern-sql.com and use-the-index-luke.com for MariaDB 11.7.
One enhancement is the FROM-clause column renaming, as described in this article: modern-sql.com/caniuse/E051-…
Modern SQL retweeted
A Christmas present for SQL standard lovers?
Part 1 is available for free again.
standards.iso.org/ittf/Publi…
The last edition that was available for free was 2011, AFAIK. And that disappeared when 2016 was released.
Merry Christmas :)
Modern SQL retweeted
The scraping of content for AI training makes some changes required. I'll publish less on my website and RSS feed. The mailing lists will probably stay the same for the time being. If you want to still get everything, subscribe here:
winand.at/lists



