Subject: [pgAdmin4][Patch]: RM #3180 Index node is missing from the tree view of the table node

From: Akshay Joshi <[email-masked]>
Date: Thu, 29 Mar 2018 18:05:29 +0530

Hi Hackers,

Please find the attached patch to fix RM #3180 Index node is missing from
the tree view of the table node. This is a regression of one of the older
commit.

-- 
*Akshay Joshi*

*Sr. Software Architect *

*Phone: +91 20-3058-9517Mobile: +91 976-788-8246*

---

From: Murtuza Zabuawala <[email-masked]>
Date: Thu, 29 Mar 2018 18:36:40 +0530

Hi Akshay,

I have concerns regarding the fix, As you negate the condition, Before the
fix it was not displaying Index node for Tables but after the fix it will
not display it for Partition tables.
But when I read the Postgres docs it say,
*Partitions may themselves be defined as partitioned tables, using what is
called sub-partitioning. Partitions may have their own indexes, constraints
and default values, distinct from those of other partitions. Indexes must
be created separately for each partition. See CREATE TABLE
<https://www.postgresql.org/docs/10/static/sql-createtable.html> for more
details on creating partitioned tables and partitions.*
Ref: https://www.postgresql.org/docs/10/static/ddl-partitioning.html (Sec:
5.10.2)

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

On Thu, Mar 29, 2018 at 6:05 PM, Akshay Joshi <[email-masked]
> wrote:

---

From: Dave Page <[email-masked]>
Date: Thu, 29 Mar 2018 14:10:39 +0100

Thanks, applied.

On Thu, Mar 29, 2018 at 1:35 PM, Akshay Joshi <[email-masked]

> *Phone: +91 20-3058-9517 <+91%2020%203058%209517>Mobile: +91 976-788-8246
> <+91%2097678%2088246>*
>

-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

---

From: Akshay Joshi <[email-masked]>
Date: Thu, 29 Mar 2018 18:56:27 +0530

Hi Murtuza

On Thu, Mar 29, 2018 at 6:36 PM, Murtuza Zabuawala <
[email-masked]> wrote:

> Ref: https://www.postgresql.org/docs/10/static/ddl-partitioning.html
> (Sec: 5.10.2)
>

    Yes that is correct, but it's about Partitions(child tables), not the
*Partitioned* table. We are showing indexes on Partitions. Please refer
"Index_on_Partitioned_table.png"

> On Thu, Mar 29, 2018 at 6:05 PM, Akshay Joshi <
> [email-masked]> wrote:
>
>> Hi Hackers,
>>
>> Please find the attached patch to fix RM #3180 Index node is missing
>> from the tree view of the table node. This is a regression of one of the
>> older commit.
>>
>> --
>> *Akshay Joshi*
>>

-- 
*Akshay Joshi*

---

From: Joao De Almeida Pereira <[email-masked]>
Date: Thu, 29 Mar 2018 15:36:53 +0000

Hi Murtuza,
Lets imagine you have

CREATE TABLE cities (
    city_id         bigserial not null,
    name         text not null,
    population   int
) PARTITION BY LIST (initcap(name));

CREATE TABLE cities_west
    PARTITION OF cities (
    CONSTRAINT city_id_nonzero CHECK (city_id != 0)
) FOR VALUES IN ('Los Angeles', 'San Francisco') PARTITION BY RANGE
(population);

CREATE TABLE cities_west_10000_to_100000
    PARTITION OF cities_west FOR VALUES FROM (10000) TO (100000);

​

You can only create an index in *cities_west_10000_to_100000* because
postgresql assumes that *cities_west* is also a partitioned table. So the
implementation looks correct, despite the fact that there are no tests
around it.

Thanks
Joao

On Thu, Mar 29, 2018 at 9:26 AM Akshay Joshi <[email-masked]>
wrote:

>> I have concerns regarding the fix, As you negate the condition, Before
>> the fix it was not displaying Index node for Tables but after the fix it
>> will not display it for Partition tables.
>> *Partitions may themselves be defined as partitioned tables, using what
>> is called sub-partitioning. Partitions may have their own indexes,
>> constraints and default values, distinct from those of other partitions.
>> Indexes must be created separately for each partition. See CREATE TABLE
>>> *Phone: +91 20-3058-9517 <+91%2020%203058%209517>Mobile: +91
>>> 976-788-8246 <+91%2097678%2088246>*
>>>
>>
>>
>
>
> --
> *Akshay Joshi*
>

---

From: Murtuza Zabuawala <[email-masked]>
Date: Thu, 29 Mar 2018 22:15:01 +0530

Thanks Akshay & Joao, got it.

My bad sorry for the noise.

On Thu, Mar 29, 2018 at 9:06 PM, Joao De Almeida Pereira <
[email-masked]> wrote:

> ) FOR VALUES IN ('Los Angeles', 'San Francisco') PARTITION BY RANGE (population);
>
> On Thu, Mar 29, 2018 at 9:26 AM Akshay Joshi <
>> On Thu, Mar 29, 2018 at 6:36 PM, Murtuza Zabuawala <murtuza.zabuawala@
>> enterprisedb.com> wrote:
>>
>>> Hi Akshay,
>>>

---

From: Robert Eckhardt <[email-masked]>
Date: Thu, 29 Mar 2018 13:07:55 -0400

> My bad sorry for the noise.

The question helped me, nothing wrong with questions.

-- Rob

>> postgresql assumes that *cities_west* is also a partitioned table. So
>> the implementation looks correct, despite the fact that there are no tests
>> around it.
>>
>> Thanks
>> Joao
>>
>>>     Yes that is correct, but it's about Partitions(child tables), not
>>> the *Partitioned* table. We are showing indexes on Partitions. Please refer