Hi, I think that createuser/drouser reference documentation could be enhanced for username param. There is:
"createuser is a wrapper around the SQL command CREATE ROLE. There is no effective difference between creating users via this utility and via other methods for accessing the server." http://www.postgresql.org/docs/9.0/static/app-createuser.html http://www.postgresql.org/docs/9.0/static/app-dropuser.html But createuser and dropuser wrappers in some cases are doing implicit quoting (when CREATE ROLE is not), which I think is not fully known and is undocumented here. For example: createuser -SDRe user -- reserved in PostgreSQL CREATE ROLE "user" NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN; createuser -SDRe myuser CREATE ROLE myuser NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN; createuser -SDRe MYuser CREATE ROLE "MYuser" NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN; psql postgres ALTER ROLE MYuser CREATEDB; -- fatal mistake, it works for myuser delimited identifier ALTER ROLE ALTER ROLE "MYuser" CREATEDB; -- ok, quoted identifier ALTER ROLE ALTER ROLE user CREATEDB; ERROR: syntax error at or near "user" LINE 1: ALTER ROLE user CREATEDB; ^ postgres=# ALTER ROLE "user" CREATEDB; ALTER ROLE Regards, Grzegorz Szpetkowski -- Sent via pgsql-docs mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-docs
