D.1. Supported Features
Prev | Up | Appendix D. SQL Conformance | Home | Next

## D.1. Supported Features #

Identifier | Core? | Description | Comment
--- | --- | --- | ---
B012 |  | Embedded C |
B021 |  | Direct SQL |
B128 |  | Routine language SQL |
E011 | Core | Numeric data types |
E011-01 | Core | INTEGER and SMALLINT data types |
E011-02 | Core | REAL, DOUBLE PRECISION, and FLOAT data types |
E011-03 | Core | DECIMAL and NUMERIC data types |
E011-04 | Core | Arithmetic operators |
E011-05 | Core | Numeric comparison |
E011-06 | Core | Implicit casting among the numeric data types |
E021 | Core | Character data types |
E021-01 | Core | CHARACTER data type |
E021-02 | Core | CHARACTER VARYING data type |
E021-03 | Core | Character literals |
E021-04 | Core | CHARACTER_LENGTH function | trims trailing spaces from CHARACTER values before counting
E021-05 | Core | OCTET_LENGTH function |
E021-06 | Core | SUBSTRING function |
E021-07 | Core | Character concatenation |
E021-08 | Core | UPPER and LOWER functions |
E021-09 | Core | TRIM function |
E021-10 | Core | Implicit casting among the character string types |
E021-11 | Core | POSITION function |
E021-12 | Core | Character comparison |
E031 | Core | Identifiers |
E031-01 | Core | Delimited identifiers |
E031-02 | Core | Lower case identifiers |
E031-03 | Core | Trailing underscore |
E051 | Core | Basic query specification |
E051-01 | Core | SELECT DISTINCT |
E051-02 | Core | GROUP BY clause |
E051-04 | Core | GROUP BY can contain columns not in <select list> |
E051-05 | Core | Select list items can be renamed |
E051-06 | Core | HAVING clause |
E051-07 | Core | Qualified * in select list |
E051-08 | Core | Correlation names in the FROM clause |
E051-09 | Core | Rename columns in the FROM clause |
E061 | Core | Basic predicates and search conditions |
E061-01 | Core | Comparison predicate |
E061-02 | Core | BETWEEN predicate |
E061-03 | Core | IN predicate with list of values |
E061-04 | Core | LIKE predicate |
E061-05 | Core | LIKE predicate ESCAPE clause |
E061-06 | Core | NULL predicate |
E061-07 | Core | Quantified comparison predicate |
E061-08 | Core | EXISTS predicate |
E061-09 | Core | Subqueries in comparison predicate |
E061-11 | Core | Subqueries in IN predicate |
E061-12 | Core | Subqueries in quantified comparison predicate |
E061-13 | Core | Correlated subqueries |
E061-14 | Core | Search condition |
E071 | Core | Basic query expressions |
E071-01 | Core | UNION DISTINCT table operator |
E071-02 | Core | UNION ALL table operator |
E071-03 | Core | EXCEPT DISTINCT table operator |
E071-05 | Core | Columns combined via table operators need not have exactly the same data type |
E071-06 | Core | Table operators in subqueries |
E081 | Core | Basic Privileges |
E081-01 | Core | SELECT privilege |
E081-02 | Core | DELETE privilege |
E081-03 | Core | INSERT privilege at the table level |
E081-04 | Core | UPDATE privilege at the table level |
E081-05 | Core | UPDATE privilege at the column level |
E081-06 | Core | REFERENCES privilege at the table level |
E081-07 | Core | REFERENCES privilege at the column level |
E081-08 | Core | WITH GRANT OPTION |
E081-09 | Core | USAGE privilege |
E081-10 | Core | EXECUTE privilege |
E091 | Core | Set functions |
E091-01 | Core | AVG |
E091-02 | Core | COUNT |
E091-03 | Core | MAX |
E091-04 | Core | MIN |
E091-05 | Core | SUM |
E091-06 | Core | ALL quantifier |
E091-07 | Core | DISTINCT quantifier |
E101 | Core | Basic data manipulation |
E101-01 | Core | INSERT statement |
E101-03 | Core | Searched UPDATE statement |
E101-04 | Core | Searched DELETE statement |
E111 | Core | Single row SELECT statement |
E121 | Core | Basic cursor support |
E121-01 | Core | DECLARE CURSOR |
E121-02 | Core | ORDER BY columns need not be in select list |
E121-03 | Core | Value expressions in ORDER BY clause |
E121-04 | Core | OPEN statement |
E121-06 | Core | Positioned UPDATE statement |
E121-07 | Core | Positioned DELETE statement |
E121-08 | Core | CLOSE statement |
E121-10 | Core | FETCH statement implicit NEXT |
E121-17 | Core | WITH HOLD cursors |
E131 | Core | Null value support (nulls in lieu of values) |
E141 | Core | Basic integrity constraints |
E141-01 | Core | NOT NULL constraints |
E141-02 | Core | UNIQUE constraints of NOT NULL columns |
E141-03 | Core | PRIMARY KEY constraints |
E141-04 | Core | Basic FOREIGN KEY constraint with the NO ACTION default for both referential delete action and referential update action |
E141-06 | Core | CHECK constraints |
E141-07 | Core | Column defaults |
E141-08 | Core | NOT NULL inferred on PRIMARY KEY |
E141-10 | Core | Names in a foreign key can be specified in any order |
E151 | Core | Transaction support |
E151-01 | Core | COMMIT statement |
E151-02 | Core | ROLLBACK statement |
E152 | Core | Basic SET TRANSACTION statement |
E152-01 | Core | SET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clause |
E152-02 | Core | SET TRANSACTION statement: READ ONLY and READ WRITE clauses |
E153 | Core | Updatable queries with subqueries |
E161 | Core | SQL comments using leading double minus |
E171 | Core | SQLSTATE support |
E182 | Core | Host language binding |
F021 | Core | Basic information schema |
F021-01 | Core | COLUMNS view |
F021-02 | Core | TABLES view |
F021-03 | Core | VIEWS view |
F021-04 | Core | TABLE_CONSTRAINTS view |
F021-05 | Core | REFERENTIAL_CONSTRAINTS view |
F021-06 | Core | CHECK_CONSTRAINTS view |
F031 | Core | Basic schema manipulation |
F031-01 | Core | CREATE TABLE statement to create persistent base tables |
F031-02 | Core | CREATE VIEW statement |
F031-03 | Core | GRANT statement |
F031-04 | Core | ALTER TABLE statement: ADD COLUMN clause |
F031-13 | Core | DROP TABLE statement: RESTRICT clause |
F031-16 | Core | DROP VIEW statement: RESTRICT clause |
F031-19 | Core | REVOKE statement: RESTRICT clause |
F032 |  | CASCADE drop behavior |
F033 |  | ALTER TABLE statement: DROP COLUMN clause |
F034 |  | Extended REVOKE statement |
F035 |  | REVOKE with CASCADE |
F036 |  | REVOKE statement performed by non-owner |
F037 |  | REVOKE statement: GRANT OPTION FOR clause |
F038 |  | REVOKE of a WITH GRANT OPTION privilege |
F041 | Core | Basic joined table |
F041-01 | Core | Inner join (but not necessarily the INNER keyword) |
F041-02 | Core | INNER keyword |
F041-03 | Core | LEFT OUTER JOIN |
F041-04 | Core | RIGHT OUTER JOIN |
F041-05 | Core | Outer joins can be nested |
F041-07 | Core | The inner table in a left or right outer join can also be used in an inner join |
F041-08 | Core | All comparison operators are supported (rather than just =) |
F051 | Core | Basic date and time |
F051-01 | Core | DATE data type (including support of DATE literal) |
F051-02 | Core | TIME data type (including support of TIME literal) with fractional seconds precision of at least 0 |
F051-03 | Core | TIMESTAMP data type (including support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6 |
F051-04 | Core | Comparison predicate on DATE, TIME, and TIMESTAMP data types |
F051-05 | Core | Explicit CAST between datetime types and character string types |
F051-06 | Core | CURRENT_DATE |
F051-07 | Core | LOCALTIME |
F051-08 | Core | LOCALTIMESTAMP |
F052 |  | Intervals and datetime arithmetic |
F053 |  | OVERLAPS predicate |
F081 | Core | UNION and EXCEPT in views |
F111 |  | Isolation levels other than SERIALIZABLE |
F112 |  | Isolation level READ UNCOMMITTED |
F113 |  | Isolation level READ COMMITTED |
F114 |  | Isolation level REPEATABLE READ |
F131 | Core | Grouped operations |
F131-01 | Core | WHERE, GROUP BY, and HAVING clauses supported in queries with grouped views |
F131-02 | Core | Multiple tables supported in queries with grouped views |
F131-03 | Core | Set functions supported in queries with grouped views |
F131-04 | Core | Subqueries with GROUP BY and HAVING clauses and grouped views |
F131-05 | Core | Single row SELECT with GROUP BY and HAVING clauses and grouped views |
F171 |  | Multiple schemas per user |
F181 | Core | Multiple module support |
F191 |  | Referential delete actions |
F200 |  | TRUNCATE TABLE statement |
F201 | Core | CAST function |
F202 |  | TRUNCATE TABLE: identity column restart option |
F221 | Core | Explicit defaults |
F222 |  | INSERT statement: DEFAULT VALUES clause |
F231 |  | Privilege tables |
F251 |  | Domain support |
F261 | Core | CASE expression |
F261-01 | Core | Simple CASE |
F261-02 | Core | Searched CASE |
F261-03 | Core | NULLIF |
F261-04 | Core | COALESCE |
F262 |  | Extended CASE expression |
F271 |  | Compound character literals |
F281 |  | LIKE enhancements |
F292 |  | UNIQUE null treatment |
F302 |  | INTERSECT table operator |
F303 |  | INTERSECT DISTINCT table operator |
F302-02 |  | INTERSECT ALL table operator |
F304 |  | EXCEPT ALL table operator |
F305 |  | INTERSECT ALL table operator |
F311 | Core | Schema definition statement |
F311-01 | Core | CREATE SCHEMA |
F311-02 | Core | CREATE TABLE for persistent base tables |
F311-03 | Core | CREATE VIEW |
F311-04 | Core | CREATE VIEW: WITH CHECK OPTION |
F311-05 | Core | GRANT statement |
F312 |  | MERGE statement |
F313 |  | Enhanced MERGE statement |
F314 |  | MERGE statement with DELETE branch |
F321 |  | User authorization |
F341 |  | Usage tables |
F361 |  | Subprogram support |
F381 |  | Extended schema manipulation |
F382 |  | Alter column data type |
F383 |  | Set column not null clause |
F384 |  | Drop identity property clause |
F385 |  | Drop column generation expression clause |
F386 |  | Set identity column generation clause |
F387 |  | ALTER TABLE statement: ALTER COLUMN clause |
F388 |  | ALTER TABLE statement: ADD/DROP CONSTRAINT clause |
F391 |  | Long identifiers |
F392 |  | Unicode escapes in identifiers |
F393 |  | Unicode escapes in literals |
F394 |  | Optional normal form specification |
F401 |  | Extended joined table |
F402 |  | Named column joins for LOBs, arrays, and multisets |
F404 |  | Range variable for common column names |
F405 |  | NATURAL JOIN |
F406 |  | FULL OUTER JOIN |
F407 |  | CROSS JOIN |
F411 |  | Time zone specification | differences regarding literal interpretation
F421 |  | National character |
F431 |  | Read-only scrollable cursors |
F432 |  | FETCH with explicit NEXT |
F433 |  | FETCH FIRST |
F434 |  | FETCH LAST |
F435 |  | FETCH PRIOR |
F436 |  | FETCH ABSOLUTE |
F437 |  | FETCH RELATIVE |
F438 |  | Scrollable cursors |
F441 |  | Extended set function support |
F442 |  | Mixed column references in set functions |
F471 | Core | Scalar subquery values |
F481 | Core | Expanded NULL predicate |
F491 |  | Constraint management |
F501 | Core | Features and conformance views |
F501-01 | Core | SQL_FEATURES view |
F501-02 | Core | SQL_SIZING view |
F502 |  | Enhanced documentation tables |
F531 |  | Temporary tables |
F555 |  | Enhanced seconds precision |
F561 |  | Full value expressions |
F571 |  | Truth value tests |
F591 |  | Derived tables |
F611 |  | Indicator data types |
F641 |  | Row and table constructors |
F651 |  | Catalog name qualifiers |
F661 |  | Simple tables |
F672 |  | Retrospective CHECK constraints |
F690 |  | Collation support |
F692 |  | Extended collation support |
F701 |  | Referential update actions |
F711 |  | ALTER domain |
F731 |  | INSERT column privileges |
F751 |  | View CHECK enhancements |
F761 |  | Session management |
F762 |  | CURRENT_CATALOG |
F763 |  | CURRENT_SCHEMA |
F771 |  | Connection management |
F781 |  | Self-referencing operations |
F791 |  | Insensitive cursors |
F801 |  | Full set function |
F850 |  | Top-level ORDER BY in query expression |
F851 |  | ORDER BY in subqueries |
F852 |  | Top-level ORDER BY in views |
F855 |  | Nested ORDER BY in query expression |
F856 |  | Nested FETCH FIRST in query expression |
F857 |  | Top-level FETCH FIRST in query expression |
F858 |  | FETCH FIRST in subqueries |
F859 |  | Top-level FETCH FIRST in views |
F860 |  | Dynamic FETCH FIRST row count |
F861 |  | Top-level OFFSET in query expression |
F862 |  | OFFSET in subqueries |
F863 |  | Nested OFFSET in query expression |
F864 |  | Top-level OFFSET in views |
F865 |  | Dynamic offset row count in OFFSET |
F867 |  | FETCH FIRST clause: WITH TIES option |
F868 |  | ORDER BY in grouped table |
F869 |  | SQL implementation info population |
S071 |  | SQL paths in function and type name resolution |
S090 |  | Minimal array support |
S092 |  | Arrays of user-defined types |
S095 |  | Array constructors by query |
S096 |  | Optional array bounds |
S098 |  | ARRAY_AGG |
S099 |  | Array expressions |
S111 |  | ONLY in query expressions |
S201 |  | SQL-invoked routines on arrays |
S203 |  | Array parameters |
S204 |  | Array as result type of functions |
S211 |  | User-defined cast functions |
S301 |  | Enhanced UNNEST |
S404 |  | TRIM_ARRAY |
T031 |  | BOOLEAN data type |
T054 |  | GREATEST and LEAST | different null handling
T055 |  | String padding functions |
T056 |  | Multi-character TRIM functions |
T061 |  | UCS support |
T071 |  | BIGINT data type |
T081 |  | Optional string types maximum length |
T121 |  | WITH (excluding RECURSIVE) in query expression |
T122 |  | WITH (excluding RECURSIVE) in subquery |
T131 |  | Recursive query |
T132 |  | Recursive query in subquery |
T133 |  | Enhanced cycle mark values |
T141 |  | SIMILAR predicate |
T151 |  | DISTINCT predicate |
T152 |  | DISTINCT predicate with negation |
T171 |  | LIKE clause in table definition |
T172 |  | AS subquery clause in table definition |
T173 |  | Extended LIKE clause in table definition |
T174 |  | Identity columns |
T177 |  | Sequence generator support: simple restart option |
T178 |  | Identity columns: simple restart option |
T191 |  | Referential action RESTRICT |
T201 |  | Comparable data types for referential constraints |
T212 |  | Enhanced trigger capability |
T213 |  | INSTEAD OF triggers |
T214 |  | BEFORE triggers |
T215 |  | AFTER triggers |
T216 |  | Ability to require true search condition before trigger is invoked |
T217 |  | TRIGGER privilege |
T241 |  | START TRANSACTION statement |
T261 |  | Chained transactions |
T271 |  | Savepoints |
T281 |  | SELECT privilege with column granularity |
T285 |  | Enhanced derived column names |
T312 |  | OVERLAY function |
T321-01 | Core | User-defined functions with no overloading |
T321-02 | Core | User-defined stored procedures with no overloading |
T321-03 | Core | Function invocation |
T321-04 | Core | CALL statement |
T321-05 | Core | RETURN statement |
T321-06 | Core | ROUTINES view |
T321-07 | Core | PARAMETERS view |
T323 |  | Explicit security for external routines |
T325 |  | Qualified SQL parameter references |
T331 |  | Basic roles |
T332 |  | Extended roles |
T341 |  | Overloading of SQL-invoked functions and SQL-invoked procedures |
T351 |  | Bracketed comments |
T431 |  | Extended grouping capabilities |
T432 |  | Nested and concatenated GROUPING SETS |
T433 |  | Multi-argument GROUPING function |
T434 |  | GROUP BY DISTINCT |
T441 |  | ABS and MOD functions |
T461 |  | Symmetric BETWEEN predicate |
T491 |  | LATERAL derived table |
T501 |  | Enhanced EXISTS predicate |
T521 |  | Named arguments in CALL statement |
T523 |  | Default values for INOUT parameters of SQL-invoked procedures |
T524 |  | Named arguments in routine invocations other than a CALL statement |
T525 |  | Default values for parameters of SQL-invoked functions |
T551 |  | Optional key words for default syntax |
T581 |  | Regular expression substring function |
T591 |  | UNIQUE constraints of possibly null columns |
T611 |  | Elementary OLAP operations |
T612 |  | Advanced OLAP operations |
T613 |  | Sampling |
T614 |  | NTILE function |
T615 |  | LEAD and LAG functions |
T617 |  | FIRST_VALUE and LAST_VALUE functions |
T620 |  | WINDOW clause: GROUPS option |
T621 |  | Enhanced numeric functions |
T622 |  | Trigonometric functions |
T623 |  | General logarithm functions |
T624 |  | Common logarithm functions |
T626 |  | ANY_VALUE |
T627 |  | Window framed COUNT DISTINCT |
T631 | Core | IN predicate with one list element |
T651 |  | SQL-schema statements in SQL routines |
T653 |  | SQL-schema statements in external routines |
T655 |  | Cyclically dependent routines |
T661 |  | Non-decimal integer literals |
T662 |  | Underscores in numeric literals |
T670 |  | Schema and data statement mixing |
T803 |  | String-based JSON |
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 |
T822 |  | SQL/JSON: IS JSON WITH UNIQUE KEYS predicate |
T830 |  | Enforcing unique keys in SQL/JSON constructor functions |
T831 |  | SQL/JSON path language: strict mode |
T832 |  | SQL/JSON path language: item method |
T833 |  | SQL/JSON path language: multiple subscripts |
T834 |  | SQL/JSON path language: wildcard member accessor |
T835 |  | SQL/JSON path language: filter expressions |
T836 |  | SQL/JSON path language: starts with predicate |
T837 |  | SQL/JSON path language: regex_like predicate |
T840 |  | Hex integer literals in SQL/JSON path language |
T851 |  | SQL/JSON: optional keywords for default syntax |
T879 |  | JSON in equality operations | with jsonb
T880 |  | JSON in grouping operations | with jsonb
X010 |  | XML type |
X011 |  | Arrays of XML type |
X014 |  | Attributes of XML type |
X016 |  | Persistent XML values |
X020 |  | XMLConcat |
X031 |  | XMLElement |
X032 |  | XMLForest |
X034 |  | XMLAgg |
X035 |  | XMLAgg: ORDER BY option |
X036 |  | XMLComment |
X037 |  | XMLPI |
X040 |  | Basic table mapping |
X041 |  | Basic table mapping: null absent |
X042 |  | Basic table mapping: null as nil |
X043 |  | Basic table mapping: table as forest |
X044 |  | Basic table mapping: table as element |
X045 |  | Basic table mapping: with target namespace |
X046 |  | Basic table mapping: data mapping |
X047 |  | Basic table mapping: metadata mapping |
X048 |  | Basic table mapping: base64 encoding of binary strings |
X049 |  | Basic table mapping: hex encoding of binary strings |
X050 |  | Advanced table mapping |
X051 |  | Advanced table mapping: null absent |
X052 |  | Advanced table mapping: null as nil |
X053 |  | Advanced table mapping: table as forest |
X054 |  | Advanced table mapping: table as element |
X055 |  | Advanced table mapping: with target namespace |
X056 |  | Advanced table mapping: data mapping |
X057 |  | Advanced table mapping: metadata mapping |
X058 |  | Advanced table mapping: base64 encoding of binary strings |
X059 |  | Advanced table mapping: hex encoding of binary strings |
X060 |  | XMLParse: character string input and CONTENT option |
X061 |  | XMLParse: character string input and DOCUMENT option |
X069 |  | XMLSerialize: INDENT |
X070 |  | XMLSerialize: character string serialization and CONTENT option |
X071 |  | XMLSerialize: character string serialization and DOCUMENT option |
X072 |  | XMLSerialize: character string serialization |
X090 |  | XML document predicate |
X120 |  | XML parameters in SQL routines |
X121 |  | XML parameters in external routines |
X221 |  | XML passing mechanism BY VALUE |
X301 |  | XMLTable: derived column list option |
X302 |  | XMLTable: ordinality column option |
X303 |  | XMLTable: column default option |
X304 |  | XMLTable: passing a context item | must be XML DOCUMENT
X400 |  | Name and identifier mapping |
X410 |  | Alter column data type: XML type |

Prev | Up | Next
Appendix D. SQL Conformance | Home | D.2. Unsupported Features