Re: [patch] Have psql's \d+ indicate foreign partitions
От | Justin Pryzby |
---|---|
Тема | Re: [patch] Have psql's \d+ indicate foreign partitions |
Дата | |
Msg-id | 20221024130323.GB16921@telsasoft.com обсуждение исходный текст |
Ответ на | [patch] Have psql's \d+ indicate foreign partitions (Ian Lawrence Barwick <barwick@gmail.com>) |
Ответы |
Re: [patch] Have psql's \d+ indicate foreign partitions
|
Список | pgsql-hackers |
On Mon, Oct 24, 2022 at 09:44:18PM +0900, Ian Lawrence Barwick wrote: > Recently I have been working a lot with partitioned tables which contain a mix > of local and foreign partitions, and find it would be very useful to be able to > easily obtain an overview of which partitions are foreign and where they are > located. > Partitions: parttest_10_0 FOR VALUES WITH (modulus 10, remainder 0), > parttest_10_1 FOR VALUES WITH (modulus 10, remainder 1), server: "fdw_node2", > which is much more informative, albeit a little more cluttered, but > @@ -3445,6 +3451,10 @@ describeOneTableDetails(const char *schemaname, > if (child_relkind == RELKIND_PARTITIONED_TABLE || > child_relkind == RELKIND_PARTITIONED_INDEX) > appendPQExpBufferStr(&buf, ", PARTITIONED"); > + else if (child_relkind == RELKIND_FOREIGN_TABLE && is_partitioned) > + appendPQExpBuffer(&buf, ", server: \"%s\"", PQgetvalue(result, i, 4)); > + else if (child_relkind == RELKIND_FOREIGN_TABLE && !is_partitioned) > + appendPQExpBuffer(&buf, " (server: \"%s\")", PQgetvalue(result, i, 4)); > if (strcmp(PQgetvalue(result, i, 2), "t") == 0) > appendPQExpBufferStr(&buf, " (DETACH PENDING)"); > if (i < tuples - 1) To avoid the clutter that you mentioned, I suggest that this should show that the table *is* foreign, but without the server - if you want to know the server (or its options), you can run another \d command for that (or run a SQL query). That's similar to what's shown if the child is partitioned: a suffix like ", PARTITIONED", but without show the partition strategy. I had a patch to allow \d++, and maybe showing the foreign server would be reasonable for that. But the patch got closed, evidently lack of interest.
В списке pgsql-hackers по дате отправления: