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
