Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1avPcq-0002lV-BD for pgadmin-hackers@arkaria.postgresql.org; Wed, 27 Apr 2016 13:35:32 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1avPcp-0005Ug-MT for pgadmin-hackers@arkaria.postgresql.org; Wed, 27 Apr 2016 13:35:31 +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 1avPcp-0005TU-2M for pgadmin-hackers@postgresql.org; Wed, 27 Apr 2016 13:35:31 +0000 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1avPcl-0001Xv-Vx for pgadmin-hackers@postgresql.org; Wed, 27 Apr 2016 13:35:29 +0000 Received: by mail-qk0-x241.google.com with SMTP id l68so3353316qkf.3 for ; Wed, 27 Apr 2016 06:35:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=QMT6dcFmT3wStA4SWUvuhFD2v/yiNhOsj/G3qk6o2WM=; b=cF1PCSR1CmiL/5d1/8LAO+BpyIMrntSZAPQSFVvlk7+EufGeEDnFJn1lnc413TDPWW qynvFP7itw9Mt/PRg/MPOv/sNpx2dI25HmhmEe7110vwK4zcbNnK2QaSQbhbWvZpLsgp 0LaJA40HyhPp5XyW13f+Kl0crDoSU+MjXpE9SnF8doJp4fBHEWGqKAWVJhpUU0GdsVMg DuSXcrTo8WqRky76zwdQ/9oUH5te7Jnid0UXJlQNgBSNG5sv7XEuTIV3kElWm7L8m9Pd dGi1FcKijPCoXzMqw+9u2K2t1mSWHOOakv7g2tQ/T/ndA/ijA69W7WEk6C0V+E6r+M9e uVXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=QMT6dcFmT3wStA4SWUvuhFD2v/yiNhOsj/G3qk6o2WM=; b=QkhP96bhcVGILEwQmRf7cDl1nQfyLCl3tSQo6b1HBHU5RTqgG4Sigrc7LWraCYph3F xwZpsCyvHTGd5ElS1A0NMTXgQHMI/valmZPKErrX5amTksyMPtGw/w0xvEqqkE1vE2j3 xku9n++ZHNbOoJTOb0VpHgBuK4zAdlrnV8VMUWPTktEjGI7mGLccAVfhbVTRWNgNyl8H RLHGBtWZnEAhhzDlz8az0lSiO5bv63XnyRhOnF8b3JjXSIuJNBwxPSj8bQD0be2WkwkB eoH/HfxjBfY2tqhItQdXsK1QFfsdSscx17PYdl0iEjpGuFzYfnC2TZFXt6yGU6noG0Va l0Rg== X-Gm-Message-State: AOPr4FXHafo+EnkVFFixJZHvQAvrSK3gosN8WqRXJ0B+47v+O5aVPayW4BIzTQScpMf+uLEU9MD72GIhMbYwZQ== X-Received: by 10.159.33.70 with SMTP id 64mr2568429uab.149.1461764126715; Wed, 27 Apr 2016 06:35:26 -0700 (PDT) MIME-Version: 1.0 Received: by 10.159.54.239 with HTTP; Wed, 27 Apr 2016 06:34:57 -0700 (PDT) In-Reply-To: References: From: Thom Brown Date: Wed, 27 Apr 2016 14:34:57 +0100 X-Google-Sender-Auth: kVO5ejHc79Z74l6zJxE3YL0H-r4 Message-ID: Subject: Re: [PATCH] Tables node (pgAdmin4) To: Harshal Dhumal Cc: pgadmin-hackers , Murtuza Zabuawala , Surinder Kumar Content-Type: text/plain; charset=UTF-8 X-Pg-Spam-Score: -2.4 (--) 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 On 27 April 2016 at 13:43, Thom Brown wrote: > On 27 April 2016 at 10:22, Harshal Dhumal > wrote: >> >> Hi, >> >> PFA attached patches for table node and all table child nodes. >> >> This patch includes below nodes, >> >> 1) Table node -- Initial patch by Murtuza, constraints compatibility by Harshal. >> 2) Column node -- by Murtuza. >> 3) Index node -- by Murtuza. >> 4) Trigger node -- by Murtuzz. >> 6) Rules node -- by Surinder. >> 7) Constraints nodes: >> i] Index Constraint -- Initial patch by Harshal, Integration with table node by Murtuza. >> ii] Foreign key -- Initial patch and Integration with table node by Harshal. >> iii] Check constraint -- Initial patch and Integration with table node by Harshal. >> iv] Exclusion constraint -- Initial patch and Integration with table node by Harshal. >> >> Please apply patches in following order as all of them depends on each other. >> >> Order: Table Node ----> Index constraint ---> remaining patches in any order. >> >> > > Nice work. Here's some initial feedback from a very quick play around. > > On the Create table editor, in the Advance tab (which should probably > be labelled "Advanced"), the Like section should grey out the "With *" > values if no relation is selected in the drop-down box. > > The way primary keys are defined are kinda awkward. It might be > useful to provide some kind of checkbox on the initial column list > that tells it which columns are involved in the primary key, then the > user could just select which ones they want. If they want to refine > it, they could edit it in the Constraints > Primary Key section. > > I'm getting weird spacing in the SQL output. Here's an example: > > CREATE UNLOGGED TABLE public.test > ( > id integer COLLATE pg_catalog."de_DE.utf8" NOT NULL DEFAULT -1, > stuff text COLLATE pg_catalog."C.UTF-8" DEFAULT "hello", > CONSTRAINT pk PRIMARY KEY (id, stuff) WITH (FILLFACTOR=33) DEFERRABLE > ) > WITH ( > OIDS = TRUE, > FILLFACTOR = 88, > autovacuum_enabled = TRUE, > autovacuum_analyze_scale_factor = 0.33, > autovacuum_analyze_threshold = 30, > autovacuum_freeze_max_age = 3333333, > autovacuum_vacuum_cost_delay = 30, > autovacuum_vacuum_cost_limit = 3, > autovacuum_vacuum_scale_factor = 0.33, > autovacuum_vacuum_threshold = 33, > autovacuum_freeze_min_age = 3300000, > autovacuum_freeze_table_age = 333000000 > ) > TABLESPACE pg_default; > > ALTER TABLE public.test > OWNER to thom; > GRANT ALL ON TABLE public.test TO thom; > > > COMMENT ON TABLE public.test > IS 'This is just a test table'; > > COMMENT ON COLUMN public.test.id > IS 'the main ID'; > > ALTER TABLE public.test > ALTER COLUMN id > SET (n_distinct='0.2'); > COMMENT ON CONSTRAINT pk ON public.test > IS 'primary key test' > > Note there are 2 blank lines after the GRANT ALL ON TABLE line, and > none before the COMMENT ON CONSTRAINT line. > > This SQL fails because collations aren't allowed on integer columns, > and the DEFAULT value for the column named stuff doesn't quote it as a > string literal, so it's looking for a column called "hello". > > There's also no way to view the autovacuum options I defined other > than the SQL pane. A couple more: If I go to create a new table, give it a name, select a table to inherit from, and then do nothing else, I get an error: ERROR: syntax error at or near "INHERITS" LINE 2: INHERITS (test) ^ This is because no column list was provided, and in this case, an empty one would be needed. So instead of: CREATE TABLE public.test2 ( ) INHERITS (test) WITH ( OIDS = FALSE ) TABLESPACE pg_default; It should be: CREATE TABLE public.test2 INHERITS (test) WITH ( OIDS = FALSE ) TABLESPACE pg_default; If I go to create another new table, give it a name, and then in the Like section on the Advance tab, I select a table, and enable each of the With * options, the following SQL is produced: CREATE TABLE public.test2 LIKE public.test INCLUDING DEFAULTS INCLUDING CONSTRAINTS INCLUDING INDEXES INCLUDING STORAGE INCLUDING COMMENTSWITH ( OIDS = FALSE ) TABLESPACE pg_default; The LIKE statement should appear in the column list section, so should be surrounded in parentheses. Also, the WITH statement here is not on a new line. So this should be: CREATE TABLE public.test2 ( LIKE public.test INCLUDING DEFAULTS INCLUDING CONSTRAINTS INCLUDING INDEXES INCLUDING STORAGE INCLUDING COMMENTS ) WITH ( OIDS = FALSE ) TABLESPACE pg_default; Regards Thom -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers