public inbox for [email protected]  
help / color / mirror / Atom feed
From: Shirley Wang <[email protected]>
To: Akshay Joshi <[email protected]>
Cc: pgadmin-hackers <[email protected]>
Subject: Re: Declarative partitioning in pgAdmin4
Date: Mon, 22 May 2017 21:29:27 +0000
Message-ID: <CAPG3WN7haKwrQzrgVh7JSunGcP9_6wj=_q_C9J-yYgsZbhWmEw@mail.gmail.com> (raw)
In-Reply-To: <CANxoLDfjy6sWQVHy5m5Rj1R5_=x_XwPzz6Mndj3xXfnEYpU_zg@mail.gmail.com>
References: <CANxoLDcZND0pjXtrDKRip2xjddzjWiMgY2AMmrqqFE_Yu4+tHw@mail.gmail.com>
	<CA+OCxowUuaNRX9jHmEVFpqT7JCbjn6vaxw+JJ6yrvVp69FZscg@mail.gmail.com>
	<CAPG3WN5NY-Xsa_+6HUQ3NMU_n7jRgJ8L6rjHfyzSLSHS=zZC0Q@mail.gmail.com>
	<CA+OCxoy1v+mq2P4ZL2v7mmyHmjwQmL=v8RR8CSRra_SV96nJDQ@mail.gmail.com>
	<CANxoLDeBGRmq_kUUNNySXimzJO2Ebj0aQBdjNM+0JvP3_Yr9Dw@mail.gmail.com>
	<CAAtBm9Ve2FX4_jY9tv11UqK2BhNoLn118aeT4y=TieSAovL+AA@mail.gmail.com>
	<CA+OCxozkEdTmVUtJEBdHT97EbiUK_+cwW+rv21tuHyxSnN3HOg@mail.gmail.com>
	<CAAtBm9UHyp+bkxcyYL+1qb9knps_cdh6N0tvwMy5uY-eVjWcPg@mail.gmail.com>
	<CANxoLDdgp46uAZzda+cHBn16YibodXgtyH7O1hp39TKT=cv_ig@mail.gmail.com>
	<CA+OCxowpGBLT1q2DzL9VpRG5So8zYssP9SAdd=3Mc6dk8_-p7A@mail.gmail.com>
	<CANxoLDdP945GEfzeYaPjO41D4VoRN2kDMVhHZCOqCXWKegSEHw@mail.gmail.com>
	<CA+OCxowCzLAFybtfnsay9NB0BFORP5yXiitruxh9tvMoADNKRQ@mail.gmail.com>
	<CANxoLDcqudMZ5j-30EcFEL9KpQxyvrMWo0mVrWdg0p6_8e7peQ@mail.gmail.com>
	<CA+OCxow5pXNkDxrL1dbWbheJjpSseefSdvUs5tiwx7k5o3vB7Q@mail.gmail.com>
	<CANxoLDeNovspn8mm0XuYh+F2ShGotwRCAikU5JY9qF1GgFQ9rg@mail.gmail.com>
	<CA+OCxowtH1WJpXA1MKSLrzx_qbKAA36GTEk1t5=3VAS8fegBiA@mail.gmail.com>
	<CANxoLDeLHGvz0NxH_MM7dCe0muA8Sxe54V65b18iHTAESzt97g@mail.gmail.com>
	<CANxoLDeuXKCqrdNwiBut5m7FKQwzRjbPrqR6wHf8qKqgLDnwgQ@mail.gmail.com>
	<CAPG3WN4tiMGoFadBZ9KjB8NfNDVfvDnfUHhS=aya5A0o-jZ3Xw@mail.gmail.com>
	<CANxoLDfN_RvNc0AsVCtrDC-03L53crHzE8JZjmxna3f08KWVqw@mail.gmail.com>
	<CAPG3WN5QA88fNmY4jZZhBY+HUn2FAKecHuvyFjnq2x_vGu4_0w@mail.gmail.com>
	<CANxoLDfjy6sWQVHy5m5Rj1R5_=x_XwPzz6Mndj3xXfnEYpU_zg@mail.gmail.com>
List-Unsubscribe:  <mailto:[email protected]?body=unsub%20pgadmin-hackers>

On Mon, May 22, 2017 at 5:28 AM Akshay Joshi <[email protected]>
wrote:

> Hi All
>
> As continuation I have worked on "Partition" Tab and added some controls
> where user will be able to specify the key columns and create N number of
> partitions:
>
>    - Added Partition Type combo box where user will define the
>    Type(Range/List)
>    - "Partition Keys" subnode control where there is combo box to specify
>    it is column or expression. If it is column then on expanding subnode
>    control all the columns specified to create main table will be listed here.
>    User won't be able to select multiple columns here. If it is expression
>    then user will be able to specify correct expression with correct
>    parenthesis. In case of List partition only one row will be allowed.
>
> To get out an MVP, perhaps we should focus on just establishing a
partition for a single range and list, then figure out how an expression
would work. It seems like the majority of use cases for using a range
partition would be by date so let's get that functionality working and
worry about expressions once we have live feedback to minimize risk (excess
time spent developing features with many unknowns about user behavior)

>
>    - "Partitions" control is used to create N number of partitions. In
>    case of Range partition there are three columns "Name", "Value From" and
>    "Value To". If partition key is combination of multiple columns or
>    combination of column and expression then user will have to provide (,)
>    comma separated values. Refer "*Range_Partition.png*". In case of List
>    partition there are two columns "Name" and "Values In" and user will have
>    to provide (,) separated list for "Values In" column. Refer "
>    *List_Partition.png*".
>
> Here's a sketch of what a single range would look like:

[image: partition-Range1.jpg][image: partition-Range2.jpg]



> *Note*: Apart from above there are following that needs to be taken care:
>
>    - Once user will define the partition keys and partitions based on the
>    columns define for main table and then user will rename/delete any column
>    from "Columns" Tab we will warn user about renaming/deleting any column
>    will reset all the rows define under partitions tab. This is just because
>    we can rename/delete the column from partition keys but not sure how we can
>    remove/rename it from the expression defined by the user.
>
> That's fine, as long as they are still able to do so after a warning.

>
>    - *Major challenge* here is while creating partitions(second subnode
>    control in attached image) according to the documentation user will be able
>    to create constraints( Primary, Foreign, Unique...). How user will be able
>    to add constraints from GUI? Do we need to implement a new control where
>    one subnode control contains the whole "Constraints" Tab or any other
>    solution.
>
>
>
We can probably leverage the same table. We're investigating constraints as
well.

Shirley & Rob

>


Attachments:

  [image/png] create table.png (334.1K, 3-create%20table.png)
  download | view image

  [image/png] define partition.png (329.4K, 4-define%20partition.png)
  download | view image

  [image/png] add partition.png (330.2K, 5-add%20partition.png)
  download | view image

  [image/jpeg] partition-Range1.jpg (166.1K, 6-partition-Range1.jpg)
  download | view image

  [image/jpeg] partition-Range2.jpg (189.7K, 7-partition-Range2.jpg)
  download | view image

view thread (77+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: Declarative partitioning in pgAdmin4
  In-Reply-To: <CAPG3WN7haKwrQzrgVh7JSunGcP9_6wj=_q_C9J-yYgsZbhWmEw@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox