I noticed that ALTER ROLE/USER succeeds even when called without any options:
postgres=# alter user foo; ALTER ROLE postgres=# alter role foo; ALTER ROLE postgres=# alter group foo; ERROR: syntax error at or near ";" LINE 1: alter group foo; That seems odd, does nothing useful, and is inconsistent with, for example, ALTER GROUP as shown above. Proposed patch attached. Comments/thoughts? Joe -- Crunchy Data - http://crunchydata.com PostgreSQL Support for Secure Enterprises Consulting, Training, & Open Source Development
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c index 8340948..a71217e 100644 *** a/src/backend/commands/user.c --- b/src/backend/commands/user.c *************** AlterRole(AlterRoleStmt *stmt) *** 549,554 **** --- 549,559 ---- check_rolespec_name(stmt->role, "Cannot alter reserved roles."); + if (list_length(stmt->options) == 0) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("no options specified"))); + /* Extract options from the statement node tree */ foreach(option, stmt->options) {
signature.asc
Description: OpenPGP digital signature