Remove obsolete information schema tables

Started by Peter Eisentrautabout 6 years ago5 messages
#1Peter Eisentraut
peter.eisentraut@2ndquadrant.com
1 attachment(s)

I propose this patch to remove the information schema tables
SQL_LANGUAGES, which was eliminated in SQL:2008, and SQL_PACKAGES, which
was eliminated in SQL:2011. Since they were dropped by the SQL
standard, the information in them was no longer updated and therefore no
longer useful.

This also removes the feature-package association information in
sql_feature_packages.txt, but for the time begin we are keeping the
information which features are in the Core package (that is, mandatory
SQL features). Maybe at some point someone wants to invent a way to
store that that does not involve using the "package" mechanism
anymore.

--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachments:

0001-Remove-obsolete-information-schema-tables.patchtext/plain; charset=UTF-8; name=0001-Remove-obsolete-information-schema-tables.patch; x-mac-creator=0; x-mac-type=0Download
From 304270da9168134df77d59c537268bd6bcaf1a06 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Mon, 14 Oct 2019 09:56:38 +0200
Subject: [PATCH] Remove obsolete information schema tables

Remove SQL_LANGUAGES, which was eliminated in SQL:2008, and
SQL_PACKAGES, which was eliminated in SQL:2011.  Since they were
dropped by the SQL standard, the information in them was no longer
updated and therefore no longer useful.

This also removes the feature-package association information in
sql_feature_packages.txt, but for the time begin we are keeping the
information which features are in the Core package (that is, mandatory
SQL features).  Maybe at some point someone wants to invent a way to
store that that does not involve using the "package" mechanism
anymore.
---
 doc/src/sgml/features.sgml                   |   9 +-
 doc/src/sgml/information_schema.sgml         | 154 -------------------
 src/backend/catalog/information_schema.sql   |  50 ------
 src/backend/catalog/sql_feature_packages.txt |  29 ----
 src/backend/catalog/sql_features.txt         |   2 -
 src/test/regress/expected/sanity_check.out   |   2 -
 6 files changed, 3 insertions(+), 243 deletions(-)

diff --git a/doc/src/sgml/features.sgml b/doc/src/sgml/features.sgml
index f767bee46e..2c5a7e5d0c 100644
--- a/doc/src/sgml/features.sgml
+++ b/doc/src/sgml/features.sgml
@@ -44,10 +44,7 @@ <title>SQL Conformance</title>
   broad three levels found in <acronym>SQL-92</acronym>.  A large
   subset of these features represents the <quote>Core</quote>
   features, which every conforming SQL implementation must supply.
-  The rest of the features are purely optional.  Some optional
-  features are grouped together to form <quote>packages</quote>, which
-  SQL implementations can claim conformance to, thus claiming
-  conformance to particular groups of features.
+  The rest of the features are purely optional.
  </para>
 
  <para>
@@ -116,7 +113,7 @@ <title>Supported Features</title>
       <thead>
        <row>
         <entry>Identifier</entry>
-        <entry>Package</entry>
+        <entry>Core?</entry>
         <entry>Description</entry>
         <entry>Comment</entry>
        </row>
@@ -143,7 +140,7 @@ <title>Unsupported Features</title>
       <thead>
        <row>
         <entry>Identifier</entry>
-        <entry>Package</entry>
+        <entry>Core?</entry>
         <entry>Description</entry>
         <entry>Comment</entry>
        </row>
diff --git a/doc/src/sgml/information_schema.sgml b/doc/src/sgml/information_schema.sgml
index 906fe7819f..7d3be1afdb 100644
--- a/doc/src/sgml/information_schema.sgml
+++ b/doc/src/sgml/information_schema.sgml
@@ -4963,160 +4963,6 @@ <title><literal>sql_implementation_info</literal> Columns</title>
   </table>
  </sect1>
 
- <sect1 id="infoschema-sql-languages">
-  <title><literal>sql_languages</literal></title>
-
-  <para>
-   The table <literal>sql_languages</literal> contains one row for
-   each SQL language binding that is supported by
-   <productname>PostgreSQL</productname>.
-   <productname>PostgreSQL</productname> supports direct SQL and
-   embedded SQL in C; that is all you will learn from this table.
-  </para>
-
-  <para>
-   This table was removed from the SQL standard in SQL:2008, so there
-   are no entries referring to standards later than SQL:2003.
-  </para>
-
-  <table>
-   <title><literal>sql_languages</literal> Columns</title>
-
-   <tgroup cols="3">
-    <thead>
-     <row>
-      <entry>Name</entry>
-      <entry>Data Type</entry>
-      <entry>Description</entry>
-     </row>
-    </thead>
-
-    <tbody>
-     <row>
-      <entry><literal>sql_language_source</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>
-       The name of the source of the language definition; always
-       <literal>ISO 9075</literal>, that is, the SQL standard
-      </entry>
-     </row>
-
-     <row>
-      <entry><literal>sql_language_year</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>
-       The year the standard referenced in
-       <literal>sql_language_source</literal> was approved.
-      </entry>
-     </row>
-
-     <row>
-      <entry><literal>sql_language_conformance</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>
-       The standard conformance level for the language binding.  For
-       ISO 9075:2003 this is always <literal>CORE</literal>.
-      </entry>
-     </row>
-
-     <row>
-      <entry><literal>sql_language_integrity</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>Always null (This value is relevant to an earlier version of the SQL standard.)</entry>
-     </row>
-
-     <row>
-      <entry><literal>sql_language_implementation</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>Always null</entry>
-     </row>
-
-     <row>
-      <entry><literal>sql_language_binding_style</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>
-       The language binding style, either <literal>DIRECT</literal> or
-       <literal>EMBEDDED</literal>
-      </entry>
-     </row>
-
-     <row>
-      <entry><literal>sql_language_programming_language</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>
-       The programming language, if the binding style is
-       <literal>EMBEDDED</literal>, else null.  <productname>PostgreSQL</productname> only
-       supports the language C.
-      </entry>
-     </row>
-    </tbody>
-   </tgroup>
-  </table>
- </sect1>
-
- <sect1 id="infoschema-sql-packages">
-  <title><literal>sql_packages</literal></title>
-
-  <para>
-   The table <literal>sql_packages</literal> contains information
-   about which feature packages defined in the SQL standard are
-   supported by <productname>PostgreSQL</productname>.  Refer to <xref
-   linkend="features"/> for background information on feature packages.
-  </para>
-
-  <table>
-   <title><literal>sql_packages</literal> Columns</title>
-
-   <tgroup cols="3">
-    <thead>
-     <row>
-      <entry>Name</entry>
-      <entry>Data Type</entry>
-      <entry>Description</entry>
-     </row>
-    </thead>
-
-    <tbody>
-     <row>
-      <entry><literal>feature_id</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>Identifier string of the package</entry>
-     </row>
-
-     <row>
-      <entry><literal>feature_name</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>Descriptive name of the package</entry>
-     </row>
-
-     <row>
-      <entry><literal>is_supported</literal></entry>
-      <entry><type>yes_or_no</type></entry>
-      <entry>
-       <literal>YES</literal> if the package is fully supported by the
-       current version of <productname>PostgreSQL</productname>, <literal>NO</literal> if not
-      </entry>
-     </row>
-
-     <row>
-      <entry><literal>is_verified_by</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>
-       Always null, since the <productname>PostgreSQL</productname> development group does not
-       perform formal testing of feature conformance
-      </entry>
-     </row>
-
-     <row>
-      <entry><literal>comments</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>Possibly a comment about the supported status of the package</entry>
-     </row>
-    </tbody>
-   </tgroup>
-  </table>
- </sect1>
-
  <sect1 id="infoschema-sql-parts">
   <title><literal>sql_parts</literal></title>
 
diff --git a/src/backend/catalog/information_schema.sql b/src/backend/catalog/information_schema.sql
index c42e76ea89..ec11db9f2d 100644
--- a/src/backend/catalog/information_schema.sql
+++ b/src/backend/catalog/information_schema.sql
@@ -1648,56 +1648,6 @@ CREATE TABLE sql_implementation_info (
 GRANT SELECT ON sql_implementation_info TO PUBLIC;
 
 
-/*
- * SQL_LANGUAGES table
- * apparently removed in SQL:2008
- */
-
-CREATE TABLE sql_languages (
-    sql_language_source         character_data,
-    sql_language_year           character_data,
-    sql_language_conformance    character_data,
-    sql_language_integrity      character_data,
-    sql_language_implementation character_data,
-    sql_language_binding_style  character_data,
-    sql_language_programming_language character_data
-);
-
-INSERT INTO sql_languages VALUES ('ISO 9075', '1999', 'CORE', NULL, NULL, 'DIRECT', NULL);
-INSERT INTO sql_languages VALUES ('ISO 9075', '1999', 'CORE', NULL, NULL, 'EMBEDDED', 'C');
-INSERT INTO sql_languages VALUES ('ISO 9075', '2003', 'CORE', NULL, NULL, 'DIRECT', NULL);
-INSERT INTO sql_languages VALUES ('ISO 9075', '2003', 'CORE', NULL, NULL, 'EMBEDDED', 'C');
-
-GRANT SELECT ON sql_languages TO PUBLIC;
-
-
-/*
- * SQL_PACKAGES table
- * removed in SQL:2011
- */
-
-CREATE TABLE sql_packages (
-    feature_id      character_data,
-    feature_name    character_data,
-    is_supported    yes_or_no,
-    is_verified_by  character_data,
-    comments        character_data
-);
-
-INSERT INTO sql_packages VALUES ('PKG000', 'Core', 'NO', NULL, '');
-INSERT INTO sql_packages VALUES ('PKG001', 'Enhanced datetime facilities', 'YES', NULL, '');
-INSERT INTO sql_packages VALUES ('PKG002', 'Enhanced integrity management', 'NO', NULL, '');
-INSERT INTO sql_packages VALUES ('PKG003', 'OLAP facilities', 'NO', NULL, '');
-INSERT INTO sql_packages VALUES ('PKG004', 'PSM', 'NO', NULL, 'PL/pgSQL is similar.');
-INSERT INTO sql_packages VALUES ('PKG005', 'CLI', 'NO', NULL, 'ODBC is similar.');
-INSERT INTO sql_packages VALUES ('PKG006', 'Basic object support', 'NO', NULL, '');
-INSERT INTO sql_packages VALUES ('PKG007', 'Enhanced object support', 'NO', NULL, '');
-INSERT INTO sql_packages VALUES ('PKG008', 'Active database', 'NO', NULL, '');
-INSERT INTO sql_packages VALUES ('PKG010', 'OLAP', 'NO', NULL, 'NO');
-
-GRANT SELECT ON sql_packages TO PUBLIC;
-
-
 /*
  * 5.59
  * SQL_PARTS table
diff --git a/src/backend/catalog/sql_feature_packages.txt b/src/backend/catalog/sql_feature_packages.txt
index 382e4aea5c..1d87a3e31e 100644
--- a/src/backend/catalog/sql_feature_packages.txt
+++ b/src/backend/catalog/sql_feature_packages.txt
@@ -22,46 +22,17 @@ F021	Core
 F031	Core
 F041	Core
 F051	Core
-F052	Enhanced datetime facilities
 F081	Core
 F131	Core
 F181	Core
-F191	Enhanced integrity management
 F201	Core
 F221	Core
 F261	Core
 F311	Core
-F411	Enhanced datetime facilities
 F471	Core
 F481	Core
-F491	Enhanced integrity management
 F501	Core
-F521	Enhanced integrity management
-F555	Enhanced datetime facilities
-F671	Enhanced integrity management
-F701	Enhanced integrity management
 F812	Core
 S011	Core
-S023	Basic object support
-S024	Enhanced object support
-S041	Basic object support
-S043	Enhanced object support
-S051	Basic object support
-S071	Enhanced object support
-S081	Enhanced object support
-S111	Enhanced object support
-S151	Basic object support
-S161	Enhanced object support
-S211	Enhanced object support
-S231	Enhanced object support
-T041	Basic object support
-T191	Enhanced integrity management
-T201	Enhanced integrity management
-T211	Active database
-T211	Enhanced integrity management
-T212	Enhanced integrity management
 T321	Core
-T322	PSM
-T431	OLAP
-T611	OLAP
 T631	Core
diff --git a/src/backend/catalog/sql_features.txt b/src/backend/catalog/sql_features.txt
index 9c68292a54..81b9d8a4f7 100644
--- a/src/backend/catalog/sql_features.txt
+++ b/src/backend/catalog/sql_features.txt
@@ -285,11 +285,9 @@ 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	
-F501	Features and conformance views	03	SQL_LANGUAGES view	YES	
 F502	Enhanced documentation tables			YES	
 F502	Enhanced documentation tables	01	SQL_SIZING_PROFILES view	YES	
 F502	Enhanced documentation tables	02	SQL_IMPLEMENTATION_INFO view	YES	
-F502	Enhanced documentation tables	03	SQL_PACKAGES view	YES	
 F521	Assertions			NO	
 F531	Temporary tables			YES	
 F555	Enhanced seconds precision			YES	
diff --git a/src/test/regress/expected/sanity_check.out b/src/test/regress/expected/sanity_check.out
index d6e75ffce6..87321d4151 100644
--- a/src/test/regress/expected/sanity_check.out
+++ b/src/test/regress/expected/sanity_check.out
@@ -177,8 +177,6 @@ shighway|t
 slow_emp4000|f
 sql_features|f
 sql_implementation_info|f
-sql_languages|f
-sql_packages|f
 sql_parts|f
 sql_sizing|f
 sql_sizing_profiles|f
-- 
2.23.0

#2Michael Paquier
michael@paquier.xyz
In reply to: Peter Eisentraut (#1)
Re: Remove obsolete information schema tables

On Mon, Oct 14, 2019 at 10:27:14AM +0200, Peter Eisentraut wrote:

I propose this patch to remove the information schema tables
SQL_LANGUAGES, which was eliminated in SQL:2008, and SQL_PACKAGES, which
was eliminated in SQL:2011. Since they were dropped by the SQL
standard, the information in them was no longer updated and therefore no
longer useful.

The cleanup looks right. I cannot grep missing references FWIW.

This also removes the feature-package association information in
sql_feature_packages.txt, but for the time begin we are keeping the
information which features are in the Core package (that is, mandatory
SQL features). Maybe at some point someone wants to invent a way to
store that that does not involve using the "package" mechanism
anymore.

I have a question here. Per the notes in information_schema.sql,
SQL_SIZING_PROFILES has been removed in SQL:2011,
attributes.isnullable and DOMAIN_UDT_USAGE in SQL:2003~. Would it
make sense to cleanup those ones?
--
Michael

#3Peter Eisentraut
peter.eisentraut@2ndquadrant.com
In reply to: Michael Paquier (#2)
1 attachment(s)
Re: Remove obsolete information schema tables

On 2019-10-17 09:44, Michael Paquier wrote:

I have a question here. Per the notes in information_schema.sql,
SQL_SIZING_PROFILES has been removed in SQL:2011,

OK, we can remove that one as well. New patch attached.

attributes.isnullable and DOMAIN_UDT_USAGE in SQL:2003~. Would it
make sense to cleanup those ones?

OK, I'll look into those, but it seems like a separate undertaking. We
don't always remove things just because they were dropped by the SQL
standard.

--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachments:

v2-0001-Remove-obsolete-information-schema-tables.patchtext/plain; charset=UTF-8; name=v2-0001-Remove-obsolete-information-schema-tables.patch; x-mac-creator=0; x-mac-type=0Download
From aec53faf22966ee56ccd812996e40527cc2cea49 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Sat, 19 Oct 2019 22:56:18 +0200
Subject: [PATCH v2] Remove obsolete information schema tables

Remove SQL_LANGUAGES, which was eliminated in SQL:2008, and
SQL_PACKAGES and SQL_SIZING_PROFILES, which were eliminated in
SQL:2011.  Since they were dropped by the SQL standard, the
information in them was no longer updated and therefore no longer
useful.

This also removes the feature-package association information in
sql_feature_packages.txt, but for the time begin we are keeping the
information which features are in the Core package (that is, mandatory
SQL features).  Maybe at some point someone wants to invent a way to
store that that does not involve using the "package" mechanism
anymore.

Discussion https://www.postgresql.org/message-id/flat/91334220-7900-071b-9327-0c6ecd012017%402ndquadrant.com
---
 doc/src/sgml/features.sgml                   |   9 +-
 doc/src/sgml/information_schema.sgml         | 216 -------------------
 src/backend/catalog/information_schema.sql   |  70 ------
 src/backend/catalog/sql_feature_packages.txt |  29 ---
 src/backend/catalog/sql_features.txt         |   4 -
 src/test/regress/expected/sanity_check.out   |   3 -
 6 files changed, 3 insertions(+), 328 deletions(-)

diff --git a/doc/src/sgml/features.sgml b/doc/src/sgml/features.sgml
index f767bee46e..2c5a7e5d0c 100644
--- a/doc/src/sgml/features.sgml
+++ b/doc/src/sgml/features.sgml
@@ -44,10 +44,7 @@ <title>SQL Conformance</title>
   broad three levels found in <acronym>SQL-92</acronym>.  A large
   subset of these features represents the <quote>Core</quote>
   features, which every conforming SQL implementation must supply.
-  The rest of the features are purely optional.  Some optional
-  features are grouped together to form <quote>packages</quote>, which
-  SQL implementations can claim conformance to, thus claiming
-  conformance to particular groups of features.
+  The rest of the features are purely optional.
  </para>
 
  <para>
@@ -116,7 +113,7 @@ <title>Supported Features</title>
       <thead>
        <row>
         <entry>Identifier</entry>
-        <entry>Package</entry>
+        <entry>Core?</entry>
         <entry>Description</entry>
         <entry>Comment</entry>
        </row>
@@ -143,7 +140,7 @@ <title>Unsupported Features</title>
       <thead>
        <row>
         <entry>Identifier</entry>
-        <entry>Package</entry>
+        <entry>Core?</entry>
         <entry>Description</entry>
         <entry>Comment</entry>
        </row>
diff --git a/doc/src/sgml/information_schema.sgml b/doc/src/sgml/information_schema.sgml
index 906fe7819f..7a995a1b64 100644
--- a/doc/src/sgml/information_schema.sgml
+++ b/doc/src/sgml/information_schema.sgml
@@ -4963,160 +4963,6 @@ <title><literal>sql_implementation_info</literal> Columns</title>
   </table>
  </sect1>
 
- <sect1 id="infoschema-sql-languages">
-  <title><literal>sql_languages</literal></title>
-
-  <para>
-   The table <literal>sql_languages</literal> contains one row for
-   each SQL language binding that is supported by
-   <productname>PostgreSQL</productname>.
-   <productname>PostgreSQL</productname> supports direct SQL and
-   embedded SQL in C; that is all you will learn from this table.
-  </para>
-
-  <para>
-   This table was removed from the SQL standard in SQL:2008, so there
-   are no entries referring to standards later than SQL:2003.
-  </para>
-
-  <table>
-   <title><literal>sql_languages</literal> Columns</title>
-
-   <tgroup cols="3">
-    <thead>
-     <row>
-      <entry>Name</entry>
-      <entry>Data Type</entry>
-      <entry>Description</entry>
-     </row>
-    </thead>
-
-    <tbody>
-     <row>
-      <entry><literal>sql_language_source</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>
-       The name of the source of the language definition; always
-       <literal>ISO 9075</literal>, that is, the SQL standard
-      </entry>
-     </row>
-
-     <row>
-      <entry><literal>sql_language_year</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>
-       The year the standard referenced in
-       <literal>sql_language_source</literal> was approved.
-      </entry>
-     </row>
-
-     <row>
-      <entry><literal>sql_language_conformance</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>
-       The standard conformance level for the language binding.  For
-       ISO 9075:2003 this is always <literal>CORE</literal>.
-      </entry>
-     </row>
-
-     <row>
-      <entry><literal>sql_language_integrity</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>Always null (This value is relevant to an earlier version of the SQL standard.)</entry>
-     </row>
-
-     <row>
-      <entry><literal>sql_language_implementation</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>Always null</entry>
-     </row>
-
-     <row>
-      <entry><literal>sql_language_binding_style</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>
-       The language binding style, either <literal>DIRECT</literal> or
-       <literal>EMBEDDED</literal>
-      </entry>
-     </row>
-
-     <row>
-      <entry><literal>sql_language_programming_language</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>
-       The programming language, if the binding style is
-       <literal>EMBEDDED</literal>, else null.  <productname>PostgreSQL</productname> only
-       supports the language C.
-      </entry>
-     </row>
-    </tbody>
-   </tgroup>
-  </table>
- </sect1>
-
- <sect1 id="infoschema-sql-packages">
-  <title><literal>sql_packages</literal></title>
-
-  <para>
-   The table <literal>sql_packages</literal> contains information
-   about which feature packages defined in the SQL standard are
-   supported by <productname>PostgreSQL</productname>.  Refer to <xref
-   linkend="features"/> for background information on feature packages.
-  </para>
-
-  <table>
-   <title><literal>sql_packages</literal> Columns</title>
-
-   <tgroup cols="3">
-    <thead>
-     <row>
-      <entry>Name</entry>
-      <entry>Data Type</entry>
-      <entry>Description</entry>
-     </row>
-    </thead>
-
-    <tbody>
-     <row>
-      <entry><literal>feature_id</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>Identifier string of the package</entry>
-     </row>
-
-     <row>
-      <entry><literal>feature_name</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>Descriptive name of the package</entry>
-     </row>
-
-     <row>
-      <entry><literal>is_supported</literal></entry>
-      <entry><type>yes_or_no</type></entry>
-      <entry>
-       <literal>YES</literal> if the package is fully supported by the
-       current version of <productname>PostgreSQL</productname>, <literal>NO</literal> if not
-      </entry>
-     </row>
-
-     <row>
-      <entry><literal>is_verified_by</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>
-       Always null, since the <productname>PostgreSQL</productname> development group does not
-       perform formal testing of feature conformance
-      </entry>
-     </row>
-
-     <row>
-      <entry><literal>comments</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>Possibly a comment about the supported status of the package</entry>
-     </row>
-    </tbody>
-   </tgroup>
-  </table>
- </sect1>
-
  <sect1 id="infoschema-sql-parts">
   <title><literal>sql_parts</literal></title>
 
@@ -5239,68 +5085,6 @@ <title><literal>sql_sizing</literal> Columns</title>
   </table>
  </sect1>
 
- <sect1 id="infoschema-sql-sizing-profiles">
-  <title><literal>sql_sizing_profiles</literal></title>
-
-  <para>
-   The table <literal>sql_sizing_profiles</literal> contains
-   information about the <literal>sql_sizing</literal> values that are
-   required by various profiles of the SQL standard.  <productname>PostgreSQL</productname> does
-   not track any SQL profiles, so this table is empty.
-  </para>
-
-  <table>
-   <title><literal>sql_sizing_profiles</literal> Columns</title>
-
-   <tgroup cols="3">
-    <thead>
-     <row>
-      <entry>Name</entry>
-      <entry>Data Type</entry>
-      <entry>Description</entry>
-     </row>
-    </thead>
-
-    <tbody>
-     <row>
-      <entry><literal>sizing_id</literal></entry>
-      <entry><type>cardinal_number</type></entry>
-      <entry>Identifier of the sizing item</entry>
-     </row>
-
-     <row>
-      <entry><literal>sizing_name</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>Descriptive name of the sizing item</entry>
-     </row>
-
-     <row>
-      <entry><literal>profile_id</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>Identifier string of a profile</entry>
-     </row>
-
-     <row>
-      <entry><literal>required_value</literal></entry>
-      <entry><type>cardinal_number</type></entry>
-      <entry>
-       The value required by the SQL profile for the sizing item, or 0
-       if the profile places no limit on the sizing item, or null if
-       the profile does not require any of the features for which the
-       sizing item is applicable
-      </entry>
-     </row>
-
-     <row>
-      <entry><literal>comments</literal></entry>
-      <entry><type>character_data</type></entry>
-      <entry>Possibly a comment pertaining to the sizing item within the profile</entry>
-     </row>
-    </tbody>
-   </tgroup>
-  </table>
- </sect1>
-
  <sect1 id="infoschema-table-constraints">
   <title><literal>table_constraints</literal></title>
 
diff --git a/src/backend/catalog/information_schema.sql b/src/backend/catalog/information_schema.sql
index c42e76ea89..5d64791c5d 100644
--- a/src/backend/catalog/information_schema.sql
+++ b/src/backend/catalog/information_schema.sql
@@ -1648,56 +1648,6 @@ CREATE TABLE sql_implementation_info (
 GRANT SELECT ON sql_implementation_info TO PUBLIC;
 
 
-/*
- * SQL_LANGUAGES table
- * apparently removed in SQL:2008
- */
-
-CREATE TABLE sql_languages (
-    sql_language_source         character_data,
-    sql_language_year           character_data,
-    sql_language_conformance    character_data,
-    sql_language_integrity      character_data,
-    sql_language_implementation character_data,
-    sql_language_binding_style  character_data,
-    sql_language_programming_language character_data
-);
-
-INSERT INTO sql_languages VALUES ('ISO 9075', '1999', 'CORE', NULL, NULL, 'DIRECT', NULL);
-INSERT INTO sql_languages VALUES ('ISO 9075', '1999', 'CORE', NULL, NULL, 'EMBEDDED', 'C');
-INSERT INTO sql_languages VALUES ('ISO 9075', '2003', 'CORE', NULL, NULL, 'DIRECT', NULL);
-INSERT INTO sql_languages VALUES ('ISO 9075', '2003', 'CORE', NULL, NULL, 'EMBEDDED', 'C');
-
-GRANT SELECT ON sql_languages TO PUBLIC;
-
-
-/*
- * SQL_PACKAGES table
- * removed in SQL:2011
- */
-
-CREATE TABLE sql_packages (
-    feature_id      character_data,
-    feature_name    character_data,
-    is_supported    yes_or_no,
-    is_verified_by  character_data,
-    comments        character_data
-);
-
-INSERT INTO sql_packages VALUES ('PKG000', 'Core', 'NO', NULL, '');
-INSERT INTO sql_packages VALUES ('PKG001', 'Enhanced datetime facilities', 'YES', NULL, '');
-INSERT INTO sql_packages VALUES ('PKG002', 'Enhanced integrity management', 'NO', NULL, '');
-INSERT INTO sql_packages VALUES ('PKG003', 'OLAP facilities', 'NO', NULL, '');
-INSERT INTO sql_packages VALUES ('PKG004', 'PSM', 'NO', NULL, 'PL/pgSQL is similar.');
-INSERT INTO sql_packages VALUES ('PKG005', 'CLI', 'NO', NULL, 'ODBC is similar.');
-INSERT INTO sql_packages VALUES ('PKG006', 'Basic object support', 'NO', NULL, '');
-INSERT INTO sql_packages VALUES ('PKG007', 'Enhanced object support', 'NO', NULL, '');
-INSERT INTO sql_packages VALUES ('PKG008', 'Active database', 'NO', NULL, '');
-INSERT INTO sql_packages VALUES ('PKG010', 'OLAP', 'NO', NULL, 'NO');
-
-GRANT SELECT ON sql_packages TO PUBLIC;
-
-
 /*
  * 5.59
  * SQL_PARTS table
@@ -1768,26 +1718,6 @@ CREATE TABLE sql_sizing (
 GRANT SELECT ON sql_sizing TO PUBLIC;
 
 
-/*
- * SQL_SIZING_PROFILES table
- * removed in SQL:2011
- */
-
--- The data in this table are defined by various profiles of SQL.
--- Since we don't have any information about such profiles, we provide
--- an empty table.
-
-CREATE TABLE sql_sizing_profiles (
-    sizing_id       cardinal_number,
-    sizing_name     character_data,
-    profile_id      character_data,
-    required_value  cardinal_number,
-    comments        character_data
-);
-
-GRANT SELECT ON sql_sizing_profiles TO PUBLIC;
-
-
 /*
  * 5.61
  * TABLE_CONSTRAINTS view
diff --git a/src/backend/catalog/sql_feature_packages.txt b/src/backend/catalog/sql_feature_packages.txt
index 382e4aea5c..1d87a3e31e 100644
--- a/src/backend/catalog/sql_feature_packages.txt
+++ b/src/backend/catalog/sql_feature_packages.txt
@@ -22,46 +22,17 @@ F021	Core
 F031	Core
 F041	Core
 F051	Core
-F052	Enhanced datetime facilities
 F081	Core
 F131	Core
 F181	Core
-F191	Enhanced integrity management
 F201	Core
 F221	Core
 F261	Core
 F311	Core
-F411	Enhanced datetime facilities
 F471	Core
 F481	Core
-F491	Enhanced integrity management
 F501	Core
-F521	Enhanced integrity management
-F555	Enhanced datetime facilities
-F671	Enhanced integrity management
-F701	Enhanced integrity management
 F812	Core
 S011	Core
-S023	Basic object support
-S024	Enhanced object support
-S041	Basic object support
-S043	Enhanced object support
-S051	Basic object support
-S071	Enhanced object support
-S081	Enhanced object support
-S111	Enhanced object support
-S151	Basic object support
-S161	Enhanced object support
-S211	Enhanced object support
-S231	Enhanced object support
-T041	Basic object support
-T191	Enhanced integrity management
-T201	Enhanced integrity management
-T211	Active database
-T211	Enhanced integrity management
-T212	Enhanced integrity management
 T321	Core
-T322	PSM
-T431	OLAP
-T611	OLAP
 T631	Core
diff --git a/src/backend/catalog/sql_features.txt b/src/backend/catalog/sql_features.txt
index 9c68292a54..ab3e381cff 100644
--- a/src/backend/catalog/sql_features.txt
+++ b/src/backend/catalog/sql_features.txt
@@ -285,11 +285,7 @@ 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	
-F501	Features and conformance views	03	SQL_LANGUAGES view	YES	
 F502	Enhanced documentation tables			YES	
-F502	Enhanced documentation tables	01	SQL_SIZING_PROFILES view	YES	
-F502	Enhanced documentation tables	02	SQL_IMPLEMENTATION_INFO view	YES	
-F502	Enhanced documentation tables	03	SQL_PACKAGES view	YES	
 F521	Assertions			NO	
 F531	Temporary tables			YES	
 F555	Enhanced seconds precision			YES	
diff --git a/src/test/regress/expected/sanity_check.out b/src/test/regress/expected/sanity_check.out
index d6e75ffce6..070de78e85 100644
--- a/src/test/regress/expected/sanity_check.out
+++ b/src/test/regress/expected/sanity_check.out
@@ -177,11 +177,8 @@ shighway|t
 slow_emp4000|f
 sql_features|f
 sql_implementation_info|f
-sql_languages|f
-sql_packages|f
 sql_parts|f
 sql_sizing|f
-sql_sizing_profiles|f
 stud_emp|f
 student|f
 tableam_parted_a_heap2|f
-- 
2.23.0

#4Michael Paquier
michael@paquier.xyz
In reply to: Peter Eisentraut (#3)
Re: Remove obsolete information schema tables

On Sun, Oct 20, 2019 at 10:01:09AM +0200, Peter Eisentraut wrote:

On 2019-10-17 09:44, Michael Paquier wrote:

I have a question here. Per the notes in information_schema.sql,
SQL_SIZING_PROFILES has been removed in SQL:2011,

OK, we can remove that one as well. New patch attached.

Looks fine.

attributes.isnullable and DOMAIN_UDT_USAGE in SQL:2003~. Would it
make sense to cleanup those ones?

OK, I'll look into those, but it seems like a separate undertaking. We
don't always remove things just because they were dropped by the SQL
standard.

But that's the same kind of cleanup you do here. What's the
difference with DOMAIN_UDT_USAGE, which is mentioned as removed from
SQL:2003?
--
Michael

#5Peter Eisentraut
peter.eisentraut@2ndquadrant.com
In reply to: Michael Paquier (#4)
Re: Remove obsolete information schema tables

On 2019-10-21 07:34, Michael Paquier wrote:

On Sun, Oct 20, 2019 at 10:01:09AM +0200, Peter Eisentraut wrote:

On 2019-10-17 09:44, Michael Paquier wrote:

I have a question here. Per the notes in information_schema.sql,
SQL_SIZING_PROFILES has been removed in SQL:2011,

OK, we can remove that one as well. New patch attached.

Looks fine.

committed

attributes.isnullable and DOMAIN_UDT_USAGE in SQL:2003~. Would it
make sense to cleanup those ones?

OK, I'll look into those, but it seems like a separate undertaking. We
don't always remove things just because they were dropped by the SQL
standard.

But that's the same kind of cleanup you do here. What's the
difference with DOMAIN_UDT_USAGE, which is mentioned as removed from
SQL:2003?

SQL_LANGUAGES for example, contains information about which version of
the SQL standard is being conformed to. But since it's no longer in the
standard, it most recently said that SQL:2003 is supported, which isn't
very useful. We could extrapolate new values for more recent standards,
but that's also questionable. So it makes sense to remove it.

By contrast, I don't know why DOMAIN_UDT_USAGE was removed. It might
still be useful. Just because something is dropped by an SQL standard,
it doesn't mean we should remove it. For example, bit and bit varying
are no longer in the standard.

--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services