Re: ToDo: show size of partitioned table - Mailing list pgsql-hackers

From Kyotaro HORIGUCHI
Subject Re: ToDo: show size of partitioned table
Date
Msg-id 20190403.120209.259853618.horiguchi.kyotaro@lab.ntt.co.jp
Whole thread Raw
In response to Re: ToDo: show size of partitioned table  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Responses Re: ToDo: show size of partitioned table
List pgsql-hackers
At Tue, 2 Apr 2019 22:49:25 -0300, Alvaro Herrera <alvherre@2ndquadrant.com> wrote in
<20190403014925.GA9976@alvherre.pgsql>
> Hi Amit
> 
> On 2019-Apr-03, Amit Langote wrote:
> 
> > Thanks.  I'm getting an error while applying v12:
> > 
> > patching file src/bin/psql/po/es.po
> > Hunk #1 FAILED at 12.
> > 1 out of 2 hunks FAILED -- saving rejects to file src/bin/psql/po/es.po.rej
> 
> Uh, I certainly did not intend to send the es.po part of the patch, I
> was just testing that the translation worked as intended.  That's what I
> get for doing stuff till the last minute ...

\dPn doesn't show children because the are of 'r' relkind. And
\dPn * doesn't show type for children.

create table pa (a int, b int) partition by range (a);
create table c1 partition of pa for values from (0) to (10);
create table c2 partition of pa for values from (10) to (20);
create index on pa(a);

postgres=# \dPn *
                  List of partitioned tables and indexes
 Schema |   Name   |  Owner   |       Type        | Parent name | On table 
--------+----------+----------+-------------------+-------------+----------
 public | pa       | horiguti | partitioned table |             | 
 public | pa_a_idx | horiguti | partitioned index |             | pa
(2 rows)


With the attached on top of the latest patch, we get the following result.

postgres=# \dPn *
                  List of partitioned tables and indexes
 Schema |   Name   |  Owner   |       Type        | Parent name | On table 
--------+----------+----------+-------------------+-------------+----------
 public | c1       | horiguti | partition table   | pa          | 
 public | c1_a_idx | horiguti | partition index   | pa_a_idx    | c1
 public | c2       | horiguti | partition table   | pa          | 
 public | c2_a_idx | horiguti | partition index   | pa_a_idx    | c2
 public | pa       | horiguti | partitioned table |             | 
 public | pa_a_idx | horiguti | partitioned index |             | pa
(6 rows)

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index 736cca33d6..5f97bfc4b2 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -3954,7 +3954,11 @@ listPartitions(const char *pattern, bool verbose, bool show_indexes,
         }
     }
 
-    appendPQExpBuffer(&buf, "\nWHERE c.relkind IN (%s)", relkind_str);
+    if (show_nested)
+        appendPQExpBuffer(&buf, "\nWHERE (c.relkind IN (%s) OR c3.relkind IN (%s))", relkind_str, relkind_str);
+    else
+        appendPQExpBuffer(&buf, "\nWHERE c.relkind IN (%s)", relkind_str);
+        
     appendPQExpBufferStr(&buf, !show_nested ? " AND NOT c.relispartition\n" : "\n");
 
     if (!pattern)
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index 5f97bfc4b2..41075f9a67 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -3864,9 +3864,13 @@ listPartitions(const char *pattern, bool verbose, bool show_indexes,
                       ",\n  CASE c.relkind"
                       " WHEN " CppAsString2(RELKIND_PARTITIONED_TABLE) " THEN '%s'"
                       " WHEN " CppAsString2(RELKIND_PARTITIONED_INDEX) " THEN '%s'"
+                      " WHEN " CppAsString2(RELKIND_RELATION) " THEN '%s'"
+                      " WHEN " CppAsString2(RELKIND_INDEX) " THEN '%s'"
                       " END as \"%s\"",
                       gettext_noop("partitioned table"),
                       gettext_noop("partitioned index"),
+                      gettext_noop("partition table"),
+                      gettext_noop("partition index"),
                       gettext_noop("Type"));
 
         translate_columns[3] = true;

pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: Transaction commits VS Transaction commits (with parallel) VSquery mean time
Next
From: Masahiko Sawada
Date:
Subject: Re: New vacuum option to do only freezing