D.1. Supported Features #

IdentifierCore?DescriptionComment
B012 Embedded C 
B021 Direct SQL 
B128 Routine language SQL 
E011CoreNumeric data types 
E011-01CoreINTEGER and SMALLINT data types 
E011-02CoreREAL, DOUBLE PRECISION, and FLOAT data types 
E011-03CoreDECIMAL and NUMERIC data types 
E011-04CoreArithmetic operators 
E011-05CoreNumeric comparison 
E011-06CoreImplicit casting among the numeric data types 
E021CoreCharacter data types 
E021-01CoreCHARACTER data type 
E021-02CoreCHARACTER VARYING data type 
E021-03CoreCharacter literals 
E021-04CoreCHARACTER_LENGTH functiontrims trailing spaces from CHARACTER values before counting
E021-05CoreOCTET_LENGTH function 
E021-06CoreSUBSTRING function 
E021-07CoreCharacter concatenation 
E021-08CoreUPPER and LOWER functions 
E021-09CoreTRIM function 
E021-10CoreImplicit casting among the character string types 
E021-11CorePOSITION function 
E021-12CoreCharacter comparison 
E031CoreIdentifiers 
E031-01CoreDelimited identifiers 
E031-02CoreLower case identifiers 
E031-03CoreTrailing underscore 
E051CoreBasic query specification 
E051-01CoreSELECT DISTINCT 
E051-02CoreGROUP BY clause 
E051-04CoreGROUP BY can contain columns not in <select list> 
E051-05CoreSelect list items can be renamed 
E051-06CoreHAVING clause 
E051-07CoreQualified * in select list 
E051-08CoreCorrelation names in the FROM clause 
E051-09CoreRename columns in the FROM clause 
E061CoreBasic predicates and search conditions 
E061-01CoreComparison predicate 
E061-02CoreBETWEEN predicate 
E061-03CoreIN predicate with list of values 
E061-04CoreLIKE predicate 
E061-05CoreLIKE predicate ESCAPE clause 
E061-06CoreNULL predicate 
E061-07CoreQuantified comparison predicate 
E061-08CoreEXISTS predicate 
E061-09CoreSubqueries in comparison predicate 
E061-11CoreSubqueries in IN predicate 
E061-12CoreSubqueries in quantified comparison predicate 
E061-13CoreCorrelated subqueries 
E061-14CoreSearch condition 
E071CoreBasic query expressions 
E071-01CoreUNION DISTINCT table operator 
E071-02CoreUNION ALL table operator 
E071-03CoreEXCEPT DISTINCT table operator 
E071-05CoreColumns combined via table operators need not have exactly the same data type 
E071-06CoreTable operators in subqueries 
E081CoreBasic Privileges 
E081-01CoreSELECT privilege 
E081-02CoreDELETE privilege 
E081-03CoreINSERT privilege at the table level 
E081-04CoreUPDATE privilege at the table level 
E081-05CoreUPDATE privilege at the column level 
E081-06CoreREFERENCES privilege at the table level 
E081-07CoreREFERENCES privilege at the column level 
E081-08CoreWITH GRANT OPTION 
E081-09CoreUSAGE privilege 
E081-10CoreEXECUTE privilege 
E091CoreSet functions 
E091-01CoreAVG 
E091-02CoreCOUNT 
E091-03CoreMAX 
E091-04CoreMIN 
E091-05CoreSUM 
E091-06CoreALL quantifier 
E091-07CoreDISTINCT quantifier 
E101CoreBasic data manipulation 
E101-01CoreINSERT statement 
E101-03CoreSearched UPDATE statement 
E101-04CoreSearched DELETE statement 
E111CoreSingle row SELECT statement 
E121CoreBasic cursor support 
E121-01CoreDECLARE CURSOR 
E121-02CoreORDER BY columns need not be in select list 
E121-03CoreValue expressions in ORDER BY clause 
E121-04CoreOPEN statement 
E121-06CorePositioned UPDATE statement 
E121-07CorePositioned DELETE statement 
E121-08CoreCLOSE statement 
E121-10CoreFETCH statement implicit NEXT 
E121-17CoreWITH HOLD cursors 
E131CoreNull value support (nulls in lieu of values) 
E141CoreBasic integrity constraints 
E141-01CoreNOT NULL constraints 
E141-02CoreUNIQUE constraints of NOT NULL columns 
E141-03CorePRIMARY KEY constraints 
E141-04CoreBasic FOREIGN KEY constraint with the NO ACTION default for both referential delete action and referential update action 
E141-06CoreCHECK constraints 
E141-07CoreColumn defaults 
E141-08CoreNOT NULL inferred on PRIMARY KEY 
E141-10CoreNames in a foreign key can be specified in any order 
E151CoreTransaction support 
E151-01CoreCOMMIT statement 
E151-02CoreROLLBACK statement 
E152CoreBasic SET TRANSACTION statement 
E152-01CoreSET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clause 
E152-02CoreSET TRANSACTION statement: READ ONLY and READ WRITE clauses 
E153CoreUpdatable queries with subqueries 
E161CoreSQL comments using leading double minus 
E171CoreSQLSTATE support 
E182CoreHost language binding 
F021CoreBasic information schema 
F021-01CoreCOLUMNS view 
F021-02CoreTABLES view 
F021-03CoreVIEWS view 
F021-04CoreTABLE_CONSTRAINTS view 
F021-05CoreREFERENTIAL_CONSTRAINTS view 
F021-06CoreCHECK_CONSTRAINTS view 
F031CoreBasic schema manipulation 
F031-01CoreCREATE TABLE statement to create persistent base tables 
F031-02CoreCREATE VIEW statement 
F031-03CoreGRANT statement 
F031-04CoreALTER TABLE statement: ADD COLUMN clause 
F031-13CoreDROP TABLE statement: RESTRICT clause 
F031-16CoreDROP VIEW statement: RESTRICT clause 
F031-19CoreREVOKE 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 
F041CoreBasic joined table 
F041-01CoreInner join (but not necessarily the INNER keyword) 
F041-02CoreINNER keyword 
F041-03CoreLEFT OUTER JOIN 
F041-04CoreRIGHT OUTER JOIN 
F041-05CoreOuter joins can be nested 
F041-07CoreThe inner table in a left or right outer join can also be used in an inner join 
F041-08CoreAll comparison operators are supported (rather than just =) 
F051CoreBasic date and time 
F051-01CoreDATE data type (including support of DATE literal) 
F051-02CoreTIME data type (including support of TIME literal) with fractional seconds precision of at least 0 
F051-03CoreTIMESTAMP data type (including support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6 
F051-04CoreComparison predicate on DATE, TIME, and TIMESTAMP data types 
F051-05CoreExplicit CAST between datetime types and character string types 
F051-06CoreCURRENT_DATE 
F051-07CoreLOCALTIME 
F051-08CoreLOCALTIMESTAMP 
F052 Intervals and datetime arithmetic 
F053 OVERLAPS predicate 
F081CoreUNION 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 
F131CoreGrouped operations 
F131-01CoreWHERE, GROUP BY, and HAVING clauses supported in queries with grouped views 
F131-02CoreMultiple tables supported in queries with grouped views 
F131-03CoreSet functions supported in queries with grouped views 
F131-04CoreSubqueries with GROUP BY and HAVING clauses and grouped views 
F131-05CoreSingle row SELECT with GROUP BY and HAVING clauses and grouped views 
F171 Multiple schemas per user 
F181CoreMultiple module support 
F191 Referential delete actions 
F200 TRUNCATE TABLE statement 
F201CoreCAST function 
F202 TRUNCATE TABLE: identity column restart option 
F221CoreExplicit defaults 
F222 INSERT statement: DEFAULT VALUES clause 
F231 Privilege tables 
F251 Domain support 
F261CoreCASE expression 
F261-01CoreSimple CASE 
F261-02CoreSearched CASE 
F261-03CoreNULLIF 
F261-04CoreCOALESCE 
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 
F311CoreSchema definition statement 
F311-01CoreCREATE SCHEMA 
F311-02CoreCREATE TABLE for persistent base tables 
F311-03CoreCREATE VIEW 
F311-04CoreCREATE VIEW: WITH CHECK OPTION 
F311-05CoreGRANT 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 specificationdifferences 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 
F471CoreScalar subquery values 
F481CoreExpanded NULL predicate 
F491 Constraint management 
F501CoreFeatures and conformance views 
F501-01CoreSQL_FEATURES view 
F501-02CoreSQL_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 LEASTdifferent 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-01CoreUser-defined functions with no overloading 
T321-02CoreUser-defined stored procedures with no overloading 
T321-03CoreFunction invocation 
T321-04CoreCALL statement 
T321-05CoreRETURN statement 
T321-06CoreROUTINES view 
T321-07CorePARAMETERS 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 
T631CoreIN 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 operationswith jsonb
T880 JSON in grouping operationswith 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 itemmust be XML DOCUMENT
X400 Name and identifier mapping 
X410 Alter column data type: XML type