From: | Akshay Joshi <akshay(dot)joshi(at)enterprisedb(dot)com> |
---|---|
To: | pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org> |
Cc: | Shirley Wang <swang(at)pivotal(dot)io>, Robert Eckhardt <reckhardt(at)pivotal(dot)io> |
Subject: | Re: Declarative partitioning in pgAdmin4 |
Date: | 2017-06-02 08:01:27 |
Message-ID: | CANxoLDc53XkKDO=8FHG1i7KnvPCCiR2-1DjCTQoV9_K4Z11pRQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgadmin-hackers |
Hi All
Following are the further implementation updates to support Declarative
Partitioning:
- Show all the existing partitions of the parent table in Partitions tab
(Refer Existing_Partitions.png)
- Ability to create N partitions and detach existing partitions. Refer
(Create_Detach_Partition.png), in this example I have detach two
existing partition and create two new partitions.
- Added "Detach Partition" menu to partitions node only and user will be
able to detach from there as well. Refer (Detach.png)
On Wed, May 24, 2017 at 8:00 PM, Robert Eckhardt <reckhardt(at)pivotal(dot)io>
wrote:
>
>
> On Wed, May 24, 2017 at 3:35 AM, Akshay Joshi <
> akshay(dot)joshi(at)enterprisedb(dot)com> wrote:
>
>>
>> Taking average of two columns is just an example/representation of
>> expression, there is no use case of that. As I am also in learning phase.
>> Below are some use case that I can think of:
>>
>> -
>>
>> Partitions based on first letter of their username
>>
>> CREATE TABLE users (
>> id serial not null,
>> username text not null,
>> password text,
>> created_on timestamptz not null,
>> last_logged_on timestamptz not null
>> )PARTITION BY RANGE ( lower( left( username, 1 ) ) );
>> CREATE TABLE users_0
>> partition of users (id, primary key (id), unique (username))
>> for values from ('a') to ('g');
>> CREATE TABLE users_1
>> partition of users (id, primary key (id), unique (username))
>> for values from ('g') to (unbounded);
>>
>> - Partition based on country's sale for each month of an year.
>>
>> CREATE TABLE public.sales
>>
>> (
>>
>> country text NOT NULL,
>>
>> sales bigint NOT NULL,
>>
>> saledate date
>>
>> ) PARTITION BY RANGE (country, (extract (YEAR FROM saledate)),
>> (extract(MONTH FROM saledate)))
>>
>>
>> CREATE TABLE public.sale_usa_2017_jan PARTITION OF sales
>>
>> FOR VALUES FROM ('usa', 2017, 01) TO ('usa', 2017, 02);
>>
>> CREATE TABLE public.sale_india_2017_jan PARTITION OF sales
>>
>> FOR VALUES FROM ('india', 2017, 01) TO ('india', 2017, 02);
>>
>> CREATE TABLE public.sale_uk_2017_jan PARTITION OF sales
>>
>> FOR VALUES FROM ('uk', 2017, 01) TO ('uk', 2017, 02);
>>
>>
>> INSERT INTO sales VALUES ('india', 10000, '2017-1-15');
>>
>> INSERT INTO sales VALUES ('uk', 20000, '2017-1-08');
>>
>> INSERT INTO sales VALUES ('usa', 30000, '2017-1-10');
>>
>> Apart from above there may be N number of use cases that depends on
>> specific requirement of user.
>>
>
> Thank you for the example, you are absolutely correct and we were
> confused.
>
> Given our new found understanding do you mind if we iterate a bit on the
> UI/UX? What we were suggesting with the daily/monthly/yearly drop down was
> a specific example of an expression. Given that fact that doesn't seem to
> be required in an MVP, however, I do think a more interactive experience
> between the definition of the child partitions and the creation of the
> partitions would be optimal.
>
> I'm not sure where you are with respect to implementing the UI but I'd
> love to float some ideas and mock ups past you.
>
> -- Rob
>
--
*Akshay Joshi*
*Principal Software Engineer *
*Phone: +91 20-3058-9517Mobile: +91 976-788-8246*
Attachment | Content-Type | Size |
---|---|---|
Create_Detach_Partition.png | image/png | 160.5 KB |
Detach.png | image/png | 169.2 KB |
Existing_Partitions.png | image/png | 112.0 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Murtuza Zabuawala | 2017-06-02 09:19:10 | [pgAdmin4][PATCH] To fix the validation in Types node |
Previous Message | Murtuza Zabuawala | 2017-06-02 07:01:17 | Re: [pgAdmin4] Feature tests fails on smaller screen resolution |