v1-0003-doc-Remove-subfeatures-from-SQL-features-listing.patch

text/plain

Filename: v1-0003-doc-Remove-subfeatures-from-SQL-features-listing.patch
Type: text/plain
Part: 2
Message: documentation updates for SQL:2023

Patch

Format: format-patch
Series: patch v1-0003
Subject: doc: Remove subfeatures from SQL features listing
File+
doc/src/sgml/features.sgml 0 8
doc/src/sgml/mk_feature_tables.pl 4 18
src/backend/catalog/sql_features.txt 0 141
From 4e95c8fc73c49da8f38ee18439280c1269163c60 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@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/</&lt;/g;
 	$feature_name =~ s/>/&gt;/g;
-	$subfeature_name =~ s/</&lt;/g;
-	$subfeature_name =~ s/>/&gt;/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