Re: IF (NOT) EXISTS in psql-completion - Mailing list pgsql-hackers
From | Kyotaro HORIGUCHI |
---|---|
Subject | Re: IF (NOT) EXISTS in psql-completion |
Date | |
Msg-id | 20160329.190806.183201675.horiguchi.kyotaro@lab.ntt.co.jp Whole thread Raw |
In response to | Re: IF (NOT) EXISTS in psql-completion (Pavel Stehule <pavel.stehule@gmail.com>) |
Responses |
Re: IF (NOT) EXISTS in psql-completion
|
List | pgsql-hackers |
Hi, Pavel. At Tue, 29 Mar 2016 09:59:01 +0200, Pavel Stehule <pavel.stehule@gmail.com> wrote in <CAFj8pRDEPgGyMz2aXgTL33PuD7X+xieaO++wa+V9nQPQiYDMGQ@mail.gmail.com> > > > On 3/18/16 3:22 AM, Pavel Stehule wrote: > > > > > > > I am looking this patch. It looks well, but this feature doesn't > > > > respect upper or lower chars. It enforce upper chars. This is not > > > > consistent with any other autocomplete. > > > > As mentioned before, upper-lower problem is an existing > > issue. The case of the words in a query result list cannot be > > edited since it may contain words that should not be changed, > > such as relation names. So we can address it only before issueing > > a query but I haven't found simple way to do it. > > > > This is unpleasant. I am sorry. I had very uncomfortable feeling from this > behave. I am thinking so it should be solvable - you have to convert only > keyword IF EXISTS or IF NOT EXISTS. Maybe there are not trivial solution, > but this should be fixed. I understand that and feel the same. But I don't want to put puzzling code. Defining a macro enable this by writing as the following. > else if (Matches2("ALTER", "TABLE")) > COMPLETE_WITH_SCHEMA_QUERY( > Query_for_list_of_tables, > ADDLIST("", > "('IF EXISTS'), ('ALL IN TABLESPACE')", > "('if exists'), ('all in tablespace')")); ... > else if (Matches2("ALTER", "POLICY")) > COMPLETE_WITH_QUERY( > ADDLIST(Query_for_list_of_policies, > "('IF EXISTS')", "('if exists')")); This will work as you expects but it looks quite redundant, but avoiding dynamic string (and/or malloc) operation would lead to the similar results. Integrating the ADDLIST into COMPLETE... might make the situation better. The attached patch does it only for "ALTER TABLE" and "ALTER POLICY". > > > > I checked it against sql help and these statements doesn't work > > > > Thank you very much. > > > > > > alter foreign table hhhh drop column > > > > drop cast > > > > drop operator > > > > drop transform -- missing autocomplete completely > > > > These are not done. Each of them has issues to be addressed > > before adding completion of IF EXISTS. > > > > > > alter text search configuration jjj drop mapping > > > > alter type hhh drop attribute > > > > drop extension > > > > Done. > > > > > > drop text search > > > > I don't see the syntax "drop text search [if exists]". drop text > > search (configuration|dictionary|parser|template) are already > > addressed. > > > > ok, probably my mistake. I am sorry. > > > > > > > > drop user mapping > > > > "drop user" was not completed with "mapping". I added it then > > addressed this. (This might be another issue.) > > > > > > alter table jjj add column > > > > Done if it is mentioning DROP COLUMN. But new two macros > > HeadMatches6 and 7 are introduced together. > > > > > > create temp sequence > > > > create sequence > > > > DROP SEQUENCE is already completed with IF EXISTS. CREATE [TEMP] > > SEQUENCE with IF NOT EXISTS is added. > > > > > Do you have an idea of when you will have a new patch ready? > > > > Sorry to to have been late. The attached is the revised version. > > > > I'll check it today. Thanks. regards, -- Kyotaro Horiguchi NTT Open Source Software Center
pgsql-hackers by date: