Hi all
I'm esperiencing problem with the <TAB> autocomplete on
postgres 7.4beta5:

#select * from pg_l<TAB><TAB>
and no suggestions out.


On postgres 7.3.4:

#select * from pg_l<TAB><TAB>
pg_language     pg_largeobject  pg_listener     pg_locks



am I wrong ?



regards
Gaetano Mendola




Mon, 27 Oct 2003 00:35:52 +0100
Gaetano Mendola <mendola@bigfoot.com>
Autocomplete <TAB>  on Postgres7.4beta5 not working?
Gaetano Mendola <mendola@bigfoot.com> writes:
> I'm esperiencing problem with the <TAB> autocomplete on
> postgres 7.4beta5:

> #select * from pg_l<TAB><TAB>
> and no suggestions out.

This appears to have been a deliberate change:

2003-03-27 11:45  momjian

	* src/bin/psql/tab-complete.c: Attached are two patches for psql's
	tab-completion.c.
        [snip]

	Note that tables, indexes, views and sequences relations in the
	'pg_catalog' namespace are excluded even though they are in the
	current search path. I found not doing this produced annoying
	behaviour when expanding names beginning with 'p'. People who work
	with system tables a lot may not like this though; I can look for
	another solution if necessary.
	
	Ian Barwick

AFAICT there was no discussion about this issue when the patch was
proposed and applied.  But now that the point is raised I have to say
that I don't like this change.  I don't think system catalogs should be
excluded from tab completion.  They never were before 7.4, and I have
not seen anyone complaining about that, other than Ian.

Comments anyone?

			regards, tom lane

Tue, 28 Oct 2003 16:48:59 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: Autocomplete <TAB> on Postgres7.4beta5 not working? 
Tom Lane wrote:
> This appears to have been a deliberate change:
> 
> 2003-03-27 11:45  momjian
> 
> 	* src/bin/psql/tab-complete.c: Attached are two patches for psql's
> 	tab-completion.c.
>         [snip]
> 
> 	Note that tables, indexes, views and sequences relations in the
> 	'pg_catalog' namespace are excluded even though they are in the
> 	current search path. I found not doing this produced annoying
> 	behaviour when expanding names beginning with 'p'. People who work
> 	with system tables a lot may not like this though; I can look for
> 	another solution if necessary.
> 	
> 	Ian Barwick
> 
> AFAICT there was no discussion about this issue when the patch was
> proposed and applied.  But now that the point is raised I have to say
> that I don't like this change.  I don't think system catalogs should be
> excluded from tab completion.  They never were before 7.4, and I have
> not seen anyone complaining about that, other than Ian.
> 
> Comments anyone?

No one commented on it so it was applied --- now that we have two people
who don't like it, seems we should back it out.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Tue, 28 Oct 2003 17:05:22 -0500 (EST)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: Autocomplete <TAB> on Postgres7.4beta5 not working?
On Tue, 28 Oct 2003, Tom Lane wrote:

> 	Note that tables, indexes, views and sequences relations in the
> 	'pg_catalog' namespace are excluded even though they are in the
> 	current search path. I found not doing this produced annoying
> 	behaviour when expanding names beginning with 'p'. People who work
> 	with system tables a lot may not like this though; I can look for
> 	another solution if necessary.
> 	
> 	Ian Barwick
> 
> AFAICT there was no discussion about this issue when the patch was
> proposed and applied.  But now that the point is raised I have to say
> that I don't like this change.  I don't think system catalogs should be
> excluded from tab completion.  They never were before 7.4, and I have
> not seen anyone complaining about that, other than Ian.
>
> Comments anyone?

I also would expect any relations I can see to be picked up by tab 
completion.

Jon

Tue, 28 Oct 2003 22:07:48 +0000 (UTC)
Jon Jensen <jon@endpoint.com>
Re: [BUGS] Autocomplete <TAB> on Postgres7.4beta5 not
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> Tom Lane wrote:
>> AFAICT there was no discussion about this issue when the patch was
>> proposed and applied.  But now that the point is raised I have to say
>> that I don't like this change.  I don't think system catalogs should be
>> excluded from tab completion.  They never were before 7.4, and I have
>> not seen anyone complaining about that, other than Ian.
>> 
>> Comments anyone?

> No one commented on it so it was applied --- now that we have two people
> who don't like it, seems we should back it out.

Not the whole patch, certainly, since it added a bunch of other good
stuff.  I just want to take out the discrimination against pg_catalog.
(BTW, the code also discriminates against pg_toast, but that part I
don't have a problem with.)

			regards, tom lane

Tue, 28 Oct 2003 17:09:35 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: Autocomplete <TAB> on Postgres7.4beta5 not working? 
On Tuesday 28 October 2003 22:48, Tom Lane wrote:

> AFAICT there was no discussion about this issue when the patch was
> proposed and applied.  But now that the point is raised I have to say
> that I don't like this change.  I don't think system catalogs should be
> excluded from tab completion.  They never were before 7.4, and I have
> not seen anyone complaining about that, other than Ian.
>
> Comments anyone?

Guilty as charged? ;-) 

Just to clarify, the patch enables tab completion for catalog relations
as long as the schema name pg_catalog is prepended. E.g.
\d pg_c[tab].[tab] will get expansion for everything in pg_catalog.

ISTR I found it very irritating that without this restriction
\d p[tab] produces a very large number of selections
for "normal" database work. Looking at a current database, I have about a
dozen of relations beginning with p in the search path which I access with tab
expansion frequently and I'm sure it would annoy me intensely if I got all the
system tables as well every time.

Mind you that's only my personal preference, I thought it might be unpopular
but as no one has commented since... I can submit a correction but not today
or tomorrow.


Ian Barwick
barwick@gmx.net

Tue, 28 Oct 2003 23:12:31 +0100
Ian Barwick <barwick@gmx.net>
Re: Autocomplete <TAB> on Postgres7.4beta5 not working?
Tom Lane wrote:

>Gaetano Mendola <mendola@bigfoot.com> writes:
>  
>
>>I'm esperiencing problem with the <TAB> autocomplete on
>>postgres 7.4beta5:
>>    
>>
>
>  
>
>>#select * from pg_l<TAB><TAB>
>>and no suggestions out.
>>    
>>
>
>This appears to have been a deliberate change:
>
>2003-03-27 11:45  momjian
>
>	* src/bin/psql/tab-complete.c: Attached are two patches for psql's
>	tab-completion.c.
>        [snip]
>
>	Note that tables, indexes, views and sequences relations in the
>	'pg_catalog' namespace are excluded even though they are in the
>	current search path. I found not doing this produced annoying
>	behaviour when expanding names beginning with 'p'. People who work
>	with system tables a lot may not like this though; I can look for
>	another solution if necessary.
>	
>	Ian Barwick
>
>AFAICT there was no discussion about this issue when the patch was
>proposed and applied.  But now that the point is raised I have to say
>that I don't like this change.  I don't think system catalogs should be
>excluded from tab completion.  They never were before 7.4, and I have
>not seen anyone complaining about that, other than Ian.
>
>Comments anyone?
>  
>

Might be better to:

1. make it a settable option

and/or

2. include catalog objects in expansion iff we are expanding "pg_" + 
optional suffix (probably best of both worlds).

I rarely use completion in this way so I could be an unrepresentative 
user, though :-)

cheers

andrew



Tue, 28 Oct 2003 17:22:04 -0500
Andrew Dunstan <andrew@dunslane.net>
Re: [BUGS] Autocomplete <TAB> on Postgres7.4beta5 not working?
On Tue, Oct 28, 2003 at 04:48:59PM -0500, Tom Lane wrote:

> AFAICT there was no discussion about this issue when the patch was
> proposed and applied.  But now that the point is raised I have to say
> that I don't like this change.  I don't think system catalogs should be
> excluded from tab completion.  They never were before 7.4, and I have
> not seen anyone complaining about that, other than Ian.

I found it very irritating at first, but when I discovered that I could
tab my way to syscatalogs by using "pg_catalog." as prefix, I started
feeling it was actually a nice behavior.

-- 
Alvaro Herrera (<alvherre[@]dcc.uchile.cl>)
"Coge la flor que hoy nace alegre, ufana. �Qui�n sabe si nacera otra ma�ana?"

Tue, 28 Oct 2003 19:25:44 -0300
Alvaro Herrera Munoz <alvherre@dcc.uchile.cl>
Re: [HACKERS] Autocomplete <TAB> on Postgres7.4beta5 not working?

I think I'm missing something. Why are pg_catalog.* tables in my search path
at all? My search path seems to be set to $user,public. is pg_catalog
implicitly appended there?

-- 
greg


28 Oct 2003 17:46:41 -0500
Greg Stark <gsstark@mit.edu>
Re: [BUGS] Autocomplete <TAB> on Postgres7.4beta5 not working?
Alvaro Herrera Munoz <alvherre@dcc.uchile.cl> writes:
> I found it very irritating at first, but when I discovered that I could
> tab my way to syscatalogs by using "pg_catalog." as prefix, I started
> feeling it was actually a nice behavior.

Hm.  Okay, Ian isn't completely alone then ;-)

I tried out that approach just now, though, and found that I still had
to type at least "pg_c" before I could get any tab completion help at
all.  Another odd thing was that after completing "pg_catalog.", it
wouldn't go any further --- one must type "p" here, even though all the
possible completions begin "pg_".  (Possibly that could be fixed, but
I don't know readline's behavior well enough to be sure.)  So that's
five typed characters and two tabs before one starts getting into the
system catalogs.  That seems like a lot of typing.  If Ian were willing
to type one more character of his p-something table names before hitting
tab (I assume he's not calling them pg-something), then he'd not have a
problem with the availability of tab completion for system catalogs.
I think saving one keystroke for p-something user tables is a poor
return for requiring seven keystrokes for system catalogs.

Anyway, it seems like we need a vote to see how many people prefer
each choice.

			regards, tom lane

Tue, 28 Oct 2003 17:47:48 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: [HACKERS] Autocomplete <TAB> on Postgres7.4beta5 not working? 
Alvaro Herrera Munoz wrote:
> On Tue, Oct 28, 2003 at 04:48:59PM -0500, Tom Lane wrote:
>>AFAICT there was no discussion about this issue when the patch was
>>proposed and applied.  But now that the point is raised I have to say
>>that I don't like this change.  I don't think system catalogs should be
>>excluded from tab completion.  They never were before 7.4, and I have
>>not seen anyone complaining about that, other than Ian.
> 
> I found it very irritating at first, but when I discovered that I could
> tab my way to syscatalogs by using "pg_catalog." as prefix, I started
> feeling it was actually a nice behavior.
> 

I found it similarly irritating at first, and it continues to irritate 
me. But that may be because I use system tables more frequently than the 
average Joe ;-)

I guess I'd be happy to see tab completion reinstated for system tables 
(except toast tables as Tom suggested nearby), but I don't feel 
particularly zealous about it.

Joe


Tue, 28 Oct 2003 14:51:51 -0800
Joe Conway <mail@joeconway.com>
Re: [HACKERS] Autocomplete <TAB> on Postgres7.4beta5 not working?
Andrew Dunstan <andrew@dunslane.net> writes:
> 2. include catalog objects in expansion iff we are expanding "pg_" + 
> optional suffix (probably best of both worlds).

Hmm, that might be an okay compromise.  Not sure how hard it is to
implement ...

			regards, tom lane

Tue, 28 Oct 2003 17:54:21 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: [BUGS] Autocomplete <TAB> on Postgres7.4beta5 not working? 
Greg Stark <gsstark@mit.edu> writes:
> I think I'm missing something. Why are pg_catalog.* tables in my search path
> at all? My search path seems to be set to $user,public. is pg_catalog
> implicitly appended there?

Yes.  See TFM:
http://developer.postgresql.org/docs/postgres/ddl-schemas.html
particularly section 5.8.5.

			regards, tom lane

Tue, 28 Oct 2003 18:01:08 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: [BUGS] Autocomplete <TAB> on Postgres7.4beta5 not working? 
On Tuesday 28 October 2003 23:47, Tom Lane wrote:
> Alvaro Herrera Munoz <alvherre@dcc.uchile.cl> writes:
> > I found it very irritating at first, but when I discovered that I could
> > tab my way to syscatalogs by using "pg_catalog." as prefix, I started
> > feeling it was actually a nice behavior.
>
> Hm.  Okay, Ian isn't completely alone then ;-)
>
> I tried out that approach just now, though, and found that I still had
> to type at least "pg_c" before I could get any tab completion help at
> all.  Another odd thing was that after completing "pg_catalog.", it
> wouldn't go any further --- one must type "p" here, even though all the
> possible completions begin "pg_".  (Possibly that could be fixed, but
> I don't know readline's behavior well enough to be sure.)  

I'm not sure whether it's intended or not, but explicitly adding
pg_catalog to the search path alleviates this.

> So that's
> five typed characters and two tabs before one starts getting into the
> system catalogs.  That seems like a lot of typing.  If Ian were willing
> to type one more character of his p-something table names before hitting
> tab (I assume he's not calling them pg-something),

Err ;-)

db=> \d p
page_template_cache               pg_ts_cfg_pkey
page_template_cache_ov_idx        pg_ts_cfgmap
page_template_cache_pkey          pg_ts_cfgmap_pkey
page_template_cache_template_idx  pg_ts_dict
pg_catalog.                       pg_ts_dict_pkey
pg_temp_1.                        pg_ts_parser
pg_toast.                         pg_ts_parser_pkey
pg_ts_cfg                         public.

(The pg_ts_% are all from tsearch2 BTW. Though, they`re all in
a schema of their own so explicitly addressing them would
work equally well too).
> then he'd not have a
> problem with the availability of tab completion for system catalogs.

I'm sure I can live with that (one more character), at least until I finish
the brainwave input extension ;-).


Ian Barwick
barwick@gmx.net



Wed, 29 Oct 2003 00:02:57 +0100
Ian Barwick <barwick@gmx.net>
Re: [HACKERS] Autocomplete <TAB> on Postgres7.4beta5 not working?
> Anyway, it seems like we need a vote to see how many people prefer
> each choice.

I say leave it the way it is. If you want system table tab completion,
simply:

        ALTER USER ... SET search_path = pg_catalog,...;

I would like to see the information_schema be a part of the default
search_path -- but I can do that myself.
Tue, 28 Oct 2003 18:22:41 -0500
Rod Taylor <rbt@rbt.ca>
Re: [HACKERS] Autocomplete <TAB> on Postgres7.4beta5 not working?
Ian Barwick <barwick@gmx.net> writes:
> On Tuesday 28 October 2003 23:47, Tom Lane wrote:
>> Another odd thing was that after completing "pg_catalog.", it
>> wouldn't go any further --- one must type "p" here, even though all the
>> possible completions begin "pg_".  (Possibly that could be fixed, but
>> I don't know readline's behavior well enough to be sure.)  

> I'm not sure whether it's intended or not, but explicitly adding
> pg_catalog to the search path alleviates this.

It turns out that I unintentionally broke that a few days ago while
adding quote_ident() calls.  I've repaired that damage, so now you can
go
	pg_c<TAB><TAB>
and get
	pg_catalog.pg_
which is one less keystroke than I claimed before.  I still think it's
too many though ...

			regards, tom lane

Tue, 28 Oct 2003 18:45:49 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: [HACKERS] Autocomplete <TAB> on Postgres7.4beta5 not working? 
Rod Taylor <rbt@rbt.ca> writes:
> I say leave it the way it is. If you want system table tab completion,
> simply:
>         ALTER USER ... SET search_path =3D pg_catalog,...;

Unfortunately, that *does not* affect the tab-completion behavior;
it will still not offer the system catalogs as completions unless
you explicitly prefix "pg_catalog.".

			regards, tom lane

Tue, 28 Oct 2003 18:49:28 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: [HACKERS] Autocomplete <TAB> on Postgres7.4beta5 not working? 
On Tue, 28 Oct 2003, Tom Lane wrote:

> Rod Taylor <rbt@rbt.ca> writes:
> > I say leave it the way it is. If you want system table tab completion,
> > simply:
> >         ALTER USER ... SET search_path =3D pg_catalog,...;
> 
> Unfortunately, that *does not* affect the tab-completion behavior;
> it will still not offer the system catalogs as completions unless
> you explicitly prefix "pg_catalog.".

It seems a good compromise then would be that if "pg_catalog" is in your 
search path, then do the old fashioned completion, i.e. p<tab> will list 
everything in both pg_catalog and the other schemas in your search path.

Afterall, the system catalog kind of "hitchhikes" along for a ride in your 
search path.  Most users aren't interested in the system catalogs, so 
having them suddenly show up when you just wanted the phonebook table is 
kinda a bother for them.

Is it possible to remove the implicit search path of pg_catalog from a 
psql session without it breaking lots of stuff?  If not, then it's kind of 
ugly to the user to have no way to get the system from proffering 
pg_catalog tables when they have no interest in them.  If so, then why 
make it part of the default?




Tue, 28 Oct 2003 17:01:49 -0700 (MST)
"scott.marlowe" <scott.marlowe@ihs.com>
Re: [HACKERS] Autocomplete <TAB> on Postgres7.4beta5 not
On Tue, 2003-10-28 at 18:49, Tom Lane wrote:
> Rod Taylor <rbt@rbt.ca> writes:
> > I say leave it the way it is. If you want system table tab completion,
> > simply:
> >         ALTER USER ... SET search_path =3D pg_catalog,...;
> 
> Unfortunately, that *does not* affect the tab-completion behavior;
> it will still not offer the system catalogs as completions unless
> you explicitly prefix "pg_catalog.".

Very well.. Would it be enough simply to fix it so it does work?  Remove
the S functionality and allow pg_catalog to work like a normal schema.
Tue, 28 Oct 2003 19:18:41 -0500
Rod Taylor <rbt@rbt.ca>
Re: [HACKERS] Autocomplete <TAB> on Postgres7.4beta5 not
"scott.marlowe" <scott.marlowe@ihs.com> writes:
> Is it possible to remove the implicit search path of pg_catalog from a 
> psql session without it breaking lots of stuff?

Do you consider "+", "count()", etc to be important stuff?

			regards, tom lane

Tue, 28 Oct 2003 19:24:43 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: [HACKERS] Autocomplete <TAB> on Postgres7.4beta5 not working? 
On Tue, 28 Oct 2003, Tom Lane wrote:

> "scott.marlowe" <scott.marlowe@ihs.com> writes:
> > Is it possible to remove the implicit search path of pg_catalog from a 
> > psql session without it breaking lots of stuff?
> 
> Do you consider "+", "count()", etc to be important stuff?

Me, hardly ever use them  :-)  So I can assume that removing the implicit 
pg_catalog from the search path is a "bad thing."

In that case, does my proposed solution of having to implicitly include 
pg_catalog in your search path to get it to be seen by tab completion as 
just another schema make sense?


Tue, 28 Oct 2003 17:34:47 -0700 (MST)
"scott.marlowe" <scott.marlowe@ihs.com>
Re: [HACKERS] Autocomplete <TAB> on Postgres7.4beta5 not

> AFAICT there was no discussion about this issue when the patch was
> proposed and applied.  But now that the point is raised I have to say
> that I don't like this change.  I don't think system catalogs should be
> excluded from tab completion.  They never were before 7.4, and I have
> not seen anyone complaining about that, other than Ian.
> 
> Comments anyone?

I had noticed that, but I had gotten used to it.  I'm not fussed 
particularly either way, really...

Chris



Wed, 29 Oct 2003 09:53:48 +0800
Christopher Kings-Lynne <chriskl@familyhealth.com.au>
Re: [HACKERS] Autocomplete <TAB> on Postgres7.4beta5 not working?
On Tue, 2003-10-28 at 19:34, scott.marlowe wrote:
> On Tue, 28 Oct 2003, Tom Lane wrote:
> 
> > "scott.marlowe" <scott.marlowe@ihs.com> writes:
> > > Is it possible to remove the implicit search path of pg_catalog from a 
> > > psql session without it breaking lots of stuff?
> > 
> > Do you consider "+", "count()", etc to be important stuff?
> 
> Me, hardly ever use them  :-)  So I can assume that removing the implicit 
> pg_catalog from the search path is a "bad thing."

From the search_path certainly -- but we can we teach the difference
between implicit and explicit to the *is_visible functions?
Tue, 28 Oct 2003 22:22:14 -0500
Rod Taylor <rbt@rbt.ca>
Re: [HACKERS] Autocomplete <TAB> on Postgres7.4beta5 not
Andrew Dunstan <andrew@dunslane.net> writes:
> 2. include catalog objects in expansion iff we are expanding "pg_" + 
> optional suffix (probably best of both worlds).

That seems like the best compromise position anyone offered, so I have
made the code work that way.

			regards, tom lane

Thu, 30 Oct 2003 16:38:43 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: [BUGS] Autocomplete <TAB> on Postgres7.4beta5 not working? 

This now works in current CVS and will be in 7.4 final:
	
	test=> select * from pg_l
	pg_language     pg_largeobject  pg_listener     pg_locks

---------------------------------------------------------------------------

Gaetano Mendola wrote:
> Hi all
> I'm esperiencing problem with the <TAB> autocomplete on
> postgres 7.4beta5:
> 
> #select * from pg_l<TAB><TAB>
> and no suggestions out.
> 
> 
> On postgres 7.3.4:
> 
> #select * from pg_l<TAB><TAB>
> pg_language     pg_largeobject  pg_listener     pg_locks
> 
> 
> 
> am I wrong ?
> 
> 
> 
> regards
> Gaetano Mendola
> 
> 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Sat, 8 Nov 2003 21:28:16 -0500 (EST)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: Autocomplete <TAB>  on Postgres7.4beta5 not working?
Bruce Momjian wrote:

> This now works in current CVS and will be in 7.4 final:

Thank you.


regards
Gaetano Mendola


Mon, 10 Nov 2003 01:24:46 +0100
Gaetano Mendola <mendola@bigfoot.com>
Re: Autocomplete <TAB>  on Postgres7.4beta5 not working?