Re: [pgadmin-hackers] Declarative partitioning in pgAdmin4 - Mailing list pgadmin-hackers

From Dave Page
Subject Re: [pgadmin-hackers] Declarative partitioning in pgAdmin4
Date
Msg-id CA+OCxowUuaNRX9jHmEVFpqT7JCbjn6vaxw+JJ6yrvVp69FZscg@mail.gmail.com
Whole thread Raw
Responses Re: [pgadmin-hackers] Declarative partitioning in pgAdmin4  (Shirley Wang <swang@pivotal.io>)
List pgadmin-hackers
Hi

[moving to the pgadmin-hackers mailing list as this a pgAdmin feature]

On Wed, Apr 26, 2017 at 8:20 AM, Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Dave

Murtuza and I started thinking about "How to add Declarative Partitioning" support in pgAdmin4. We thought instead of showing Partition Table under existing Tables collection, we should add new collection node "Partition Tables". Showing table under the table node recursively will require lots of code changes in table and it's child nodes (column, index, trigger, etc..) which is more complex and error prone. 

Perhaps, but from the user's perspective, there's no reason to list them separately - they are just tables with a different structure from others. We shouldn't confuse the user just because it's more convenient for us.

I really think it should look like this:

- Tables
  - t1
    - Columns
    - Constraints
    - Partitions
      - p1
        - Sub Objects (whatever they may be)
        ...
      - p2
      ...
  - t2
  ...
   
 

Below is the design that we can implement: 
  • Create new "Partition Tables" collection node. User will be able to create partition table by clicking "Create -> Partition Table" menu that we will add on collection node. We will share the dialog prototype later once we will have complete understanding of it.
Can you share a mock-up of the dialog? The Figma tool that Shirley shared looks like it'll be good for doing that - I can invite you to the team. 
  • Once table is created user will be able to create partitions by clicking "Create -> Partitions" menu will be added on each partitioned table node. We will share the dialog prototype later once we will have complete understanding of it.
I would expect the user to be able to define the partitioning scheme when they create the table; e.g. on a new tab. It shouldn't be a two step process. 
  • We will have to show sub nodes like (column, index, trigger, constraints, etc..) on main table while some of the sub nodes won't require for partitions like (column and many more again require some more knowledge on partitioning).
OK.
 
Apart from above we will have to figure out following:
  • How to remove partitions(table) from existing tables node as value of relkind column is 'r' for partitions.
  • Partitioning scheme to show in SQL pane for partitions.
  • Some unknown issue/features of Declarative partitioning. 
OK.
 
The above implementation may take more time, so it might possible that we may not be able to finish it by 14th May (deadline).

It would be nice to have it by then, but the true deadline will be a later beta (TBD, but probably beta 2 which is sufficiently far off).

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

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

pgadmin-hackers by date:

Previous
From: Dave Page
Date:
Subject: Re: [pgadmin-hackers] [Design update] Style guide for pgAdmin4
Next
From: Joao Pedro De Almeida Pereira
Date:
Subject: Re: [pgadmin-hackers] [pgAdmin4][Patch]: Fixed RM #2315 : Sorting bysize is broken