On Sat, 2026-02-28 at 08:36 +0000, PG Doc comments form wrote:
> The following documentation comment has been logged on the website:
>
> Page: https://www.postgresql.org/docs/18/functions-admin.html
> Description:
>
> https://www.postgresql.org/docs/current/functions-admin.html
>
> pg_partition_root ( regclass ) → regclass
> Returns the top-most parent of the partition tree to which the given
> relation belongs. Returns NULL if the relation does not exist or is not a
> partition or partitioned table.
>
> "does not exist" is not correct description, if table does not exist, we'll
> get an error, not NULL:
>
> EXAMPLE:
> SELECT * FROM pg_partition_root( 'nonexisting_table' );
>
> RESULT:
> SQL Error [42P01]: ERROR: relation "nonexisting_table" does not exist
> Position: 34
The error you are getting is *not* from pg_partition_root(), but from the
cast from "text" to "regclass":
SELECT 'nonexisting_table'::regclass;
ERROR: relation "nonexisting_table" does not exist
LINE 1: SELECT 'nonexisting_table'::regclass;
^
And if you take a "regclass" that corresponds to an object ID that is not
the object ID of any existing relation, you get a NULL result:
SELECT pg_partition_root('12345'::regclass);
pg_partition_root
-------------------
(1 row)
Yours,
Laurenz Albe