Here
https://www.postgresql.org/docs/current/infoschema-routine-column-usage.html 
<https://www.postgresql.org/docs/current/infoschema-routine-column-usage.html>

it is stated that "The view |routine_column_usage| is meant to identify all columns that are used by a function or procedure. This information is currently not tracked by PostgreSQL."

However, this claim is incorrect because the view provides information about the column usage of SQL functions that have SQL-standard function body.

Correct, the documentation was not updated when this was added. A few other views are similarly affected. How about this attached patch.
From dfe65ace27a5b2e11511e5d929eea356c8ca89e5 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Wed, 29 Nov 2023 14:56:41 +0100
Subject: [PATCH] doc: Update info on information schema usage tables

Commit f40c6969d0 added the information schema usage tables but added
documentation that they did not fully work yet.  Commit e717a9a18b
then added SQL-standard function bodies, which made the information
schema views fully functional, but it neglected to update the
documentation.  This is now done here.

Reported-by: Erki Eessaar <erki.eess...@taltech.ee>
Discussion: 
https://www.postgresql.org/message-id/flat/AM9PR01MB8268EC7B696F9FE346CA5B93FEB8A%40AM9PR01MB8268.eurprd01.prod.exchangelabs.com

TODO: backpatch 14+
---
 doc/src/sgml/information_schema.sgml | 30 +++++++++++++++-------------
 1 file changed, 16 insertions(+), 14 deletions(-)

diff --git a/doc/src/sgml/information_schema.sgml 
b/doc/src/sgml/information_schema.sgml
index 9c39e9aab5..0ca7d5a9e0 100644
--- a/doc/src/sgml/information_schema.sgml
+++ b/doc/src/sgml/information_schema.sgml
@@ -4846,9 +4846,11 @@ <title><structname>role_usage_grants</structname> 
Columns</title>
   <title><literal>routine_column_usage</literal></title>
 
   <para>
-   The view <literal>routine_column_usage</literal> is meant to identify all
-   columns that are used by a function or procedure.  This information is
-   currently not tracked by <productname>PostgreSQL</productname>.
+   The view <literal>routine_column_usage</literal> identifies all columns
+   that are used by a function or procedure, either in the SQL body or in
+   parameter default expressions.  (This only works for unquoted SQL bodies,
+   not quoted bodies or functions in other languages.)  A column is only
+   included if its table is owned by a currently enabled role.
   </para>
 
   <table>
@@ -5085,12 +5087,12 @@ <title><structname>routine_privileges</structname> 
Columns</title>
   <title><literal>routine_routine_usage</literal></title>
 
   <para>
-   The view <literal>routine_routine_usage</literal> is meant to identify all
-   functions or procedures that are used by another (or the same) function or
-   procedure, either in the body or in parameter default expressions.
-   Currently, only functions used in parameter default expressions are
-   tracked.  An entry is included here only if the used function is owned by a
-   currently enabled role.  (There is no such restriction on the using
+   The view <literal>routine_routine_usage</literal> identifies all functions
+   or procedures that are used by another (or the same) function or procedure,
+   either in the SQL body or in parameter default expressions.  (This only
+   works for unquoted SQL bodies, not quoted bodies or functions in other
+   languages.)  An entry is included here only if the used function is owned
+   by a currently enabled role.  (There is no such restriction on the using
    function.)
   </para>
 
@@ -5184,11 +5186,11 @@ <title><literal>routine_routine_usage</literal> 
Columns</title>
   <title><literal>routine_sequence_usage</literal></title>
 
   <para>
-   The view <literal>routine_sequence_usage</literal> is meant to identify all
-   sequences that are used by a function or procedure, either in the body or
-   in parameter default expressions.  Currently, only sequences used in
-   parameter default expressions are tracked.  A sequence is only included if
-   that sequence is owned by a currently enabled role.
+   The view <literal>routine_sequence_usage</literal> identifies all sequences
+   that are used by a function or procedure, either in the SQL body or in
+   parameter default expressions.  (This only works for unquoted SQL bodies,
+   not quoted bodies or functions in other languages.)  A sequence is only
+   included if that sequence is owned by a currently enabled role.
   </para>
 
   <table>
-- 
2.43.0

Reply via email to