* Tom Lane <[EMAIL PROTECTED]> [2008-03-17 15:28]:
> Mika Fischer <[EMAIL PROTECTED]> writes:
> > What the current code does is:
> > Run "psql -l" to get the list of local databases, and
> > run "psql -qtc 'select usename from pg_user' template1" to get the list
> > of users. If this fails the system users are used for completion.
> 
> > I'm not at all a PostgreSQL expert so I can't even comment on whether
> > this is a smart thing to do or not.
> 
> It's not, IMHO.  You don't even know if the local database is where the
> user is intending to connect to. 

Well, if the user has already given a -h parameter I could notice and
disable the completion. If he has not and tries to complete for -U, but
later wants to supply a -h option, then there's not much I can do about
it but I don't think much harm is done.

> Moreover this presupposes some rather obsolete ideas about what
> connection parameters might need to be given on the command line.

What exactly do you mean by that?

Do you mean that this would be better?
psql -q -t -c 'select usename from pg_user' -d template1

> Something that might be more useful is to see if there's a connection
> service file
> http://developer.postgresql.org/pgdocs/postgres/libpq-pgservice.html
> and offer the names of service entries in it.

Yes, that also seems to be useful. What is the recommended way to use
these service names?

'psql "service=name"' or 'psql -d name'?

It would still be nice if for the local database you could do:
psql very<TAB>
and it would complete to very_long_database_name

But it seems impossible to do this nicely...

Regards,
 Mika

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to