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


Reply via email to