Amit Langote wrote:
> On 2017/07/11 13:34, Alvaro Herrera wrote:
> > Robert Haas wrote:
> >> On Mon, Jul 10, 2017 at 2:15 AM, Amit Langote
> >> <Langote_Amit_f8@lab.ntt.co.jp> wrote:
> >
> >>> Actually, if \d had shown RELKIND_PARTITIONED_TABLE tables as of Type
> >>> "partitioned table", we wouldn't need a separate flag for marking a table
> >>> as having partitions.
> >>
> >> I think that is false. Whether something is partitioned and whether
> >> it is a partition are independent concerns.
> >
> > Maybe this discussion is easier if we differentiate "list tables" (\dt,
> > or \d without a pattern) from "describe table" (\d with a name pattern).
>
> I think this discussion has mostly focused on "list tables" so far.
Yes, which I think is a mistake, because for some things you definitely
need a list of partitions of the table in question. And "describe
table" can fulfill that role perfectly well, ISTM.
> > It seems to me that the "describe" command should list partitions --
> > perhaps only when the + flag is given.
>
> That's what happens today.
So no further changes needed there -- good.
> > However, the "list tables"
> > command \dt should definitely IMO not list partitions.
>
> Do you mean never? Even if a modifier is specified? In the patch I
> proposed, \d! (or \d+ or \d++, if '!' turns out to be unpopular) will list
> partitions, but \d or \dt won't. That is, partitions are hidden by default.
I don't think there is any need for a single list of all partition of
all tables -- is there? I can't think of anything, but then I haven't
been exposed very much to this feature yet. For now, I lean towards "never".
(A different consideration is the use case of listing relation
relfrozenxid/relminmxid ages, but that use case is already not fulfilled
by psql metacommands so you still need custom catalog queries).
I don't think \d! works terribly well as a mental model, but maybe
that's just me.
> > Maybe \dt should
> > have some flag indicating whether each table is partitioned.
>
> So it seems most of us are in favor for showing partitioned tables as
> "partitioned table" instead of "table" in the table listing.
Yeah, that sounds good to me.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services