Thread: Tab completion for "create unlogged" a bit too lax?

Tab completion for "create unlogged" a bit too lax?

From
"Daniel Westermann (DWE)"
Date:
Hi,

tab completion for "create unlogged" gives this:

postgres=# create unlogged
MATERIALIZED VIEW  TABLE

Given that a materialized table can not be unlogged:

postgres=# create unlogged materialized view mv1 as select 1;
ERROR:  materialized views cannot be unlogged

Should this really show up there?

Regards
Daniel


Re: Tab completion for "create unlogged" a bit too lax?

From
Justin Pryzby
Date:
On Tue, Aug 24, 2021 at 11:32:14AM +0000, Daniel Westermann (DWE) wrote:
> tab completion for "create unlogged" gives this:
> 
> postgres=# create unlogged 
> MATERIALIZED VIEW  TABLE   
> 
> Given that a materialized table can not be unlogged:
> 
> postgres=# create unlogged materialized view mv1 as select 1;
> ERROR:  materialized views cannot be unlogged
> 
> Should this really show up there?

It seems to be deliberate:

commit 3223b25ff737c2bf4a642c0deb7be2b30bfecc6e
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date:   Mon May 6 11:57:05 2013 -0400

    Disallow unlogged materialized views.
...
    I left the grammar and tab-completion support for CREATE UNLOGGED
    MATERIALIZED VIEW in place, since it's harmless and allows delivering a
    more specific error message about the unsupported feature.

-- 
Justin



Re: Tab completion for "create unlogged" a bit too lax?

From
"Daniel Westermann (DWE)"
Date:
>On Tue, Aug 24, 2021 at 11:32:14AM +0000, Daniel Westermann (DWE) wrote:
>> tab completion for "create unlogged" gives this:
>>
>> postgres=# create unlogged
>> MATERIALIZED VIEW  TABLE  
>>
>> Given that a materialized table can not be unlogged:
>>
>> postgres=# create unlogged materialized view mv1 as select 1;
>> ERROR:  materialized views cannot be unlogged
>>
>> Should this really show up there?

>It seems to be deliberate:

>commit 3223b25ff737c2bf4a642c0deb7be2b30bfecc6e
>Author: Tom Lane <tgl@sss.pgh.pa.us>
>Date:   Mon May 6 11:57:05 2013 -0400

>    Disallow unlogged materialized views.
>...
>    I left the grammar and tab-completion support for CREATE UNLOGGED
>    MATERIALIZED VIEW in place, since it's harmless and allows delivering a
>    more specific error message about the unsupported feature.

Hm, I think tab completion should only give choices for operations that are supposed to work. Anyway, thanks for
pointingme to the commit, that makes it more clear why it is that way. 

Regards
Daniel


Re: Tab completion for "create unlogged" a bit too lax?

From
Michael Paquier
Date:
On Tue, Aug 24, 2021 at 12:04:28PM +0000, Daniel Westermann (DWE) wrote:
> Hm, I think tab completion should only give choices for operations
> that are supposed to work. Anyway, thanks for pointing me to the
> commit, that makes it more clear why it is that way.

FWIW, my position on that is that there is no point to recommend
grammars that will return errors, and many code paths of
tab-complete.c list only their options available ignoring ones that
fail.  And we are talking about a one-line change as all the code
paths of CREATE UNLOGGED only have code to handle the case of TABLE.
--
Michael

Attachment