Re-enable postgresql database and user completion (Alioth: #312914, Ubuntu: #164772).

This implementation uses -w which is available only in psql >= 8.4,
but the net effect with earlier versions should be the same as when
the completions were disabled.
This commit is contained in:
Ville Skyttä 2011-01-08 23:28:38 +02:00
parent b1dbd1d712
commit fe2d7645df
2 changed files with 10 additions and 9 deletions

View File

@ -42,6 +42,8 @@ bash-completion (2.x)
* Add *.apk to unzip and jar filename completions.
* Do not load bash_completion in profile.d script if progcomp is not enabled.
* Ignore muttrc source entries that are not files (Alioth: #312881).
* Re-enable postgresql database and user completion (Alioth: #312914,
Ubuntu: #164772).
[ Freddy Vulto ]
* Added _tilde(), fix ~username completion (Alioth: #312613, Debian: #587095)

View File

@ -3,19 +3,18 @@
have psql && {
_pg_databases()
{
return # See https://launchpad.net/bugs/164772
COMPREPLY=( $( compgen -W "$( psql -l 2>/dev/null | \
sed -e '1,/^-/d' -e '/^(/,$d' | \
awk '{print $1}' )" -- "$cur" ) )
# -w was introduced in 8.4, https://launchpad.net/bugs/164772
# "Access privileges" in output may contain linefeeds, hence the NF > 1
COMPREPLY=( $( compgen -W "$( psql -AtqwlF $'\t' 2>/dev/null | \
awk 'NF > 1 { print $1 }' )" -- "$cur" ) )
}
_pg_users()
{
# See https://launchpad.net/bugs/164772
#COMPREPLY=( $( psql -qtc 'select usename from pg_user' template1 2>/dev/null | \
# command grep "^ $cur" ) )
#[ ${#COMPREPLY[@]} -eq 0 ] && COMPREPLY=( $( compgen -u -- $cur ) )
COMPREPLY=( $( compgen -u -- "$cur" ) )
# -w was introduced in 8.4, https://launchpad.net/bugs/164772
COMPREPLY=( $( compgen -W "$( psql -Atqwc 'select usename from pg_user' \
template1 2>/dev/null )" -- "$cur" ) )
[ ${#COMPREPLY[@]} -eq 0 ] && COMPREPLY=( $( compgen -u -- "$cur" ) )
}
# createdb(1) completion