--- title: "Unsupported Features" id: unsupported-features-sql-standard pg_version: "20devel" --- ## D.2. Unsupported Features The following features defined in SQL:2023 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 | | | B030 | | Enhanced dynamic SQL | | | B031 | | Basic dynamic SQL | | | B032 | | Extended dynamic SQL | | | B033 | | Untyped SQL-invoked function arguments | | | B034 | | Dynamic specification of cursor attributes | | | B035 | | Non-extended descriptor names | | | B036 | | Describe input statement | | | 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 | | | 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 | | | F120 | | Get diagnostics statement | | | F121 | | Basic diagnostics management | | | F122 | | Enhanced diagnostics management | | | F123 | | All diagnostics | | | F124 | | SET TRANSACTION statement: DIAGNOSTICS SIZE clause | | | F263 | | Comma-separated predicates in simple CASE expression | | | F291 | | UNIQUE predicate | | | F301 | | CORRESPONDING in query expressions | | | F403 | | Partitioned join tables | | | F451 | | Character set definition | | | F461 | | Named character sets | | | F521 | | Assertions | | | F671 | | Subqueries in CHECK constraints | 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 | | Basic flagging | | | F813 | | Extended flagging | | | F821 | | Local table references | | | F831 | | Full cursor update | | | F832 | | Updatable scrollable cursors | | | F833 | | Updatable ordered cursors | | | F841 | | LIKE_REGEX predicate | consider regexp_like() | | F842 | | OCCURRENCES_REGEX function | consider regexp_matches() | | F843 | | POSITION_REGEX function | consider regexp_instr() | | F844 | | SUBSTRING_REGEX function | consider regexp_substr() | | F845 | | TRANSLATE_REGEX function | consider regexp_replace() | | F846 | | Octet support in regular expression operators | | | F847 | | Non-constant regular expressions | | | F866 | | FETCH FIRST clause: PERCENT option | | | G002 | | Different-edges match mode | | | G003 | | Explicit REPEATABLE ELEMENTS keyword | | | G004 | | Path variables | | | G005 | | Path search prefix in a path pattern | | | G006 | | Graph pattern KEEP clause: path mode prefix | | | G007 | | Graph pattern KEEP clause: path search prefix | | | G010 | | Explicit WALK keyword | | | G011 | | Advanced path modes: TRAIL | | | G012 | | Advanced path modes: SIMPLE | | | G013 | | Advanced path modes: ACYCLIC | | | G014 | | Explicit PATH/PATHS keywords | | | G015 | | All path search: explicit ALL keyword | | | G016 | | Any path search | | | G017 | | All shortest path search | | | G018 | | Any shortest path search | | | G019 | | Counted shortest path search | | | G020 | | Counted shortest group search | | | G030 | | Path multiset alternation | | | G031 | | Path multiset alternation: variable length path operands | | | G032 | | Path pattern union | | | G033 | | Path pattern union: variable length path operands | | | G035 | | Quantified paths | | | G036 | | Quantified edges | | | G037 | | Questioned paths | | | G038 | | Parenthesized path pattern expression | | | G039 | | Simplified path pattern expression: full defaulting | | | G041 | | Non-local element pattern predicates | | | G043 | | Complete full edge patterns | | | G045 | | Complete abbreviated edge patterns | | | G046 | | Relaxed topological consistency: adjacent vertex patterns | | | G047 | | Relaxed topological consistency: concise edge patterns | | | G048 | | Parenthesized path pattern: subpath variable declaration | | | G049 | | Parenthesized path pattern: path mode prefix | | | G050 | | Parenthesized path pattern: WHERE clause | | | G051 | | Parenthesized path pattern: non-local predicates | | | G060 | | Bounded graph pattern quantifiers | | | G061 | | Unbounded graph pattern quantifiers | | | G071 | | Label expression: label conjunction | | | G072 | | Label expression: label negation | | | G074 | | Label expression: wildcard label | | | G075 | | Parenthesized label expression | | | G080 | | Simplified path pattern expression: basic defaulting | | | G081 | | Simplified path pattern expression: full overrides | | | G082 | | Simplified path pattern expression: basic overrides | | | G100 | | ELEMENT_ID function | | | G110 | | IS DIRECTED predicate | | | G111 | | IS LABELED predicate | | | G112 | | IS SOURCE and IS DESTINATION predicate | | | G113 | | ALL_DIFFERENT predicate | | | G114 | | SAME predicate | | | G115 | | PROPERTY_EXISTS predicate | | | G120 | | Within-match aggregates | | | G800 | | PATH_NAME function | | | G801 | | ELEMENT_NUMBER function | | | G802 | | PATH_LENGTH function | | | G803 | | MATCHNUM function | | | G810 | | IS BOUND predicate | | | G811 | | IS BOUND predicate: AS option | | | G820 | | BINDING_COUNT | | | G830 | | Colon in 'is label' expression | | | G840 | | Path-ordered aggregates | | | G860 | | GET DIAGNOSTICS enhancements for SQL-property graphs | | | G901 | | GRAPH_TABLE: ONE ROW PER VERTEX | | | G902 | | GRAPH_TABLE: ONE ROW PER STEP | | | G903 | | GRAPH_TABLE: explicit ONE ROW PER MATCH keywords | | | G904 | | All properties reference | | | G905 | | GRAPH_TABLE: optional COLUMNS clause | | | G906 | | GRAPH_TABLE: explicit EXPORT ALL | | | G907 | | GRAPH_TABLE: EXPORT ALL EXCEPT | | | G908 | | GRAPH_TABLE: EXPORT SINGLETONS list | | | G909 | | GRAPH_TABLE: explicit EXPORT NO SINGLETONS | | | G910 | | GRAPH_TABLE: 'in paths clause' | | | G923 | | In-line views as element tables | | | G929 | | Labels and properties: EXCEPT list | | | 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 | | S093 | | Arrays of distinct types | | | S094 | | Arrays of reference types | | | S097 | | Array element assignment | | | S151 | | Type predicate | see 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 multiset 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 literals | | | T024 | | Spaces in binary literals | | | T039 | | CLOB locator: non-holdable | | | T040 | | Concatenation of CLOBs | | | T041 | | Basic LOB data type support | | | T042 | | Extended LOB data type support | | | T043 | | Multiplier T | | | T044 | | Multiplier P | | | T045 | | BLOB data type | | | T046 | | CLOB data type | | | T047 | | POSITION, OCTET_LENGTH, TRIM, and SUBSTRING for BLOBs | | | T048 | | Concatenation of BLOBs | | | T049 | | BLOB locator: non-holdable | | | T050 | | POSITION, CHAR_LENGTH, OCTET_LENGTH, LOWER, TRIM, UPPER, and SUBSTRING for CLOBs | | | T051 | | Row types | | | T053 | | Explicit aliases for all-fields reference | | | T062 | | Character length units | | | 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 | | | T200 | | Trigger DDL | similar but not fully compatible | | T211 | | Basic trigger capability | | | T218 | | Multiple triggers for the same event executed in the order created | intentionally omitted | | T231 | | Sensitive cursors | | | T251 | | SET TRANSACTION statement: LOCAL option | | | T262 | | Multiple server transactions | | | T272 | | Enhanced savepoint management | | | T301 | | Functional dependencies | partially supported | | T321 | Core | Basic SQL-invoked routines | partially supported | | 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 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 | | | 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 | | | T801 | | JSON data type | | | T802 | | Enhanced JSON data type | | | T839 | | Formatted cast of datetimes to/from character strings | | | T860 | | SQL/JSON simplified accessor: column reference only | | | T861 | | SQL/JSON simplified accessor: case-sensitive JSON member accessor | | | T862 | | SQL/JSON simplified accessor: wildcard member accessor | | | T863 | | SQL/JSON simplified accessor: single-quoted string literal as member accessor | | | T864 | | SQL/JSON simplified accessor | | | T881 | | JSON in ordering operations | with jsonb, partially supported | | T882 | | JSON in multiset element grouping operations | | | 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 | | | X065 | | XMLParse: binary string input and CONTENT option | | | X066 | | XMLParse: binary string input and DOCUMENT option | | | X068 | | XMLSerialize: BOM | | | X073 | | XMLSerialize: binary string serialization and CONTENT option | | | X074 | | XMLSerialize: binary string serialization and DOCUMENT option | | | X075 | | XMLSerialize: binary string 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 | |