Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dKoxd-0003bY-Bf for pgadmin-hackers@arkaria.postgresql.org; Tue, 13 Jun 2017 16:46:33 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dKoxc-0007j8-UI for pgadmin-hackers@arkaria.postgresql.org; Tue, 13 Jun 2017 16:46:32 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1dKoxL-0006vO-FZ for pgadmin-hackers@postgresql.org; Tue, 13 Jun 2017 16:46:15 +0000 Received: from mail-vk0-x22a.google.com ([2607:f8b0:400c:c05::22a]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1dKoxH-0007gH-Ib for pgadmin-hackers@postgresql.org; Tue, 13 Jun 2017 16:46:14 +0000 Received: by mail-vk0-x22a.google.com with SMTP id g66so67321328vki.1 for ; Tue, 13 Jun 2017 09:46:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pivotal-io.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=q3e5jjEJzWJYbGvH5RozPj/qsvOw1zkRU8s4lEyWqwM=; b=mP7soU1AyTL6ubePztyQ/DnAsJr//Ht660IiVVhnKqc2GQ667yAtTbQMMgtSQfq9xk LiTCSl2dCqMO2E5TF5awYFo/bHnNAguHiia9xdlPucpSf3ovTehgyAlmSb61nNclQOK7 C016sQLi5ey096eFeS5ecLpN/c8lHVAzdj5XeLyNgRvIPgFY0Nh0UNWNrBShcnZWE1vv Ws47CIV8IDY6WPkNPr026RNMlw6uX2S6P5G8eCzeOgmG+snpS8GsLVAQbAAadg9JQYF5 NOkbBgppye8t/i6n0rb/RBlmNza8ZdqobndQQyx0lyMbz7QkFtG8mQU981O5JB2G9G2b Svpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=q3e5jjEJzWJYbGvH5RozPj/qsvOw1zkRU8s4lEyWqwM=; b=dcLOrD75NNafI8I/HlBqKbK/QtYXhndZzi9du/gZHW6zCnNHOmuz/gNhqfC7Yykjh5 HfIwaCP5uNZwMexU4SYAxz1qYFBHNQ2GrTEwpbk70VWz8PM+k3EZcnop+iHnPCEDRaVX Lm/7h8QJM6v7+xtQWdogFqJecj+66jtjWjRRK6GWGqCYZaBMLmEcTDHNqkeC+SE/qSnh YA/7aJNnhlY/P+rF9WvtkvZxKym55CvvuXbmUHACK3qNVkhd5SDgJYAygS0KfyINJ7Ie ssiHu9DxFSKtLTDOMxiiJJkOpWlSdiJ1mfY1IbrrxYZ6HseO0mR1/Z5T3F6BvBwqMG+x k0SA== X-Gm-Message-State: AKS2vOyB/N2FHKHRjZbDmra2PPOEDa7j6EIO0t/6E+OGoKy3MMtfkfBK hSJdTlPiHR+cbAphy61qOI2v+TW24VV7 X-Received: by 10.31.63.207 with SMTP id m198mr492922vka.82.1497372369952; Tue, 13 Jun 2017 09:46:09 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.4.82 with HTTP; Tue, 13 Jun 2017 09:46:09 -0700 (PDT) In-Reply-To: References: From: Robert Eckhardt Date: Tue, 13 Jun 2017 09:46:09 -0700 Message-ID: Subject: Re: Declarative partitioning in pgAdmin4 To: Akshay Joshi Cc: pgadmin-hackers , Dave Page , Shirley Wang Content-Type: multipart/alternative; boundary="001a114d9d6a35311d0551da2c2f" List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a114d9d6a35311d0551da2c2f Content-Type: text/plain; charset="UTF-8" Akshay, Have you determined the minimum feature set you are shooting for before you commit this? The reason I ask is that we were thinking that some level of simple automation would probably be nice to make this super useful. Basically if you consider a simple example of partitioning 90 days of data by day the manual process of creating the names and to - from fields becomes rather painful. If you couple that with potentially wanting to do list subpartitioning if just multiplies the work. If we could get something committed then we could more easily work to define where simple automation makes sense and where it doesn't. -- Rob On Tue, Jun 13, 2017 at 6:59 AM, Akshay Joshi wrote: > Hi All > > For further implementation following task needs to be work upon: > > - How to parse and show partitions keys. For example user has created > below partitioned table > > CREATE TABLE public.sales > ( > country character varying COLLATE pg_catalog."default" NOT NULL, > sales bigint, > saledate date > ) PARTITION BY RANGE (*country, date_part('year'::text, sale date)*) > > When user open the properties dialog I am not able to figure out how to > parse keys(displayed in bold in above example) and show them in our control > that we used. For the time being I have hide that control in 'Edit' mode > (Refer Attach Partition.png) > > > - *Support of sub partitioning*: To implement sub-partitioning, > specify the PARTITION BY clause in the commands used to create individual > partitions, for example: > - > > CREATE TABLE measurement_y2006 PARTITION OF measurement > FOR VALUES FROM ('2006-02-01') TO ('2006-03-01') > PARTITION BY RANGE (peaktemp); > > > To achieve above I have made some changes in GUI (Refer Sub > Partition.png). > *Complex and challenging part here is "measurement_y2006" is > partition of "measurement" and parent table for other partitions too which > user can create later. How we will going to show this in browser tree? * > One option could be > Tables > ->measurement(table) > ->Partitions > ->measurement_y2006(Partition of measurement and parent > of p1) > ->Partitions > ->p1 > > - *Attach Partitions*: To implement attach N partitions I have made > some changes in GUI( Refer Attach Partition.png). Attach Partitions > control will only be visible in "Edit" mode. > > I have only modified the UI changes, there are lots of work needs to be > done to complete that. > Please review the design. Suggestions/Comments are welcome. > > > On Tue, Jun 6, 2017 at 4:30 PM, Robert Eckhardt > wrote: > >> >> >> On Tue, Jun 6, 2017 at 4:32 AM, Dave Page wrote: >> >>> >>> For roll up this pattern seems obvious, identify the n partitions you >>>> need/want to combine and then run a job to combine them. >>>> >>> >>> You're thinking Greenplum :-). There is no roll up in PostgreSQL, unless >>> you're thinking we should create such a feature in pgAdmin. >>> >>> Of course, I have no objection to extending what we do in PG to add GP >>> feature support, but let's start with PG. >>> >> >> No not at all. That was a very specific and consistent pattern described >> by users leveraging time based range partitions in Postgres. I'm not sure >> if that same use case will be supported with partitioning as implemented in >> Postgres 10 but it is a Postgres pattern. >> >> -- Rob >> >> >>> >>> >>>> >>>> For other patterns such as creating indexes and such it requires a bit >>>> more thought. Generally users described wanting to treat all of the >>>> children like a single table (just like Oracle), however, other users >>>> described potentially modifying chunks of partitions differently depending >>>> on some criterion. This means that users will need to identify the subset >>>> they want to optimize and then ideally be able to act on them all at once. >>>> >>> >>> Right. >>> >>> >>>> >>>> -- Rob >>>> >>>> >>>> >>>> >>>> >>>> >>>>> >>>>> So... it sounds like we're on the right lines :-) >>>>> >>>>> >>>>>> >>>>>> For the former, this can be addressed by enabling users to modify one >>>>>> or more child partitions at the same time. For the latter, that is a >>>>>> workflow that might be addressed outside of the create table with partition >>>>>> workflow we're working on currently. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Mon, Jun 5, 2017 at 5:21 AM Dave Page wrote: >>>>>> >>>>>>> On Fri, Jun 2, 2017 at 9:01 AM, Akshay Joshi < >>>>>>> akshay.joshi@enterprisedb.com> wrote: >>>>>>> >>>>>>>> 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) >>>>>>>> >>>>>>>> That's looking good to me :-) >>>>>>> >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Wed, May 24, 2017 at 8:00 PM, Robert Eckhardt < >>>>>>>> reckhardt@pivotal.io> wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, May 24, 2017 at 3:35 AM, Akshay Joshi < >>>>>>>>> akshay.joshi@enterprisedb.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-9517 <+91%2020%203058%209517>Mobile: +91 >>>>>>>> 976-788-8246 <+91%2097678%2088246>* >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Sent via pgadmin-hackers mailing list ( >>>>>>>> pgadmin-hackers@postgresql.org) >>>>>>>> To make changes to your subscription: >>>>>>>> http://www.postgresql.org/mailpref/pgadmin-hackers >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Dave Page >>>>>>> >>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>> Twitter: @pgsnake >>>>>>> >>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>> The Enterprise PostgreSQL Company >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Dave Page >>>>> Blog: http://pgsnake.blogspot.com >>>>> Twitter: @pgsnake >>>>> >>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>> The Enterprise PostgreSQL Company >>>>> >>>> >>>> >>> >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >> >> > > > -- > *Akshay Joshi* > *Principal Software Engineer * > > > > *Phone: +91 20-3058-9517 <+91%2020%203058%209517>Mobile: +91 976-788-8246 > <+91%2097678%2088246>* > --001a114d9d6a35311d0551da2c2f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Akshay,

Have you determined the minimum= feature set you are shooting for before you commit this? The reason I ask = is that we were thinking that some level of simple automation would probabl= y be nice to make this super useful.

Basically if= you consider a simple example of partitioning 90 days of data by day the m= anual process of creating the names and to - from fields becomes rather pai= nful. If you couple that with potentially wanting to do list subpartitionin= g if just multiplies the work.=C2=A0

If we could g= et something committed then we could more easily work to define where simpl= e automation makes sense and where it doesn't.=C2=A0

-- Rob

On Tue, Jun 13, 2017 at 6:59 AM, Akshay Joshi <= ;akshay.= joshi@enterprisedb.com> wrote:
Hi All=C2=A0

For further implementa= tion following task needs to be work upon:
  • How to parse a= nd show partitions keys. For example user has created below partitioned tab= le=C2=A0
CREATE TABLE public.sales
(
=C2= =A0 =C2=A0 country character varying COLLATE pg_catalog."default"= NOT NULL,
=C2=A0 =C2=A0 sales bigint,
=C2=A0 =C2=A0 saledate date
) PARTITION BY RANGE (count= ry, date_part('year'::text, sale date))

When user open the properties dialog I am not able to figure out how to parse keys(displayed in = bold in above example) and show them in our control that we used. For the t= ime being I have hide that control in 'Edit' mode (Refer Attach Par= tition.png)
  • Support of sub partitioning:=C2=A0To implement sub-partit= ioning, specify the PARTITION BY clause in the commands used to create indi= vidual partitions, for example:
  • CREATE TABLE measurement_y2006=
     PARTITION OF measurement
        FOR VALUES FROM ('2006-02-01') TO ('2006-03-01')
        PARTITION BY RANGE (peaktemp<=
    /span>);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0To achieve= above I have made some changes in GUI (Refer Sub Partition.png).=C2=A0
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0Complex and challenging part here is "measu= rement_y2006" is partition of "measurement" and parent table= for other partitions too which user can create later. How we will going to= show this in browser tree?=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0One option could be
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0Tables
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0->measurement(table)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0->Partitions
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0->measurement_y2006(Partition of measu= rement and parent of p1)=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0->Partitions
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0->p1=C2=A0=
  • Attach Partitions: To implement attach N partitio= ns I have made some changes in GUI( Refer=C2=A0Attach Partition.png). Attach Partitions control will = only be visible in "Edit" mode.
I have only modifie= d the UI changes, there ar= e lots of work needs to be done to complete that. =C2=A0
Please review= the design. Suggestions/Comments are welcome.
=
=C2=A0=C2=A0

On Tue, Jun 6, 2017 at 4:30 PM, Robert Eckhardt <= reckhardt@pivotal.io> wrote:


On Tue, Jun 6, 2017 a= t 4:32 AM, Dave Page <dpage@pgadmin.org> wrote:

For roll up this pattern seems o= bvious, identify the n partitions you need/want to combine and then run a j= ob to combine them.=C2=A0

You're thinking Greenplum :-). There is no roll up in Pos= tgreSQL, unless you're thinking we should create such a feature in pgAd= min.

Of course, I have no objection to extending w= hat we do in PG to add GP feature support, but let's start with PG.

No not at all. = That was a very specific and consistent pattern described by users leveragi= ng time based range partitions in Postgres. I'm not sure if that same u= se case will be supported with partitioning as implemented in Postgres 10 b= ut it is a Postgres pattern.=C2=A0

-- Rob
=C2=A0
=C2=A0

For other patterns such as creating indexes and = such it requires a bit more thought. Generally users described wanting to t= reat all of the children like a single table (just like Oracle), however, o= ther users described potentially modifying chunks of partitions differently= depending on some criterion. This means that users will need to identify t= he subset they want to optimize and then ideally be able to act on them all= at once.=C2=A0

<= div>Right.
=C2=A0

-- Rob



<= div>
=C2=A0

So... it so= unds like we're on the right lines :-)
=C2=A0

Fo= r the former, this can be addressed by enabling users to modify one or more= child partitions at the same time. For the latter, that is a workflow that= might be addressed outside of the create table with partition workflow we&= #39;re working on currently.=C2=A0


=


On Mon, Jun 5, 2017 at 5:21 AM Dave Page <dpage@pgadmin.org>= wrote:
On Fri, Jun 2, 2017 at 9:01 AM, Akshay Joshi = <akshay.joshi@enterprisedb.com> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;pa= dding-left:1ex">
Hi All=C2=A0

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) =C2=A0=C2= =A0
That's looking= good to me :-)

=C2=A0


On Wed, May 24, 2017 at 8:00 PM, Robert Eckhardt <= reckhardt@pivotal= .io> wrote:


On Wed, May 24, 2017 at 3:35 AM, Akshay Joshi <= akshay.joshi@enterprisedb.com> wrote:

=C2=A0 =C2=A0Taking average of two columns i= s just an example/representation of expression, there is no use case of tha= t. 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_o= n timestamptz not null)PARTITION BY RANGE ( lower( left( username, 1 ) ) );
    CREATE TABLE user= s_0
    partit= ion of users <= span style=3D"color:rgb(102,204,102)">(id, = primary key (id), <= span style=3D"color:rgb(153,51,51);font-weight:bold">unique (username))
    <= /span>
    for values from (= 'a') to ('g');
    = CREATE TABLE users_1
    partition of users (id, primary key (id), unique (username))
    for values from ('g') to<= /span> (unbounded);
  • =C2= =A0Partition based on country's sale for each month of an year.
CREATE= TABLE public.sales
(
=C2=A0 =C2=A0 country text NOT NULL= ,
=C2=A0 =C2=A0 sales bigint NOT NULL,
=C2=A0= =C2=A0 saledate date
) PARTITION BY RANGE (country, (= extract (YEAR FROM saledate)), (extract(MONTH FROM saledat= e)))

CREATE TABLE public.sale_usa_2017_jan PARTITION OF sales
=C2=A0 =C2=A0 FOR VALUE= S FROM ('usa', 2017, 01) TO ('usa', 2017, 02);
<= /div>
CRE= ATE TABLE public.sale_india_2017_jan PARTITION OF s= ales
=C2=A0 =C2=A0 FOR VALUES FROM ('india', 2017, 01) TO = ('india', 2017, 02);
CREATE TABLE public.sale_uk_2017_jan PARTITION OF sales
=C2=A0 =C2=A0 FOR VALUE= S FROM ('uk', 2017, 01) TO ('uk', 2017, 02);

<= /div>
INSERT INTO sales VALUES ('india', 10000, '2017-1-15&#= 39;);
INSERT INTO sales VALUES ('uk', 20000, '2017-1-0= 8');
INSERT INTO sales VALUES ('usa', 30000, '2017= -1-10');

=C2= =A0 =C2=A0Apart from above there may be N number of use cases that depends = on specific requirement of user.=C2=A0

Thank you for the example, you are absolutely correct and we = were confused.=C2=A0

Given our new found understan= ding do you mind if we iterate a bit on the UI/UX?=C2=A0 What we were sugge= sting 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 o= f the child partitions and the creation of the partitions would be optimal.= =C2=A0

I'm not sure where you are with respect= to implementing the UI but I'd love to float some ideas and mock ups p= ast you.=C2=A0

-- Rob



-= -
Akshay Joshi<= /b>
= Principal Software Engineer=C2=A0


<= b>Phone: +91 20-3058-9517
Mobile: <= a href=3D"tel:+91%2097678%2088246" value=3D"+919767888246" target=3D"_blank= ">+91 976-788-8246


--
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-ha= ckers




--
Dave Page

Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

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


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

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Co= mpany


=

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twit= ter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise Post= greSQL Company




--
Akshay <= span id=3D"m_5716494732641866491:3dt.40">Joshi
Principal Soft= ware Engineer=C2=A0
=
=


--001a114d9d6a35311d0551da2c2f--