Re: [PATCH] Tables node (pgAdmin4)

Поиск
Список
Период
Сортировка
От Murtuza Zabuawala
Тема Re: [PATCH] Tables node (pgAdmin4)
Дата
Msg-id 00E570E4-0E2D-4E8D-9978-9FE36CFAA2AD@enterprisedb.com
обсуждение исходный текст
Ответ на Re: [PATCH] Tables node (pgAdmin4)  (Thom Brown <thom@linux.com>)
Список pgadmin-hackers
Hi Thom,

Thank you for your inputs, Will work on it & send updated patch again.


Regards,
Murtuza


> On 27-Apr-2016, at 7:04 pm, Thom Brown <thom@linux.com> wrote:
>
> On 27 April 2016 at 13:43, Thom Brown <thom@linux.com> wrote:
>> On 27 April 2016 at 10:22, Harshal Dhumal
>> <harshal.dhumal@enterprisedb.com> 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



В списке pgadmin-hackers по дате отправления:

Предыдущее
От: Neel Patel
Дата:
Сообщение: Re: [pgAdmin4][Patch]: File Manager & Backform FileControl
Следующее
От: Ashesh Vashi
Дата:
Сообщение: Re: PATCH: Added Note Backform control (pgAdmin4).