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.

IdentifierCore?DescriptionComment
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 statementconsider INSERT ... ON CONFLICT DO UPDATE
F313 Enhanced MERGE statement 
F314 MERGE statement with DELETE branch 
F403 Partitioned joined tables 
F451 Character set definition 
F461 Named character sets 
F492 Optional table constraint enforcement 
F521 Assertions 
F671 Subqueries in CHECKintentionally 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 constraintsforeign and unique keys only
F741 Referential MATCH typesno partial match yet
F812CoreBasic 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 
S011CoreDistinct data types 
S011-01CoreUSER_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 typepartially supported
S081 Subtables 
S091 Basic array supportpartially 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 predicatesee pg_typeof()
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 
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 columnsmostly supported
T176 Sequence generator supportsupported 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 catalogintentionally omitted
T231 Sensitive cursors 
T251 SET TRANSACTION statement: LOCAL option 
T272 Enhanced savepoint management 
T301 Functional dependenciespartially supported
T321CoreBasic SQL-invoked routines 
T321-05CoreRETURN statement 
T322 Declared data type attributes 
T324 Explicit security for SQL routines 
T326 Table functions 
T471 Result sets return value 
T472 DESCRIBE CURSOR 
T495 Combined data change and retrievaldifferent syntax
T502 Period predicates 
T511 Transaction counts 
T522 Default values for IN parameters of SQL-invoked proceduressupported 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 functionfunction exists, but some options missing
T619 Nested window functions 
T625 LISTAGG 
T641 Multiple column assignmentonly 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 supportpartially supported
M005 Foreign schema support 
M006 GetSQLString routine 
M007 TransmitRequest 
M009 GetOpts and GetStatistics routines 
M010 Foreign data wrapper supportdifferent 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 Cdifferent 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 XMLExistsXPath 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 REFparser 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 XMLTableXPath 1.0 only
X305 XMLTable: initializing an XQuery variable