From: | GF <phabriz(at)gmail(dot)com> |
---|---|
To: | Ron Johnson <ronljohnsonjr(at)gmail(dot)com> |
Cc: | pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Getting specific partition from the partition name |
Date: | 2024-08-09 15:34:54 |
Message-ID: | CAFePLY37HzJZYEz3N6Qrd2kG8p7cZ0j1A2SmgJ3Bv8bdM8LGiQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Fri, 9 Aug 2024 at 06:20, Ron Johnson <ronljohnsonjr(at)gmail(dot)com> wrote:
>
> What if the partitions aren't all rationally named? There *must* be a
> pg_* table out there which contains the partition boundaries...
>
>
The pg_class column relpartbound contains an internal representation of the
partition boundary, when applicable.
You can decompile it into the canonical text format with pg_get_expr( expr
pg_node_tree, relation oid [, pretty boolean ] ) → text.
So:
create table t(x int primary key) partition by list(x);
create table u partition of t for values in (0,1);
create table v partition of t for values in (2,3,4,5,6,7,8,9);
select oid::regclass,pg_get_expr(relpartbound,oid) from pg_class where
relkind='r' and relispartition;
oid | pg_get_expr
-----+----------------------------------------
u | FOR VALUES IN (0, 1)
v | FOR VALUES IN (2, 3, 4, 5, 6, 7, 8, 9)
(2 rows)
Best,
Giovanni
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2024-08-09 15:36:39 | Re: Trouble understanding how to avoid/manage ERROR: multixact "members" limit exceeded |
Previous Message | Jim Vanns | 2024-08-09 15:26:42 | Re: Trouble understanding how to avoid/manage ERROR: multixact "members" limit exceeded |