While reviewing Andrew Dunstan's patch that implements the
log_disconnections GUC var, I noticed that tab-complete.c in psql
claims that only "USERSET and possibly SUSET" GUC variables should be
included in the list of variables that can be auto-completed.

That policy is clearly not followed: fsync, max_connections, port,
shared_buffers, ssl, wal_sync_method, and various other non-USERSET or
SUSET variables are presently included in the completion list.

The two obvious ways to fix this are to add the remaining variables to
the completion list and remove the USERSET/SUSET policy, or to remove
the variables that violate this policy. I think the former is a better
idea, for two reasons:

      (1) tab-completing GUC variables that one cannot set is still
          useful for SHOW

      (2) enforcing semantic validity is something psql is clearly not
          in a position to do in the general case, so it strikes me as
          rather pointless to try

Any comments?

-Neil


Sun, 08 Feb 2004 18:17:33 -0500
Neil Conway <neilc@samurai.com>
psql tab completion & USERSET vars
Neil Conway <neilc@samurai.com> writes:
> While reviewing Andrew Dunstan's patch that implements the
> log_disconnections GUC var, I noticed that tab-complete.c in psql
> claims that only "USERSET and possibly SUSET" GUC variables should be
> included in the list of variables that can be auto-completed.

I think I was the one who put in that suggestion (which I agree has been
largely ignored subsequently).  The motivation was to avoid cluttering
the tab completion facility with seldom-used parameters.  As an example,
the presence of the "stats_xxx" parameters in the tab list means more
keystrokes are needed to type "statement_timeout".  Seems like this is a
bad tradeoff considering that people would rarely bother to look at the
stats settings.

I'm not by any means wedded to the "USERSET and possibly SUSET" policy,
but I would like to stop somewhere short of "include everything".  Any
thoughts?

			regards, tom lane

Sun, 08 Feb 2004 21:47:12 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: psql tab completion & USERSET vars 
Tom Lane <tgl@sss.pgh.pa.us> writes:
> I'm not by any means wedded to the "USERSET and possibly SUSET"
> policy, but I would like to stop somewhere short of "include
> everything".  Any thoughts?

Perhaps we could have two sets of variables: all the GUC vars (that
can be displayed via SHOW), and a subset of those that can be set by
the user. We could use the first set for tab-completion on SHOW and
the second for tab completion on SET.

-Neil


Mon, 09 Feb 2004 02:22:23 -0500
Neil Conway <neilc@samurai.com>
Re: psql tab completion & USERSET vars