From: | "tanghy(dot)fnst(at)fujitsu(dot)com" <tanghy(dot)fnst(at)fujitsu(dot)com> |
---|---|
To: | Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Japin Li <japinli(at)hotmail(dot)com>, Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>, Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>, "smithpb2250(at)gmail(dot)com" <smithpb2250(at)gmail(dot)com>, "david(dot)zhang(at)highgo(dot)ca" <david(dot)zhang(at)highgo(dot)ca>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | RE: Support tab completion for upper character inputs in psql |
Date: | 2022-01-25 05:22:32 |
Message-ID: | OS0PR01MB6113DB08D8CEA4E214DA37BBFB5F9@OS0PR01MB6113.jpnprd01.prod.outlook.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Monday, January 24, 2022 6:36 PM, Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com> wrote:
> The way your patch works now is that the case-insensitive behavior you
> are implementing only works if the client encoding is a single-byte
> encoding. This isn't what downcase_identifier() does;
> downcase_identifier() always works for ASCII characters. As it is, this
> patch is nearly useless, since very few people use single-byte client
> encodings anymore. Also, I think it would be highly confusing if the
> tab completion behavior depended on the client encoding in a significant
> way.
Thanks for your review. I misunderstood the logic of downcase_identifier().
Modified the code to support ASCII characters input.
> Also, as I had previously suspected, your patch treats the completion of
> enum labels in a case-insensitive way (since it all goes through
> _complete_from_query()), but enum labels are not case insensitive. You
> can observe this behavior using this test case:
>
> +check_completion("ALTER TYPE enum1 RENAME VALUE 'F\t\t", qr|foo|, "FIXME");
> +
> +clear_line();
Your suspect is correct. I didn't aware enum labels are case sensitive.
I've added this test to the tap tests.
> You should devise a principled way to communicate to
> _complete_from_query() whether it should do case-sensitive or
> -insensitive completion. We already have COMPLETE_WITH() and
> COMPLETE_WITH_CS() etc. to do this in other cases, so it should be
> straightforward to adapt a similar system.
I tried to add a flag(casesensitive) in the _complete_from_query().
Now the attached patch passed all the added tap tests.
Regards,
Tang
Attachment | Content-Type | Size |
---|---|---|
v13-0001-Support-tab-completion-with-a-query-result-for-u.patch | application/octet-stream | 7.6 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2022-01-25 05:49:10 | Re: pg_dump new feature: exporting functions only. Bad or good idea ? |
Previous Message | Julien Rouhaud | 2022-01-25 05:18:45 | Re: Schema variables - new implementation for Postgres 15 |