SQL:2023 should be published within the next 2 months, so I want to
update our SQL conformance information for our PostgreSQL release later
this year.
Attached are patches that update the keywords list and the features list
as usual. (Some of the new features in the JSON area are still being
worked on. I have just set them all to NO for now, to be revisited later.)
I'm also proposing to get rid of the tracking of subfeatures. This has
been de-facto deprecated: All the subfeatures for optional features have
been removed (replaced by top-level feature codes), and the subfeatures
for mandatory features aren't very interesting. The TODO is to remove
the columns for the subfeatures in src/backend/catalog/sql_features.txt.
That is a mechanical change that I did not include in the patch.
I'll leave this patch set in the commit fest, to let those concurrent
developments shake out and as a reminder to address this when the time
comes.From 119129bd2e001c7c3b70af79ab89c414cd207b02 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Wed, 1 Mar 2023 09:52:26 +0100
Subject: [PATCH v1 1/3] doc: Update SQL features list for SQL:2023
---
doc/src/sgml/features.sgml | 17 +--
src/backend/catalog/information_schema.sql | 1 +
src/backend/catalog/sql_features.txt | 143 +++++++++++++--------
3 files changed, 100 insertions(+), 61 deletions(-)
diff --git a/doc/src/sgml/features.sgml b/doc/src/sgml/features.sgml
index b98056214f..575afa3476 100644
--- a/doc/src/sgml/features.sgml
+++ b/doc/src/sgml/features.sgml
@@ -14,9 +14,9 @@ <title>SQL Conformance</title>
<para>
The formal name of the SQL standard is ISO/IEC 9075 <quote>Database
Language SQL</quote>. A revised version of the standard is released
- from time to time; the most recent update appearing in 2016.
- The 2016 version is referred to as ISO/IEC 9075:2016, or simply as SQL:2016.
- The versions prior to that were SQL:2011, SQL:2008, SQL:2006, SQL:2003,
+ from time to time; the most recent update appearing in 2023.
+ The 2023 version is referred to as ISO/IEC 9075:2023, or simply as SQL:2023.
+ The versions prior to that were SQL:2016, SQL:2011, SQL:2008, SQL:2006,
SQL:2003,
SQL:1999, and SQL-92. Each version
replaces the previous one, so claims of conformance to earlier
versions have no official merit.
@@ -62,6 +62,7 @@ <title>SQL Conformance</title>
<listitem><para>ISO/IEC 9075-13 Routines and Types using the Java Language
(SQL/JRT)</para><indexterm><primary>SQL/JRT</primary></indexterm></listitem>
<listitem><para>ISO/IEC 9075-14 XML-related specifications
(SQL/XML)</para><indexterm><primary>SQL/XML</primary></indexterm></listitem>
<listitem><para>ISO/IEC 9075-15 Multi-dimensional arrays
(SQL/MDA)</para><indexterm><primary>SQL/MDA</primary></indexterm></listitem>
+ <listitem><para>ISO/IEC 9075-16 Property Graph Queries
(SQL/PGQ)</para><indexterm><primary>SQL/PGQ</primary></indexterm></listitem>
</itemizedlist>
Note that some part numbers are not (or no longer) used.
@@ -72,23 +73,23 @@ <title>SQL Conformance</title>
11, and 14. Part 3 is covered by the ODBC driver, and part 13 is
covered by the PL/Java plug-in, but exact conformance is currently
not being verified for these components. There are currently no
- implementations of parts 4, 10, and 15
+ implementations of parts 4, 10, 15, and 16
for <productname>PostgreSQL</productname>.
</para>
<para>
- PostgreSQL supports most of the major features of SQL:2016. Out of
+ PostgreSQL supports most of the major features of SQL:2023. Out of
177 mandatory features required for full Core conformance,
PostgreSQL conforms to at least 170. In addition, there is a long
list of supported optional features. It might be worth noting that at
the time of writing, no current version of any database management
- system claims full conformance to Core SQL:2016.
+ system claims full conformance to Core SQL:2023.
</para>
<para>
In the following two sections, we provide a list of those features
that <productname>PostgreSQL</productname> supports, followed by a
- list of the features defined in <acronym>SQL:2016</acronym> which
+ list of the features defined in <acronym>SQL:2023</acronym> which
are not yet supported in <productname>PostgreSQL</productname>.
Both of these lists are approximate: There might be minor details that
are nonconforming for a feature that is listed as supported, and
@@ -135,7 +136,7 @@ <title>Supported Features</title>
<title>Unsupported Features</title>
<para>
- The following features defined in <acronym>SQL:2016</acronym> are not
+ The following features defined in <acronym>SQL:2023</acronym> are not
implemented in this release of
<productname>PostgreSQL</productname>. In a few cases, equivalent
functionality is available.
diff --git a/src/backend/catalog/information_schema.sql
b/src/backend/catalog/information_schema.sql
index 0555e9bc03..5810b5d475 100644
--- a/src/backend/catalog/information_schema.sql
+++ b/src/backend/catalog/information_schema.sql
@@ -1770,6 +1770,7 @@ CREATE TABLE sql_parts (
INSERT INTO sql_parts VALUES ('13', 'Routines and Types Using the Java
Programming Language (SQL/JRT)', 'NO', NULL, '');
INSERT INTO sql_parts VALUES ('14', 'XML-Related Specifications (SQL/XML)',
'NO', NULL, '');
INSERT INTO sql_parts VALUES ('15', 'Multi-Dimensional Arrays (SQL/MDA)',
'NO', NULL, '');
+INSERT INTO sql_parts VALUES ('16', 'Property Graph Queries (SQL/PGQ)', 'NO',
NULL, '');
/*
diff --git a/src/backend/catalog/sql_features.txt
b/src/backend/catalog/sql_features.txt
index 75a09f14e0..fc5c2a20bd 100644
--- a/src/backend/catalog/sql_features.txt
+++ b/src/backend/catalog/sql_features.txt
@@ -6,12 +6,13 @@ B015 Embedded MUMPS NO
B016 Embedded Pascal NO
B017 Embedded PL/I NO
B021 Direct SQL YES
+B030 Enhanced dynamic SQL NO
B031 Basic dynamic SQL NO
B032 Extended dynamic SQL NO
-B032 Extended dynamic SQL 01 <describe input statement> NO
B033 Untyped SQL-invoked function arguments NO
B034 Dynamic specification of cursor attributes NO
B035 Non-extended descriptor names NO
+B036 Describe input statement NO
B041 Extensions to embedded SQL exception declarations
NO
B051 Enhanced execution rights NO
B111 Module language Ada NO
@@ -31,7 +32,7 @@ B127 Routine language PL/I NO
B128 Routine language SQL YES
B200 Polymorphic table functions NO
B201 More than one PTF generic table parameter NO
-B202 PTF Copartitioning NO
+B202 PTF copartitioning NO
B203 More than one copartition specification NO
B204 PRUNE WHEN EMPTY NO
B205 Pass-through columns NO
@@ -166,9 +167,10 @@ F031 Basic schema manipulation 19 REVOKE
statement: RESTRICT clause YES
F032 CASCADE drop behavior YES
F033 ALTER TABLE statement: DROP COLUMN clause YES
F034 Extended REVOKE statement YES
-F034 Extended REVOKE statement 01 REVOKE statement performed by
other than the owner of a schema object YES
-F034 Extended REVOKE statement 02 REVOKE statement: GRANT OPTION
FOR clause YES
-F034 Extended REVOKE statement 03 REVOKE statement to revoke a
privilege that the grantee has WITH GRANT OPTION YES
+F035 REVOKE with CASCADE YES
+F036 REVOKE statement performed by non-owner YES
+F037 REVOKE statement: GRANT OPTION FOR clause YES
+F038 REVOKE of a WITH GRANT OPTION privilege YES
F041 Basic joined table YES
F041 Basic joined table 01 Inner join (but not necessarily the
INNER keyword) YES
F041 Basic joined table 02 INNER keyword YES
@@ -191,14 +193,14 @@ F053 OVERLAPS predicate YES
F054 TIMESTAMP in DATE type precedence list NO
F081 UNION and EXCEPT in views YES
F111 Isolation levels other than SERIALIZABLE YES
-F111 Isolation levels other than SERIALIZABLE 01 READ
UNCOMMITTED isolation level YES
-F111 Isolation levels other than SERIALIZABLE 02 READ COMMITTED
isolation level YES
-F111 Isolation levels other than SERIALIZABLE 03 REPEATABLE READ
isolation level YES
+F112 Isolation level READ UNCOMMITTED YES
+F113 Isolation level READ COMMITTED YES
+F114 Isolation level REPEATABLE READ YES
+F120 Get diagnostics statement NO
F121 Basic diagnostics management NO
-F121 Basic diagnostics management 01 GET DIAGNOSTICS statement
NO
-F121 Basic diagnostics management 02 SET TRANSACTION statement:
DIAGNOSTICS SIZE clause NO
F122 Enhanced diagnostics management NO
F123 All diagnostics NO
+F124 SET TRANSACTION statement: DIAGNOSTICS SIZE clause
NO
F131 Grouped operations YES
F131 Grouped operations 01 WHERE, GROUP BY, and HAVING clauses
supported in queries with grouped views YES
F131 Grouped operations 02 Multiple tables supported in queries
with grouped views YES
@@ -214,9 +216,6 @@ F202 TRUNCATE TABLE: identity column restart option
YES
F221 Explicit defaults YES
F222 INSERT statement: DEFAULT VALUES clause YES
F231 Privilege tables YES
-F231 Privilege tables 01 TABLE_PRIVILEGES view YES
-F231 Privilege tables 02 COLUMN_PRIVILEGES view YES
-F231 Privilege tables 03 USAGE_PRIVILEGES view YES
F251 Domain support YES
F261 CASE expression YES
F261 CASE expression 01 Simple CASE YES
@@ -228,12 +227,13 @@ F263 Comma-separated predicates in simple CASE
expression NO
F271 Compound character literals YES
F281 LIKE enhancements YES
F291 UNIQUE predicate NO
-F292 UNIQUE null treatment YES SQL:202x draft
+F292 UNIQUE null treatment YES
F301 CORRESPONDING in query expressions NO
F302 INTERSECT table operator YES
-F302 INTERSECT table operator 01 INTERSECT DISTINCT table
operator YES
+F303 INTERSECT DISTINCT table operator YES
F302 INTERSECT table operator 02 INTERSECT ALL table operator
YES
F304 EXCEPT ALL table operator YES
+F305 INTERSECT ALL table operator YES
F311 Schema definition statement YES
F311 Schema definition statement 01 CREATE SCHEMA YES
F311 Schema definition statement 02 CREATE TABLE for persistent
base tables YES
@@ -247,34 +247,34 @@ F321 User authorization YES
F341 Usage tables YES
F361 Subprogram support YES
F381 Extended schema manipulation YES
-F381 Extended schema manipulation 01 ALTER TABLE statement: ALTER
COLUMN clause YES
-F381 Extended schema manipulation 02 ALTER TABLE statement: ADD
CONSTRAINT clause YES
-F381 Extended schema manipulation 03 ALTER TABLE statement: DROP
CONSTRAINT clause YES
F382 Alter column data type YES
F383 Set column not null clause YES
F384 Drop identity property clause YES
F385 Drop column generation expression clause YES
F386 Set identity column generation clause YES
+F387 ALTER TABLE statement: ALTER COLUMN clause YES
+F388 ALTER TABLE statement: ADD/DROP CONSTRAINT clause
YES
F391 Long identifiers YES
F392 Unicode escapes in identifiers YES
F393 Unicode escapes in literals YES
F394 Optional normal form specification YES
F401 Extended joined table YES
-F401 Extended joined table 01 NATURAL JOIN YES
-F401 Extended joined table 02 FULL OUTER JOIN YES
-F401 Extended joined table 04 CROSS JOIN YES
F402 Named column joins for LOBs, arrays, and multisets
YES
F403 Partitioned join tables NO
F404 Range variable for common column names YES
+F405 NATURAL JOIN YES
+F406 FULL OUTER JOIN YES
+F407 CROSS JOIN YES
F411 Time zone specification YES differences regarding
literal interpretation
F421 National character YES
F431 Read-only scrollable cursors YES
-F431 Read-only scrollable cursors 01 FETCH with explicit NEXT
YES
-F431 Read-only scrollable cursors 02 FETCH FIRST YES
-F431 Read-only scrollable cursors 03 FETCH LAST YES
-F431 Read-only scrollable cursors 04 FETCH PRIOR YES
-F431 Read-only scrollable cursors 05 FETCH ABSOLUTE YES
-F431 Read-only scrollable cursors 06 FETCH RELATIVE YES
+F432 FETCH with explicit NEXT YES
+F433 FETCH FIRST YES
+F434 FETCH LAST YES
+F435 FETCH PRIOR YES
+F436 FETCH ABSOLUTE YES
+F437 FETCH RELATIVE YES
+F438 Scrollable cursors YES
F441 Extended set function support YES
F442 Mixed column references in set functions YES
F451 Character set definition NO
@@ -298,7 +298,7 @@ F641 Row and table constructors
YES
F651 Catalog name qualifiers YES
F661 Simple tables YES
F671 Subqueries in CHECK constraints NO intentionally
omitted
-F672 Retrospective check constraints YES
+F672 Retrospective CHECK constraints YES
F673 Reads SQL-data routine invocations in CHECK constraints
NO
F690 Collation support YES but no character set
support
F692 Extended collation support YES
@@ -322,8 +322,8 @@ F812 Basic flagging NO
F813 Extended flagging NO
F821 Local table references NO
F831 Full cursor update NO
-F831 Full cursor update 01 Updatable scrollable cursors NO
-F831 Full cursor update 02 Updatable ordered cursors NO
+F832 Updatable scrollable cursors NO
+F833 Updatable ordered cursors NO
F841 LIKE_REGEX predicate NO consider regexp_like()
F842 OCCURRENCES_REGEX function NO consider
regexp_matches()
F843 POSITION_REGEX function NO consider regexp_instr()
@@ -339,7 +339,7 @@ F856 Nested <fetch first clause> in <query
expression> YES
F857 Top-level <fetch first clause> in <query expression>
YES
F858 <fetch first clause> in subqueries YES
F859 Top-level <fetch first clause> in views YES
-F860 <fetch first row count> in <fetch first clause> YES
+F860 Dynamic FETCH FIRST row count YES
F861 Top-level <result offset clause> in <query expression>
YES
F862 <result offset clause> in subqueries YES
F863 Nested <result offset clause> in <query expression>
YES
@@ -347,6 +347,7 @@ F864 Top-level <result offset clause> in views
YES
F865 <offset row count> in <result offset clause> YES
F866 FETCH FIRST clause: PERCENT option NO
F867 FETCH FIRST clause: WITH TIES option YES
+F868 ORDER BY in grouped table YES
R010 Row pattern recognition: FROM clause NO
R020 Row pattern recognition: WINDOW clause NO
R030 Row pattern recognition: full aggregate support NO
@@ -363,24 +364,24 @@ S043 Enhanced reference types
NO
S051 Create table of type NO partially supported
S071 SQL paths in function and type name resolution YES
S081 Subtables NO
+S090 Minimal array support YES
S091 Basic array support NO partially supported
-S091 Basic array support 01 Arrays of built-in data types YES
-S091 Basic array support 02 Arrays of distinct types NO
-S091 Basic array support 03 Array expressions YES
S092 Arrays of user-defined types YES
+S093 Arrays of distinct types NO
S094 Arrays of reference types NO
S095 Array constructors by query YES
S096 Optional array bounds YES
S097 Array element assignment NO
S098 ARRAY_AGG YES
+S099 Array expressions YES
S111 ONLY in query expressions YES
S151 Type predicate NO see pg_typeof()
S161 Subtype treatment NO
S162 Subtype treatment for references NO
S201 SQL-invoked routines on arrays YES
-S201 SQL-invoked routines on arrays 01 Array parameters YES
-S201 SQL-invoked routines on arrays 02 Array as result type of
functions YES
S202 SQL-invoked routines on multisets NO
+S203 Array parameters YES
+S204 Array as result type of functions YES
S211 User-defined cast functions YES
S231 Structured type locators NO
S232 Array locators NO
@@ -406,27 +407,34 @@ T022 Advanced support for BINARY and VARBINARY data
types NO
T023 Compound binary literals NO
T024 Spaces in binary literals NO
T031 BOOLEAN data type YES
+T039 CLOB locator: non-holdable NO
+T040 Concatenation of CLOBs NO
T041 Basic LOB data type support NO
-T041 Basic LOB data type support 01 BLOB data type NO
-T041 Basic LOB data type support 02 CLOB data type NO
-T041 Basic LOB data type support 03 POSITION, LENGTH, LOWER, TRIM,
UPPER, and SUBSTRING functions for LOB data types NO
-T041 Basic LOB data type support 04 Concatenation of LOB data types
NO
-T041 Basic LOB data type support 05 LOB locator: non-holdable
NO
T042 Extended LOB data type support NO
T043 Multiplier T NO
T044 Multiplier P NO
+T045 BLOB data type NO
+T046 CLOB data type NO
+T047 POSITION, OCTET_LENGTH, TRIM, and SUBSTRING for BLOBs
NO
+T048 Concatenation of BLOBs NO
+T049 BLOB locator: non-holdable NO
+T050 POSITION, CHAR_LENGTH, OCTET_LENGTH, LOWER, TRIM, UPPER, and SUBSTRING
CLOBs NO
T051 Row types NO
T053 Explicit aliases for all-fields reference NO
+T054 GREATEST and LEAST YES
+T055 String padding functions YES
+T056 Multi-character TRIM functions YES
T061 UCS support NO
T071 BIGINT data type YES
T076 DECFLOAT data type NO
+T081 Optional string types maximum length YES
T101 Enhanced nullability determination NO
T111 Updatable joins, unions, and columns NO
T121 WITH (excluding RECURSIVE) in query expression YES
T122 WITH (excluding RECURSIVE) in subquery YES
T131 Recursive query YES
T132 Recursive query in subquery YES
-T133 Enhanced cycle mark values YES SQL:202x draft
+T133 Enhanced cycle mark values YES
T141 SIMILAR predicate YES
T151 DISTINCT predicate YES
T152 DISTINCT predicate with negation YES
@@ -441,22 +449,21 @@ T178 Identity columns: simple restart option
YES
T180 System-versioned tables NO
T181 Application-time period tables NO
T191 Referential action RESTRICT YES
+T200 Trigger DDL NO similar but not fully compatible
T201 Comparable data types for referential constraints
YES
T211 Basic trigger capability NO
-T211 Basic trigger capability 01 Triggers activated on UPDATE,
INSERT, or DELETE of one base table YES
-T211 Basic trigger capability 02 BEFORE triggers YES
-T211 Basic trigger capability 03 AFTER triggers YES
-T211 Basic trigger capability 04 FOR EACH ROW triggers YES
-T211 Basic trigger capability 05 Ability to specify a search
condition that must be true before the trigger is invoked YES
-T211 Basic trigger capability 06 Support for run-time rules for
the interaction of triggers and constraints NO
-T211 Basic trigger capability 07 TRIGGER privilege YES
-T211 Basic trigger capability 08 Multiple triggers for the same
event are executed in the order in which they were created in the catalog
NO intentionally omitted
T212 Enhanced trigger capability YES
T213 INSTEAD OF triggers YES
+T214 BEFORE triggers YES
+T215 AFTER triggers YES
+T216 Ability to require true search condition before trigger is invoked
YES
+T217 TRIGGER privilege YES
+T218 Multiple triggers for the same event executed in the order created
NO intentionally omitted
T231 Sensitive cursors NO
T241 START TRANSACTION statement YES
T251 SET TRANSACTION statement: LOCAL option NO
T261 Chained transactions YES
+T262 Multiple server transactions YES
T271 Savepoints YES
T272 Enhanced savepoint management NO
T281 SELECT privilege with column granularity YES
@@ -520,7 +527,8 @@ T622 Trigonometric functions YES
T623 General logarithm functions YES
T624 Common logarithm functions YES
T625 LISTAGG NO
-T626 ANY_VALUE YES SQL:202x draft
+T626 ANY_VALUE YES
+T627 Window framed COUNT DISTINCT YES
T631 IN predicate with one list element YES
T641 Multiple column assignment NO only some
syntax variants supported
T651 SQL-schema statements in SQL routines YES
@@ -528,8 +536,12 @@ T652 SQL-dynamic statements in SQL routines
NO
T653 SQL-schema statements in external routines YES
T654 SQL-dynamic statements in external routines NO
T655 Cyclically dependent routines YES
-T661 Non-decimal integer literals YES SQL:202x draft
-T662 Underscores in integer literals YES SQL:202x draft
+T661 Non-decimal integer literals YES
+T662 Underscores in numeric literals YES
+T670 Schema and data statement mixing YES
+T801 JSON data type NO
+T802 Enhanced JSON data type NO
+T803 String-based JSON NO
T811 Basic SQL/JSON constructor functions NO
T812 SQL/JSON: JSON_OBJECTAGG NO
T813 SQL/JSON: JSON_ARRAYAGG with ORDER BY NO
@@ -553,6 +565,31 @@ T836 SQL/JSON path language: starts with predicate
YES
T837 SQL/JSON path language: regex_like predicate YES
T838 JSON_TABLE: PLAN DEFAULT clause NO
T839 Formatted cast of datetimes to/from character strings
NO
+T840 Hex integer literals in SQL/JSON path language NO
+T851 SQL/JSON: optional keywords for default syntax NO
+T860 SQL/JSON simplified accessor: column reference only
NO
+T861 SQL/JSON simplified accessor: case-sensitive JSON member accessor
NO
+T862 SQL/JSON simplified accessor: wildcard member accessor
NO
+T863 SQL/JSON simplified accessor: single-quoted string literal as member
accessor NO
+T864 SQL/JSON simplified accessor NO
+T865 SQL/JSON item method: bigint() NO
+T866 SQL/JSON item method: boolean() NO
+T867 SQL/JSON item method: date() NO
+T868 SQL/JSON item method: decimal() NO
+T869 SQL/JSON item method: decimal() with precision and scale
NO
+T870 SQL/JSON item method: integer() NO
+T871 SQL/JSON item method: number() NO
+T872 SQL/JSON item method: string() NO
+T873 SQL/JSON item method: time() NO
+T874 SQL/JSON item method: time_tz() NO
+T875 SQL/JSON item method: time precision NO
+T876 SQL/JSON item method: timestamp() NO
+T877 SQL/JSON item method: timestamp_tz() NO
+T878 SQL/JSON item method: timestamp precision NO
+T879 JSON in equality operations NO
+T880 JSON in grouping operations NO
+T881 JSON in ordering operations NO
+T882 JSON in multiset element grouping operations NO
M001 Datalinks NO
M002 Datalinks via SQL/CLI NO
M003 Datalinks via Embedded SQL NO
base-commit: d2f44cc36e60b5490e56fd2aa7d3381764a38d36
--
2.39.2
From 835e2cd9406273895eeaf4748eb27d68db5b3d5a Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Wed, 1 Mar 2023 09:52:26 +0100
Subject: [PATCH v1 2/3] doc: Update SQL keywords list for SQL:2023
---
doc/src/sgml/generate-keywords-table.pl | 2 +-
...eserved.txt => sql2023-02-nonreserved.txt} | 38 +++++++++++++
...2-reserved.txt => sql2023-02-reserved.txt} | 56 ++++++++++++++++++-
...eserved.txt => sql2023-09-nonreserved.txt} | 0
...9-reserved.txt => sql2023-09-reserved.txt} | 4 +-
...eserved.txt => sql2023-14-nonreserved.txt} | 6 +-
...4-reserved.txt => sql2023-14-reserved.txt} | 0
7 files changed, 96 insertions(+), 10 deletions(-)
rename doc/src/sgml/keywords/{sql2011-02-nonreserved.txt =>
sql2023-02-nonreserved.txt} (88%)
rename doc/src/sgml/keywords/{sql2011-02-reserved.txt =>
sql2023-02-reserved.txt} (86%)
rename doc/src/sgml/keywords/{sql2011-09-nonreserved.txt =>
sql2023-09-nonreserved.txt} (100%)
rename doc/src/sgml/keywords/{sql2011-09-reserved.txt =>
sql2023-09-reserved.txt} (100%)
rename doc/src/sgml/keywords/{sql2011-14-nonreserved.txt =>
sql2023-14-nonreserved.txt} (86%)
rename doc/src/sgml/keywords/{sql2011-14-reserved.txt =>
sql2023-14-reserved.txt} (100%)
diff --git a/doc/src/sgml/generate-keywords-table.pl
b/doc/src/sgml/generate-keywords-table.pl
index b48fac8388..ee44edaa6c 100644
--- a/doc/src/sgml/generate-keywords-table.pl
+++ b/doc/src/sgml/generate-keywords-table.pl
@@ -7,7 +7,7 @@
use strict;
use warnings;
-my @sql_versions = reverse sort ('1992', '2011', '2016');
+my @sql_versions = reverse sort ('1992', '2016', '2023');
my $srcdir = $ARGV[0];
diff --git a/doc/src/sgml/keywords/sql2011-02-nonreserved.txt
b/doc/src/sgml/keywords/sql2023-02-nonreserved.txt
similarity index 88%
rename from doc/src/sgml/keywords/sql2011-02-nonreserved.txt
rename to doc/src/sgml/keywords/sql2023-02-nonreserved.txt
index b28a180f0b..48e3d4a7d6 100644
--- a/doc/src/sgml/keywords/sql2011-02-nonreserved.txt
+++ b/doc/src/sgml/keywords/sql2023-02-nonreserved.txt
@@ -19,6 +19,7 @@ CASCADE
CATALOG
CATALOG_NAME
CHAIN
+CHAINING
CHARACTER_SET_CATALOG
CHARACTER_SET_NAME
CHARACTER_SET_SCHEMA
@@ -30,10 +31,12 @@ COLLATION
COLLATION_CATALOG
COLLATION_NAME
COLLATION_SCHEMA
+COLUMNS
COLUMN_NAME
COMMAND_FUNCTION
COMMAND_FUNCTION_CODE
COMMITTED
+CONDITIONAL
CONDITION_NUMBER
CONNECTION
CONNECTION_NAME
@@ -43,6 +46,7 @@ CONSTRAINT_SCHEMA
CONSTRAINTS
CONSTRUCTOR
CONTINUE
+COPARTITION
CURSOR_NAME
DATA
DATETIME_INTERVAL_CODE
@@ -62,16 +66,21 @@ DISPATCH
DOMAIN
DYNAMIC_FUNCTION
DYNAMIC_FUNCTION_CODE
+ENCODING
ENFORCED
+ERROR
EXCLUDE
EXCLUDING
EXPRESSION
FINAL
+FINISH
FIRST
FLAG
FOLLOWING
+FORMAT
FORTRAN
FOUND
+FULFILL
G
GENERAL
GENERATED
@@ -93,7 +102,9 @@ INSTEAD
INVOKER
ISOLATION
K
+KEEP
KEY
+KEYS
KEY_MEMBER
KEY_TYPE
LAST
@@ -104,6 +115,7 @@ M
MAP
MATCHED
MAXVALUE
+MEASURES
MESSAGE_LENGTH
MESSAGE_OCTET_LENGTH
MESSAGE_TEXT
@@ -112,6 +124,7 @@ MORE
MUMPS
NAME
NAMES
+NESTED
NESTING
NEXT
NFC
@@ -119,10 +132,12 @@ NFD
NFKC
NFKD
NORMALIZED
+NULL_ORDERING
NULLABLE
NULLS
NUMBER
OBJECT
+OCCURRENCE
OCTETS
OPTION
OPTIONS
@@ -130,6 +145,7 @@ ORDERING
ORDINALITY
OTHERS
OUTPUT
+OVERFLOW
OVERRIDING
P
PAD
@@ -141,14 +157,24 @@ PARAMETER_SPECIFIC_NAME
PARAMETER_SPECIFIC_SCHEMA
PARTIAL
PASCAL
+PASS
+PASSING
+PAST
PATH
+PERMUTE
+PIPE
PLACING
+PLAN
PLI
PRECEDING
PRESERVE
+PREV
PRIOR
+PRIVATE
PRIVILEGES
+PRUNE
PUBLIC
+QUOTES
READ
RELATIVE
REPEATABLE
@@ -159,12 +185,14 @@ RETURNED_CARDINALITY
RETURNED_LENGTH
RETURNED_OCTET_LENGTH
RETURNED_SQLSTATE
+RETURNING
ROLE
ROUTINE
ROUTINE_CATALOG
ROUTINE_NAME
ROUTINE_SCHEMA
ROW_COUNT
+SCALAR
SCALE
SCHEMA
SCHEMA_NAME
@@ -174,6 +202,7 @@ SCOPE_SCHEMA
SECTION
SECURITY
SELF
+SEMANTICS
SEQUENCE
SERIALIZABLE
SERVER_NAME
@@ -181,17 +210,20 @@ SESSION
SETS
SIMPLE
SIZE
+SORT_DIRECTION
SOURCE
SPACE
SPECIFIC_NAME
STATE
STATEMENT
+STRING
STRUCTURE
STYLE
SUBCLASS_ORIGIN
T
TABLE_NAME
TEMPORARY
+THROUGH
TIES
TOP_LEVEL_COUNT
TRANSACTION
@@ -206,14 +238,20 @@ TRIGGER_SCHEMA
TYPE
UNBOUNDED
UNCOMMITTED
+UNCONDITIONAL
UNDER
+UNMATCHED
UNNAMED
USAGE
USER_DEFINED_TYPE_CATALOG
USER_DEFINED_TYPE_CODE
USER_DEFINED_TYPE_NAME
USER_DEFINED_TYPE_SCHEMA
+UTF16
+UTF32
+UTF8
VIEW
WORK
+WRAPPER
WRITE
ZONE
diff --git a/doc/src/sgml/keywords/sql2011-02-reserved.txt
b/doc/src/sgml/keywords/sql2023-02-reserved.txt
similarity index 86%
rename from doc/src/sgml/keywords/sql2011-02-reserved.txt
rename to doc/src/sgml/keywords/sql2023-02-reserved.txt
index 95f99e7df2..ee364b2470 100644
--- a/doc/src/sgml/keywords/sql2011-02-reserved.txt
+++ b/doc/src/sgml/keywords/sql2023-02-reserved.txt
@@ -1,17 +1,22 @@
ABS
+ABSENT
+ACOS
ALL
ALLOCATE
ALTER
AND
ANY
+ANY_VALUE
ARE
ARRAY
ARRAY_AGG
ARRAY_MAX_CARDINALITY
AS
ASENSITIVE
+ASIN
ASYMMETRIC
AT
+ATAN
ATOMIC
AUTHORIZATION
AVG
@@ -24,6 +29,7 @@ BINARY
BLOB
BOOLEAN
BOTH
+BTRIM
BY
CALL
CALLED
@@ -38,6 +44,7 @@ CHAR_LENGTH
CHARACTER
CHARACTER_LENGTH
CHECK
+CLASSIFIER
CLOB
CLOSE
COALESCE
@@ -50,8 +57,11 @@ CONNECT
CONSTRAINT
CONTAINS
CONVERT
+COPY
CORR
CORRESPONDING
+COS
+COSH
COUNT
COVAR_POP
COVAR_SAMP
@@ -77,9 +87,11 @@ DATE
DAY
DEALLOCATE
DEC
+DECFLOAT
DECIMAL
DECLARE
DEFAULT
+DEFINE
DELETE
DENSE_RANK
DEREF
@@ -93,6 +105,7 @@ DYNAMIC
EACH
ELEMENT
ELSE
+EMPTY
END
END_FRAME
END_PARTITION
@@ -124,6 +137,7 @@ FUSION
GET
GLOBAL
GRANT
+GREATEST
GROUP
GROUPING
GROUPS
@@ -133,6 +147,7 @@ HOUR
IDENTITY
IN
INDICATOR
+INITIAL
INNER
INOUT
INSENSITIVE
@@ -145,6 +160,18 @@ INTERVAL
INTO
IS
JOIN
+JSON
+JSON_ARRAY
+JSON_ARRAYAGG
+JSON_EXISTS
+JSON_OBJECT
+JSON_OBJECTAGG
+JSON_QUERY
+JSON_SCALAR
+JSON_SERIALIZE
+JSON_TABLE
+JSON_TABLE_PRIMITIVE
+JSON_VALUE
LAG
LANGUAGE
LARGE
@@ -152,15 +179,24 @@ LAST_VALUE
LATERAL
LEAD
LEADING
+LEAST
LEFT
LIKE
LIKE_REGEX
+LISTAGG
LN
LOCAL
LOCALTIME
LOCALTIMESTAMP
+LOG
+LOG10
LOWER
+LPAD
+LTRIM
MATCH
+MATCH_NUMBER
+MATCH_RECOGNIZE
+MATCHES
MAX
MEMBER
MERGE
@@ -186,12 +222,14 @@ NTILE
NULL
NULLIF
NUMERIC
-OCTET_LENGTH
OCCURRENCES_REGEX
+OCTET_LENGTH
OF
OFFSET
OLD
+OMIT
ON
+ONE
ONLY
OPEN
OR
@@ -203,6 +241,8 @@ OVERLAPS
OVERLAY
PARAMETER
PARTITION
+PATTERN
+PER
PERCENT
PERCENT_RANK
PERCENTILE_CONT
@@ -217,6 +257,7 @@ PRECISION
PREPARE
PRIMARY
PROCEDURE
+PTF
RANGE
RANK
READS
@@ -245,16 +286,24 @@ ROLLUP
ROW
ROW_NUMBER
ROWS
+RPAD
+RTRIM
+RUNNING
SAVEPOINT
SCOPE
SCROLL
SEARCH
SECOND
+SEEK
SELECT
SENSITIVE
SESSION_USER
SET
+SHOW
SIMILAR
+SIN
+SINH
+SKIP
SMALLINT
SOME
SPECIFIC
@@ -269,6 +318,7 @@ STATIC
STDDEV_POP
STDDEV_SAMP
SUBMULTISET
+SUBSET
SUBSTRING
SUBSTRING_REGEX
SUCCEEDS
@@ -279,6 +329,8 @@ SYSTEM_TIME
SYSTEM_USER
TABLE
TABLESAMPLE
+TAN
+TANH
THEN
TIME
TIMESTAMP
@@ -291,10 +343,10 @@ TRANSLATE_REGEX
TRANSLATION
TREAT
TRIGGER
-TRUNCATE
TRIM
TRIM_ARRAY
TRUE
+TRUNCATE
UESCAPE
UNION
UNIQUE
diff --git a/doc/src/sgml/keywords/sql2011-09-nonreserved.txt
b/doc/src/sgml/keywords/sql2023-09-nonreserved.txt
similarity index 100%
rename from doc/src/sgml/keywords/sql2011-09-nonreserved.txt
rename to doc/src/sgml/keywords/sql2023-09-nonreserved.txt
diff --git a/doc/src/sgml/keywords/sql2011-09-reserved.txt
b/doc/src/sgml/keywords/sql2023-09-reserved.txt
similarity index 100%
rename from doc/src/sgml/keywords/sql2011-09-reserved.txt
rename to doc/src/sgml/keywords/sql2023-09-reserved.txt
index 0205485766..92b658d6ef 100644
--- a/doc/src/sgml/keywords/sql2011-09-reserved.txt
+++ b/doc/src/sgml/keywords/sql2023-09-reserved.txt
@@ -2,11 +2,11 @@ DATALINK
DLNEWCOPY
DLPREVIOUSCOPY
DLURLCOMPLETE
-DLURLCOMPLETEWRITE
DLURLCOMPLETEONLY
+DLURLCOMPLETEWRITE
DLURLPATH
-DLURLPATHWRITE
DLURLPATHONLY
+DLURLPATHWRITE
DLURLSCHEME
DLURLSERVER
DLVALUE
diff --git a/doc/src/sgml/keywords/sql2011-14-nonreserved.txt
b/doc/src/sgml/keywords/sql2023-14-nonreserved.txt
similarity index 86%
rename from doc/src/sgml/keywords/sql2011-14-nonreserved.txt
rename to doc/src/sgml/keywords/sql2023-14-nonreserved.txt
index 317f651f0e..5ba8fa57d7 100644
--- a/doc/src/sgml/keywords/sql2011-14-nonreserved.txt
+++ b/doc/src/sgml/keywords/sql2023-14-nonreserved.txt
@@ -1,11 +1,9 @@
-ABSENT
ACCORDING
BASE64
BOM
COLUMNS
CONTENT
DOCUMENT
-EMPTY
ENCODING
HEX
ID
@@ -13,10 +11,8 @@ INDENT
LOCATION
NAMESPACE
NIL
-PASSING
PATH
PRESERVE
-RETURNING
SEQUENCE
STANDALONE
STRIP
@@ -25,5 +21,5 @@ URI
VALID
VERSION
WHITESPACE
-XMLSCHEMA
XMLDECLARATION
+XMLSCHEMA
diff --git a/doc/src/sgml/keywords/sql2011-14-reserved.txt
b/doc/src/sgml/keywords/sql2023-14-reserved.txt
similarity index 100%
rename from doc/src/sgml/keywords/sql2011-14-reserved.txt
rename to doc/src/sgml/keywords/sql2023-14-reserved.txt
--
2.39.2
From 4e95c8fc73c49da8f38ee18439280c1269163c60 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Wed, 1 Mar 2023 09:52:26 +0100
Subject: [PATCH v1 3/3] doc: Remove subfeatures from SQL features listing
Non-optional subfeatures have been removed from SQL:2023. The
remaining mandatory subfeature specifications are poorly defined and
not very interesting. By removing them we can save some complexity in
the tooling and the final presentation.
TODO: Remove the columns for the subfeatures in
src/backend/catalog/sql_features.txt.
---
doc/src/sgml/features.sgml | 8 --
doc/src/sgml/mk_feature_tables.pl | 22 +----
src/backend/catalog/sql_features.txt | 141 ---------------------------
3 files changed, 4 insertions(+), 167 deletions(-)
diff --git a/doc/src/sgml/features.sgml b/doc/src/sgml/features.sgml
index 575afa3476..44611e0509 100644
--- a/doc/src/sgml/features.sgml
+++ b/doc/src/sgml/features.sgml
@@ -98,14 +98,6 @@ <title>SQL Conformance</title>
information about what does and does not work.
</para>
- <note>
- <para>
- Feature codes containing a hyphen are subfeatures. Therefore, if a
- particular subfeature is not supported, the main feature is listed
- as unsupported even if some other subfeatures are supported.
- </para>
- </note>
-
<sect1 id="features-sql-standard">
<title>Supported Features</title>
diff --git a/doc/src/sgml/mk_feature_tables.pl
b/doc/src/sgml/mk_feature_tables.pl
index 5a16da0d06..f519935f74 100644
--- a/doc/src/sgml/mk_feature_tables.pl
+++ b/doc/src/sgml/mk_feature_tables.pl
@@ -37,36 +37,22 @@
my ($feature_id, $feature_name, $subfeature_id,
$subfeature_name, $is_supported, $comments) = split /\t/;
+ die if $subfeature_id; # XXX
+
$is_supported eq $yesno || next;
$feature_name =~ s/</</g;
$feature_name =~ s/>/>/g;
- $subfeature_name =~ s/</</g;
- $subfeature_name =~ s/>/>/g;
print " <row>\n";
- if ($subfeature_id)
- {
- print " <entry>$feature_id-$subfeature_id</entry>\n";
- }
- else
- {
- print " <entry>$feature_id</entry>\n";
- }
+ print " <entry>$feature_id</entry>\n";
print " <entry>",
defined($feature_packages{$feature_id})
? $feature_packages{$feature_id}
: "",
"</entry>\n";
- if ($subfeature_id)
- {
- print " <entry>$subfeature_name</entry>\n";
- }
- else
- {
- print " <entry>$feature_name</entry>\n";
- }
+ print " <entry>$feature_name</entry>\n";
print " <entry>$comments</entry>\n";
print " </row>\n";
diff --git a/src/backend/catalog/sql_features.txt
b/src/backend/catalog/sql_features.txt
index fc5c2a20bd..03ae11fc64 100644
--- a/src/backend/catalog/sql_features.txt
+++ b/src/backend/catalog/sql_features.txt
@@ -43,127 +43,26 @@ B209 PTF extended names NO
B211 Module language Ada: VARCHAR and NUMERIC support
NO
B221 Routine language Ada: VARCHAR and NUMERIC support
NO
E011 Numeric data types YES
-E011 Numeric data types 01 INTEGER and SMALLINT data types YES
-E011 Numeric data types 02 REAL, DOUBLE PRECISION, and FLOAT data
types YES
-E011 Numeric data types 03 DECIMAL and NUMERIC data types YES
-E011 Numeric data types 04 Arithmetic operators YES
-E011 Numeric data types 05 Numeric comparison YES
-E011 Numeric data types 06 Implicit casting among the numeric data
types YES
E021 Character data types YES
-E021 Character string types 01 CHARACTER data type YES
-E021 Character string types 02 CHARACTER VARYING data type YES
-E021 Character string types 03 Character literals YES
-E021 Character string types 04 CHARACTER_LENGTH function YES
trims trailing spaces from CHARACTER values before counting
-E021 Character string types 05 OCTET_LENGTH function YES
-E021 Character string types 06 SUBSTRING function YES
-E021 Character string types 07 Character concatenation YES
-E021 Character string types 08 UPPER and LOWER functions YES
-E021 Character string types 09 TRIM function YES
-E021 Character string types 10 Implicit casting among the character
string types YES
-E021 Character string types 11 POSITION function YES
-E021 Character string types 12 Character comparison YES
E031 Identifiers YES
-E031 Identifiers 01 Delimited identifiers YES
-E031 Identifiers 02 Lower case identifiers YES
-E031 Identifiers 03 Trailing underscore YES
E051 Basic query specification YES
-E051 Basic query specification 01 SELECT DISTINCT YES
-E051 Basic query specification 02 GROUP BY clause YES
-E051 Basic query specification 04 GROUP BY can contain columns
not in <select list> YES
-E051 Basic query specification 05 Select list items can be
renamed YES
-E051 Basic query specification 06 HAVING clause YES
-E051 Basic query specification 07 Qualified * in select list
YES
-E051 Basic query specification 08 Correlation names in the FROM
clause YES
-E051 Basic query specification 09 Rename columns in the FROM
clause YES
E061 Basic predicates and search conditions YES
-E061 Basic predicates and search conditions 01 Comparison predicate
YES
-E061 Basic predicates and search conditions 02 BETWEEN predicate
YES
-E061 Basic predicates and search conditions 03 IN predicate with list
of values YES
-E061 Basic predicates and search conditions 04 LIKE predicate YES
-E061 Basic predicates and search conditions 05 LIKE predicate ESCAPE
clause YES
-E061 Basic predicates and search conditions 06 NULL predicate YES
-E061 Basic predicates and search conditions 07 Quantified comparison
predicate YES
-E061 Basic predicates and search conditions 08 EXISTS predicate
YES
-E061 Basic predicates and search conditions 09 Subqueries in
comparison predicate YES
-E061 Basic predicates and search conditions 11 Subqueries in IN
predicate YES
-E061 Basic predicates and search conditions 12 Subqueries in
quantified comparison predicate YES
-E061 Basic predicates and search conditions 13 Correlated subqueries
YES
-E061 Basic predicates and search conditions 14 Search condition
YES
E071 Basic query expressions YES
-E071 Basic query expressions 01 UNION DISTINCT table operator YES
-E071 Basic query expressions 02 UNION ALL table operator YES
-E071 Basic query expressions 03 EXCEPT DISTINCT table operator YES
-E071 Basic query expressions 05 Columns combined via table operators
need not have exactly the same data type YES
-E071 Basic query expressions 06 Table operators in subqueries YES
E081 Basic Privileges YES
-E081 Basic Privileges 01 SELECT privilege YES
-E081 Basic Privileges 02 DELETE privilege YES
-E081 Basic Privileges 03 INSERT privilege at the table level
YES
-E081 Basic Privileges 04 UPDATE privilege at the table level
YES
-E081 Basic Privileges 05 UPDATE privilege at the column level
YES
-E081 Basic Privileges 06 REFERENCES privilege at the table level
YES
-E081 Basic Privileges 07 REFERENCES privilege at the column
level YES
-E081 Basic Privileges 08 WITH GRANT OPTION YES
-E081 Basic Privileges 09 USAGE privilege YES
-E081 Basic Privileges 10 EXECUTE privilege YES
E091 Set functions YES
-E091 Set functions 01 AVG YES
-E091 Set functions 02 COUNT YES
-E091 Set functions 03 MAX YES
-E091 Set functions 04 MIN YES
-E091 Set functions 05 SUM YES
-E091 Set functions 06 ALL quantifier YES
-E091 Set functions 07 DISTINCT quantifier YES
E101 Basic data manipulation YES
-E101 Basic data manipulation 01 INSERT statement YES
-E101 Basic data manipulation 03 Searched UPDATE statement YES
-E101 Basic data manipulation 04 Searched DELETE statement YES
E111 Single row SELECT statement YES
E121 Basic cursor support YES
-E121 Basic cursor support 01 DECLARE CURSOR YES
-E121 Basic cursor support 02 ORDER BY columns need not be in select
list YES
-E121 Basic cursor support 03 Value expressions in ORDER BY clause
YES
-E121 Basic cursor support 04 OPEN statement YES
-E121 Basic cursor support 06 Positioned UPDATE statement YES
-E121 Basic cursor support 07 Positioned DELETE statement YES
-E121 Basic cursor support 08 CLOSE statement YES
-E121 Basic cursor support 10 FETCH statement implicit NEXT YES
-E121 Basic cursor support 17 WITH HOLD cursors YES
E131 Null value support (nulls in lieu of values) YES
E141 Basic integrity constraints YES
-E141 Basic integrity constraints 01 NOT NULL constraints YES
-E141 Basic integrity constraints 02 UNIQUE constraints of NOT NULL
columns YES
-E141 Basic integrity constraints 03 PRIMARY KEY constraints YES
-E141 Basic integrity constraints 04 Basic FOREIGN KEY constraint
with the NO ACTION default for both referential delete action and referential
update action YES
-E141 Basic integrity constraints 06 CHECK constraints YES
-E141 Basic integrity constraints 07 Column defaults YES
-E141 Basic integrity constraints 08 NOT NULL inferred on PRIMARY
KEY YES
-E141 Basic integrity constraints 10 Names in a foreign key can be
specified in any order YES
E151 Transaction support YES
-E151 Transaction support 01 COMMIT statement YES
-E151 Transaction support 02 ROLLBACK statement YES
E152 Basic SET TRANSACTION statement YES
-E152 Basic SET TRANSACTION statement 01 SET TRANSACTION statement:
ISOLATION LEVEL SERIALIZABLE clause YES
-E152 Basic SET TRANSACTION statement 02 SET TRANSACTION statement: READ
ONLY and READ WRITE clauses YES
E153 Updatable queries with subqueries YES
E161 SQL comments using leading double minus YES
E171 SQLSTATE support YES
E182 Host language binding YES
F021 Basic information schema YES
-F021 Basic information schema 01 COLUMNS view YES
-F021 Basic information schema 02 TABLES view YES
-F021 Basic information schema 03 VIEWS view YES
-F021 Basic information schema 04 TABLE_CONSTRAINTS view YES
-F021 Basic information schema 05 REFERENTIAL_CONSTRAINTS view
YES
-F021 Basic information schema 06 CHECK_CONSTRAINTS view YES
F031 Basic schema manipulation YES
-F031 Basic schema manipulation 01 CREATE TABLE statement to
create persistent base tables YES
-F031 Basic schema manipulation 02 CREATE VIEW statement YES
-F031 Basic schema manipulation 03 GRANT statement YES
-F031 Basic schema manipulation 04 ALTER TABLE statement: ADD
COLUMN clause YES
-F031 Basic schema manipulation 13 DROP TABLE statement: RESTRICT
clause YES
-F031 Basic schema manipulation 16 DROP VIEW statement: RESTRICT
clause YES
-F031 Basic schema manipulation 19 REVOKE statement: RESTRICT
clause YES
F032 CASCADE drop behavior YES
F033 ALTER TABLE statement: DROP COLUMN clause YES
F034 Extended REVOKE statement YES
@@ -172,22 +71,7 @@ F036 REVOKE statement performed by non-owner
YES
F037 REVOKE statement: GRANT OPTION FOR clause YES
F038 REVOKE of a WITH GRANT OPTION privilege YES
F041 Basic joined table YES
-F041 Basic joined table 01 Inner join (but not necessarily the
INNER keyword) YES
-F041 Basic joined table 02 INNER keyword YES
-F041 Basic joined table 03 LEFT OUTER JOIN YES
-F041 Basic joined table 04 RIGHT OUTER JOIN YES
-F041 Basic joined table 05 Outer joins can be nested YES
-F041 Basic joined table 07 The inner table in a left or right
outer join can also be used in an inner join YES
-F041 Basic joined table 08 All comparison operators are supported
(rather than just =) YES
F051 Basic date and time YES
-F051 Basic date and time 01 DATE data type (including support of
DATE literal) YES
-F051 Basic date and time 02 TIME data type (including support of
TIME literal) with fractional seconds precision of at least 0 YES
-F051 Basic date and time 03 TIMESTAMP data type (including support
of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6
YES
-F051 Basic date and time 04 Comparison predicate on DATE, TIME, and
TIMESTAMP data types YES
-F051 Basic date and time 05 Explicit CAST between datetime types
and character string types YES
-F051 Basic date and time 06 CURRENT_DATE YES
-F051 Basic date and time 07 LOCALTIME YES
-F051 Basic date and time 08 LOCALTIMESTAMP YES
F052 Intervals and datetime arithmetic YES
F053 OVERLAPS predicate YES
F054 TIMESTAMP in DATE type precedence list NO
@@ -202,11 +86,6 @@ F122 Enhanced diagnostics management
NO
F123 All diagnostics NO
F124 SET TRANSACTION statement: DIAGNOSTICS SIZE clause
NO
F131 Grouped operations YES
-F131 Grouped operations 01 WHERE, GROUP BY, and HAVING clauses
supported in queries with grouped views YES
-F131 Grouped operations 02 Multiple tables supported in queries
with grouped views YES
-F131 Grouped operations 03 Set functions supported in queries with
grouped views YES
-F131 Grouped operations 04 Subqueries with GROUP BY and HAVING
clauses and grouped views YES
-F131 Grouped operations 05 Single row SELECT with GROUP BY and
HAVING clauses and grouped views YES
F171 Multiple schemas per user YES
F181 Multiple module support YES
F191 Referential delete actions YES
@@ -218,10 +97,6 @@ F222 INSERT statement: DEFAULT VALUES clause
YES
F231 Privilege tables YES
F251 Domain support YES
F261 CASE expression YES
-F261 CASE expression 01 Simple CASE YES
-F261 CASE expression 02 Searched CASE YES
-F261 CASE expression 03 NULLIF YES
-F261 CASE expression 04 COALESCE YES
F262 Extended CASE expression YES
F263 Comma-separated predicates in simple CASE expression
NO
F271 Compound character literals YES
@@ -231,15 +106,9 @@ F292 UNIQUE null treatment YES
F301 CORRESPONDING in query expressions NO
F302 INTERSECT table operator YES
F303 INTERSECT DISTINCT table operator YES
-F302 INTERSECT table operator 02 INTERSECT ALL table operator
YES
F304 EXCEPT ALL table operator YES
F305 INTERSECT ALL table operator YES
F311 Schema definition statement YES
-F311 Schema definition statement 01 CREATE SCHEMA YES
-F311 Schema definition statement 02 CREATE TABLE for persistent
base tables YES
-F311 Schema definition statement 03 CREATE VIEW YES
-F311 Schema definition statement 04 CREATE VIEW: WITH CHECK OPTION
YES
-F311 Schema definition statement 05 GRANT statement YES
F312 MERGE statement YES
F313 Enhanced MERGE statement YES
F314 MERGE statement with DELETE branch YES
@@ -284,8 +153,6 @@ F481 Expanded NULL predicate YES
F491 Constraint management YES
F492 Optional table constraint enforcement NO
F501 Features and conformance views YES
-F501 Features and conformance views 01 SQL_FEATURES view YES
-F501 Features and conformance views 02 SQL_SIZING view YES
F502 Enhanced documentation tables YES
F521 Assertions NO
F531 Temporary tables YES
@@ -352,7 +219,6 @@ R010 Row pattern recognition: FROM clause
NO
R020 Row pattern recognition: WINDOW clause NO
R030 Row pattern recognition: full aggregate support NO
S011 Distinct data types NO
-S011 Distinct data types 01 USER_DEFINED_TYPES view NO
S023 Basic structured types NO
S024 Enhanced structured types NO
S025 Final structured types NO
@@ -471,13 +337,6 @@ T285 Enhanced derived column names
YES
T301 Functional dependencies NO partially supported
T312 OVERLAY function YES
T321 Basic SQL-invoked routines NO partially
supported
-T321 Basic SQL-invoked routines 01 User-defined functions with no
overloading YES
-T321 Basic SQL-invoked routines 02 User-defined stored procedures
with no overloading YES
-T321 Basic SQL-invoked routines 03 Function invocation YES
-T321 Basic SQL-invoked routines 04 CALL statement YES
-T321 Basic SQL-invoked routines 05 RETURN statement YES
-T321 Basic SQL-invoked routines 06 ROUTINES view YES
-T321 Basic SQL-invoked routines 07 PARAMETERS view YES
T322 Declared data type attributes NO
T323 Explicit security for external routines YES
T324 Explicit security for SQL routines NO
--
2.39.2