September 26, 2024: PostgreSQL 17 Released!
Supported Versions: Current (17) / 16 / 15 / 14 / 13 / 12
Development Versions: devel
Unsupported versions: 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0

D.2. Unsupported Features

The following features defined in SQL:2016 are not implemented in this release of PostgreSQL. In a few cases, equivalent functionality is available.

Identifier Core? Description Comment
B011   Embedded Ada  
B013   Embedded COBOL  
B014   Embedded Fortran  
B015   Embedded MUMPS  
B016   Embedded Pascal  
B017   Embedded PL/I  
B031   Basic dynamic SQL  
B032   Extended dynamic SQL  
B032-01   <describe input statement>  
B033   Untyped SQL-invoked function arguments  
B034   Dynamic specification of cursor attributes  
B035   Non-extended descriptor names  
B041   Extensions to embedded SQL exception declarations  
B051   Enhanced execution rights  
B111   Module language Ada  
B112   Module language C  
B113   Module language COBOL  
B114   Module language Fortran  
B115   Module language MUMPS  
B116   Module language Pascal  
B117   Module language PL/I  
B121   Routine language Ada  
B122   Routine language C  
B123   Routine language COBOL  
B124   Routine language Fortran  
B125   Routine language MUMPS  
B126   Routine language Pascal  
B127   Routine language PL/I  
B128   Routine language SQL  
B200   Polymorphic table functions  
B201   More than one PTF generic table parameter  
B202   PTF Copartitioning  
B203   More than one copartition specification  
B204   PRUNE WHEN EMPTY  
B205   Pass-through columns  
B206   PTF descriptor parameters  
B207   Cross products of partitionings  
B208   PTF component procedure interface  
B209   PTF extended names  
B211   Module language Ada: VARCHAR and NUMERIC support  
B221   Routine language Ada: VARCHAR and NUMERIC support  
F054   TIMESTAMP in DATE type precedence list  
F121   Basic diagnostics management  
F121-01   GET DIAGNOSTICS statement  
F121-02   SET TRANSACTION statement: DIAGNOSTICS SIZE clause  
F122   Enhanced diagnostics management  
F123   All diagnostics  
F263   Comma-separated predicates in simple CASE expression  
F291   UNIQUE predicate  
F301   CORRESPONDING in query expressions  
F312   MERGE statement consider INSERT ... ON CONFLICT DO UPDATE
F313   Enhanced MERGE statement  
F314   MERGE statement with DELETE branch  
F341   Usage tables no ROUTINE_*_USAGE tables
F403   Partitioned joined tables  
F404   Range variable for common column names  
F451   Character set definition  
F461   Named character sets  
F492   Optional table constraint enforcement  
F521   Assertions  
F671   Subqueries in CHECK intentionally omitted
F673   Reads SQL-data routine invocations in CHECK constraints  
F693   SQL-session and client module collations  
F695   Translation support  
F696   Additional translation documentation  
F721   Deferrable constraints foreign and unique keys only
F741   Referential MATCH types no partial match yet
F812 Core Basic flagging  
F813   Extended flagging  
F821   Local table references  
F831   Full cursor update  
F831-01   Updatable scrollable cursors  
F831-02   Updatable ordered cursors  
F841   LIKE_REGEX predicate  
F842   OCCURRENCES_REGEX function  
F843   POSITION_REGEX function  
F844   SUBSTRING_REGEX function  
F845   TRANSLATE_REGEX function  
F846   Octet support in regular expression operators  
F847   Nonconstant regular expressions  
F866   FETCH FIRST clause: PERCENT option  
R010   Row pattern recognition: FROM clause  
R020   Row pattern recognition: WINDOW clause  
R030   Row pattern recognition: full aggregate support  
S011 Core Distinct data types  
S011-01 Core USER_DEFINED_TYPES view  
S023   Basic structured types  
S024   Enhanced structured types  
S025   Final structured types  
S026   Self-referencing structured types  
S027   Create method by specific method name  
S028   Permutable UDT options list  
S041   Basic reference types  
S043   Enhanced reference types  
S051   Create table of type partially supported
S081   Subtables  
S091   Basic array support partially supported
S091-01   Arrays of built-in data types  
S091-02   Arrays of distinct types  
S091-03   Array expressions  
S094   Arrays of reference types  
S097   Array element assignment  
S151   Type predicate  
S161   Subtype treatment  
S162   Subtype treatment for references  
S202   SQL-invoked routines on multisets  
S231   Structured type locators  
S232   Array locators  
S233   Multiset locators  
S241   Transform functions  
S242   Alter transform statement  
S251   User-defined orderings  
S261   Specific type method  
S271   Basic multiset support  
S272   Multisets of user-defined types  
S274   Multisets of reference types  
S275   Advanced multiset support  
S281   Nested collection types  
S291   Unique constraint on entire row  
S401   Distinct types based on array types  
S402   Distinct types based on distinct types  
S403   ARRAY_MAX_CARDINALITY  
S404   TRIM_ARRAY  
T011   Timestamp in Information Schema  
T021   BINARY and VARBINARY data types  
T022   Advanced support for BINARY and VARBINARY data types  
T023   Compound binary literal  
T024   Spaces in binary literals  
T041   Basic LOB data type support  
T041-01   BLOB data type  
T041-02   CLOB data type  
T041-03   POSITION, LENGTH, LOWER, TRIM, UPPER, and SUBSTRING functions for LOB data types  
T041-04   Concatenation of LOB data types  
T041-05   LOB locator: non-holdable  
T042   Extended LOB data type support  
T043   Multiplier T  
T044   Multiplier P  
T051   Row types  
T053   Explicit aliases for all-fields reference  
T061   UCS support  
T076   DECFLOAT data type  
T101   Enhanced nullability determination  
T111   Updatable joins, unions, and columns  
T175   Generated columns mostly supported
T176   Sequence generator support supported except for NEXT VALUE FOR
T180   System-versioned tables  
T181   Application-time period tables  
T211   Basic trigger capability  
T211-06   Support for run-time rules for the interaction of triggers and constraints  
T211-08   Multiple triggers for the same event are executed in the order in which they were created in the catalog intentionally omitted
T251   SET TRANSACTION statement: LOCAL option  
T272   Enhanced savepoint management  
T301   Functional dependencies partially supported
T321 Core Basic SQL-invoked routines  
T321-05 Core RETURN statement  
T322   Declared data type attributes  
T324   Explicit security for SQL routines  
T326   Table functions  
T332   Extended roles mostly supported
T434   GROUP BY DISTINCT  
T471   Result sets return value  
T472   DESCRIBE CURSOR  
T495   Combined data change and retrieval different syntax
T502   Period predicates  
T511   Transaction counts  
T522   Default values for IN parameters of SQL-invoked procedures supported except DEFAULT key word in invocation
T561   Holdable locators  
T571   Array-returning external SQL-invoked functions  
T572   Multiset-returning external SQL-invoked functions  
T601   Local cursor references  
T616   Null treatment option for LEAD and LAG functions  
T618   NTH_VALUE function function exists, but some options missing
T619   Nested window functions  
T625   LISTAGG  
T641   Multiple column assignment only some syntax variants supported
T652   SQL-dynamic statements in SQL routines  
T654   SQL-dynamic statements in external routines  
T811   Basic SQL/JSON constructor functions  
T812   SQL/JSON: JSON_OBJECTAGG  
T813   SQL/JSON: JSON_ARRAYAGG with ORDER BY  
T814   Colon in JSON_OBJECT or JSON_OBJECTAGG  
T821   Basic SQL/JSON query operators  
T822   SQL/JSON: IS JSON WITH UNIQUE KEYS predicate  
T823   SQL/JSON: PASSING clause  
T824   JSON_TABLE: specific PLAN clause  
T825   SQL/JSON: ON EMPTY and ON ERROR clauses  
T826   General value expression in ON ERROR or ON EMPTY clauses  
T827   JSON_TABLE: sibling NESTED COLUMNS clauses  
T828   JSON_QUERY  
T829   JSON_QUERY: array wrapper options  
T830   Enforcing unique keys in SQL/JSON constructor functions  
T838   JSON_TABLE: PLAN DEFAULT clause  
T839   Formatted cast of datetimes to/from character strings  
M001   Datalinks  
M002   Datalinks via SQL/CLI  
M003   Datalinks via Embedded SQL  
M004   Foreign data support partially supported
M005   Foreign schema support  
M006   GetSQLString routine  
M007   TransmitRequest  
M009   GetOpts and GetStatistics routines  
M010   Foreign data wrapper support different API
M011   Datalinks via Ada  
M012   Datalinks via C  
M013   Datalinks via COBOL  
M014   Datalinks via Fortran  
M015   Datalinks via M  
M016   Datalinks via Pascal  
M017   Datalinks via PL/I  
M018   Foreign data wrapper interface routines in Ada  
M019   Foreign data wrapper interface routines in C different API
M020   Foreign data wrapper interface routines in COBOL  
M021   Foreign data wrapper interface routines in Fortran  
M022   Foreign data wrapper interface routines in MUMPS  
M023   Foreign data wrapper interface routines in Pascal  
M024   Foreign data wrapper interface routines in PL/I  
M030   SQL-server foreign data support  
M031   Foreign data wrapper general routines  
X012   Multisets of XML type  
X013   Distinct types of XML type  
X015   Fields of XML type  
X025   XMLCast  
X030   XMLDocument  
X038   XMLText  
X065   XMLParse: BLOB input and CONTENT option  
X066   XMLParse: BLOB input and DOCUMENT option  
X068   XMLSerialize: BOM  
X069   XMLSerialize: INDENT  
X073   XMLSerialize: BLOB serialization and CONTENT option  
X074   XMLSerialize: BLOB serialization and DOCUMENT option  
X075   XMLSerialize: BLOB serialization  
X076   XMLSerialize: VERSION  
X077   XMLSerialize: explicit ENCODING option  
X078   XMLSerialize: explicit XML declaration  
X080   Namespaces in XML publishing  
X081   Query-level XML namespace declarations  
X082   XML namespace declarations in DML  
X083   XML namespace declarations in DDL  
X084   XML namespace declarations in compound statements  
X085   Predefined namespace prefixes  
X086   XML namespace declarations in XMLTable  
X091   XML content predicate  
X096   XMLExists XPath 1.0 only
X100   Host language support for XML: CONTENT option  
X101   Host language support for XML: DOCUMENT option  
X110   Host language support for XML: VARCHAR mapping  
X111   Host language support for XML: CLOB mapping  
X112   Host language support for XML: BLOB mapping  
X113   Host language support for XML: STRIP WHITESPACE option  
X114   Host language support for XML: PRESERVE WHITESPACE option  
X131   Query-level XMLBINARY clause  
X132   XMLBINARY clause in DML  
X133   XMLBINARY clause in DDL  
X134   XMLBINARY clause in compound statements  
X135   XMLBINARY clause in subqueries  
X141   IS VALID predicate: data-driven case  
X142   IS VALID predicate: ACCORDING TO clause  
X143   IS VALID predicate: ELEMENT clause  
X144   IS VALID predicate: schema location  
X145   IS VALID predicate outside check constraints  
X151   IS VALID predicate with DOCUMENT option  
X152   IS VALID predicate with CONTENT option  
X153   IS VALID predicate with SEQUENCE option  
X155   IS VALID predicate: NAMESPACE without ELEMENT clause  
X157   IS VALID predicate: NO NAMESPACE with ELEMENT clause  
X160   Basic Information Schema for registered XML Schemas  
X161   Advanced Information Schema for registered XML Schemas  
X170   XML null handling options  
X171   NIL ON NO CONTENT option  
X181   XML(DOCUMENT(UNTYPED)) type  
X182   XML(DOCUMENT(ANY)) type  
X190   XML(SEQUENCE) type  
X191   XML(DOCUMENT(XMLSCHEMA)) type  
X192   XML(CONTENT(XMLSCHEMA)) type  
X200   XMLQuery  
X201   XMLQuery: RETURNING CONTENT  
X202   XMLQuery: RETURNING SEQUENCE  
X203   XMLQuery: passing a context item  
X204   XMLQuery: initializing an XQuery variable  
X205   XMLQuery: EMPTY ON EMPTY option  
X206   XMLQuery: NULL ON EMPTY option  
X211   XML 1.1 support  
X222   XML passing mechanism BY REF parser accepts BY REF but ignores it; passing is always BY VALUE
X231   XML(CONTENT(UNTYPED)) type  
X232   XML(CONTENT(ANY)) type  
X241   RETURNING CONTENT in XML publishing  
X242   RETURNING SEQUENCE in XML publishing  
X251   Persistent XML values of XML(DOCUMENT(UNTYPED)) type  
X252   Persistent XML values of XML(DOCUMENT(ANY)) type  
X253   Persistent XML values of XML(CONTENT(UNTYPED)) type  
X254   Persistent XML values of XML(CONTENT(ANY)) type  
X255   Persistent XML values of XML(SEQUENCE) type  
X256   Persistent XML values of XML(DOCUMENT(XMLSCHEMA)) type  
X257   Persistent XML values of XML(CONTENT(XMLSCHEMA)) type  
X260   XML type: ELEMENT clause  
X261   XML type: NAMESPACE without ELEMENT clause  
X263   XML type: NO NAMESPACE with ELEMENT clause  
X264   XML type: schema location  
X271   XMLValidate: data-driven case  
X272   XMLValidate: ACCORDING TO clause  
X273   XMLValidate: ELEMENT clause  
X274   XMLValidate: schema location  
X281   XMLValidate with DOCUMENT option  
X282   XMLValidate with CONTENT option  
X283   XMLValidate with SEQUENCE option  
X284   XMLValidate: NAMESPACE without ELEMENT clause  
X286   XMLValidate: NO NAMESPACE with ELEMENT clause  
X300   XMLTable XPath 1.0 only
X305   XMLTable: initializing an XQuery variable  

Submit correction

If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.