MarkusWinand
Besides portability, there is IMHO nothing against INSERT ... ON CONFLICT if it does what you need.
Without Overlaps Constraints in SQL
Adieu Apache Derby, Welcome DuckDB
Group by all: A popular, soon-to-be-standard SQL feature
Survey on performance optimization for database systems (2023)
The ANY_VALUE Aggregate Function: New in SQL:2023–and a better feature from 1999
GPT in 500 Lines of SQL
Pspg: Unix pager designed for work with tables
It's there already!
It's in the chart as footnote "b": Outer reference must be the only argument (doesn’t support F441)
That's the one thing SQL Server doesn't eat. Those that are green in the chart work fine in this case.
I'd go for CHECK constraints first: https://www.sqlite.org/lang_createtable.html#ckconst
> Procedural SQL [...] Choose your investment here carefully.
I think that the demand for procedual code has dropped drastically in the past decades as the "normal" SQL can solve so many more things with window functions, recursion, and so forth. So I'd say: Yes, choose your investment wisely and stay away from procedural SQL as long as possible.
Can you tell me: what kind of identifier is it (view name, function name) and which SQL context it causes problems (select list, create/drop statement, ...) and which system has problems with it. Thx.
All charts on modern-sql.com are backed by tests. I also keep them up-to-date by running them for new releases when they appear.
Also, which features in particular are you missing in PostgreSQL? Merge was added with PostgreSQL 15 a year ago: https://modern-sql.com/caniuse/merge
It also not aimed at users, but at implementors. Funny enough, they don't read the standard either ;) But more seriously: Some implementations are old and generally vendors prefer not changing the behavior of their product. When the standard comes later, the train has already departed. The most critical incompatibilities are in the elder features. The newer ones have a tendency the be more aligned with standard behavior (e.g. window functions are typically implemented just fine).
> They haven't gotten as far as working out variables or function composition either [0].
Part 2 SQL[0] is declarative and intentionally doesn't have variables. Part 4 SQL (aka "pl" SQL) does have variables. I personally consider Part 4 obsolete on systems that have sufficient modern Part 2 support.
> Tying SQL to your specific database is the best option for performance. Writing database-independent SQL is somethign of a fools errand, it is either trivial performance-insensitive enough that you should be using a code generator or complex enough to deserve DB-specific turning.
While this is certainly true for some cases there are also plenty of examples where the standard SQL is more concise and less error prone than product-specific alternatives. E.g. there COALESCE is the way to go rather than isnull, ifnull, nvl, or the like (typically limited to two arguments, sometimes strange treatment of different types).
There is a lot of *unnecessary* vendor-lock in in the field.
There I also look at limitations of some implementations and problems such as not reporting ambiguous column names — just guessing what you mean ;)
But thanks for the feedback. There is a rework pending anyway.
Having that said: free would be better.
A problem everbody would love to have but pretty much nobody actually has.
- SQL/PGQ - A Graph Query Language - JSON improvements (a JSON type, simplified notations)
Peter Eisentraut gives a nice overview here: http://peter.eisentraut.org/blog/2023/04/04/sql-2023-is-fini...