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

Started by Daniel Westermann (DWE)over 4 years ago4 messageshackers
Jump to latest
#1Daniel Westermann (DWE)
daniel.westermann@dbi-services.com

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

#2Justin Pryzby
pryzby@telsasoft.com
In reply to: Daniel Westermann (DWE) (#1)
Re: Tab completion for "create unlogged" a bit too lax?

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

#3Daniel Westermann (DWE)
daniel.westermann@dbi-services.com
In reply to: Justin Pryzby (#2)
Re: Tab completion for "create unlogged" a bit too lax?

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 pointing me to the commit, that makes it more clear why it is that way.

Regards
Daniel

#4Michael Paquier
michael@paquier.xyz
In reply to: Daniel Westermann (DWE) (#3)
Re: Tab completion for "create unlogged" a bit too lax?

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