PostgreSQL
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 |
||
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 |
D.2. Unsupported Features |
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.
Copyright © 1996-2024 The PostgreSQL Global Development Group