As of September 2020, PostgreSQL claims to support most of the SQL:2016 standard, but the numbers in don't match up at all. From PostgreSQL's documentation:

As of the version 13 release in September 2020, PostgreSQL conforms to at least 170 of the 179 mandatory features for SQL:2016 Core conformance. (emphasis mine)

So 9 features are unsupported. But elsewhere, PostgreSQL lists all the features of SQL:2016 that it doesn't support, and there's 309 features listed. This is more unsupported features than the first page claimed even exist in SQL:2016. Granted, some of the unsupported features are irrelevant, like "Embedded Ada" or "Module Language COBOL", but either way, there's way more than 9 unsupported features listed here. And I don't think that SQL:2016 changed so much (or even at all) between 2020 and 2021, so that can't be the reason for the mismatch.

I thought that individual unsupported features might be grouped together into 9 "features" somehow, e.g. all features involving support for dead languages are counted as one feature, and all XML-related features are counted as one feature, etc., but after skimming through the list of 309 unsupported features, I don't see any clear way to do this.

So, why the discrepancy? Is it because of individual features being grouped together, or is it something else?


Features in the SQL standard are split between mandatory features and optional features.

As stated here

Out of 177 mandatory features required for full Core conformance, PostgreSQL conforms to at least 170. In addition, there is a long list of supported optional features

(emphasis mine)

So the discrepancy you are seeing, stems from the difference between mandatory and optional features.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.