Index: doc/src/sgml/ref/alter_user.sgml
===================================================================
RCS file: /cvsroot/pgsql-server/doc/src/sgml/ref/alter_user.sgml,v
retrieving revision 1.27
diff -c -c -r1.27 alter_user.sgml
*** doc/src/sgml/ref/alter_user.sgml 15 Apr 2003 13:25:08 -0000 1.27
--- doc/src/sgml/ref/alter_user.sgml 6 Jun 2003 15:00:17 -0000
***************
*** 20,26 ****
where option can be:
! [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
| CREATEDB | NOCREATEDB
| CREATEUSER | NOCREATEUSER
| VALID UNTIL 'abstime'
--- 20,26 ----
where option can be:
! [ ENCRYPTED | UNENCRYPTED ] PASSWORD [ 'password' | NONE ]
| CREATEDB | NOCREATEDB
| CREATEUSER | NOCREATEUSER
| VALID UNTIL 'abstime'
***************
*** 75,81 ****
password
! The new password to be used for this account.
--- 75,82 ----
password
! The new password to be used for this account. Set to NONE>
! to remove the password.
Index: src/backend/commands/user.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/commands/user.c,v
retrieving revision 1.117
diff -c -c -r1.117 user.c
*** src/backend/commands/user.c 12 May 2003 23:08:50 -0000 1.117
--- src/backend/commands/user.c 6 Jun 2003 15:00:18 -0000
***************
*** 558,564 ****
if (dvalidUntil)
validUntil = strVal(dvalidUntil->arg);
if (dpassword)
! password = strVal(dpassword->arg);
if (dgroupElts)
groupElts = (List *) dgroupElts->arg;
--- 558,564 ----
if (dvalidUntil)
validUntil = strVal(dvalidUntil->arg);
if (dpassword)
! password = dpassword->arg ? strVal(dpassword->arg) : NULL;
if (dgroupElts)
groupElts = (List *) dgroupElts->arg;
***************
*** 767,773 ****
if (dvalidUntil)
validUntil = strVal(dvalidUntil->arg);
if (dpassword)
! password = strVal(dpassword->arg);
if (password)
CheckPgUserAclNotNull();
--- 767,773 ----
if (dvalidUntil)
validUntil = strVal(dvalidUntil->arg);
if (dpassword)
! password = dpassword->arg ? strVal(dpassword->arg) : NULL;
if (password)
CheckPgUserAclNotNull();
***************
*** 831,850 ****
}
/* password */
! if (password)
{
! if (!encrypt_password || isMD5(password))
! new_record[Anum_pg_shadow_passwd - 1] =
! DirectFunctionCall1(textin, CStringGetDatum(password));
else
{
! if (!EncryptMD5(password, stmt->user, strlen(stmt->user),
! encrypted_password))
! elog(ERROR, "CREATE USER: password encryption failed");
! new_record[Anum_pg_shadow_passwd - 1] =
! DirectFunctionCall1(textin, CStringGetDatum(encrypted_password));
}
- new_record_repl[Anum_pg_shadow_passwd - 1] = 'r';
}
/* valid until */
--- 831,858 ----
}
/* password */
! if (dpassword)
{
! if (password)
! {
! if (!encrypt_password || isMD5(password))
! new_record[Anum_pg_shadow_passwd - 1] =
! DirectFunctionCall1(textin, CStringGetDatum(password));
! else
! {
! if (!EncryptMD5(password, stmt->user, strlen(stmt->user),
! encrypted_password))
! elog(ERROR, "CREATE USER: password encryption failed");
! new_record[Anum_pg_shadow_passwd - 1] =
! DirectFunctionCall1(textin, CStringGetDatum(encrypted_password));
! }
! new_record_repl[Anum_pg_shadow_passwd - 1] = 'r';
! }
else
{
! new_record_nulls[Anum_pg_shadow_passwd - 1] = 'n';
! new_record_repl[Anum_pg_shadow_passwd - 1] = 'r';
}
}
/* valid until */
Index: src/backend/parser/gram.y
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/parser/gram.y,v
retrieving revision 2.416
diff -c -c -r2.416 gram.y
*** src/backend/parser/gram.y 29 May 2003 20:40:36 -0000 2.416
--- src/backend/parser/gram.y 6 Jun 2003 15:00:26 -0000
***************
*** 640,645 ****
--- 640,649 ----
{
$$ = makeDefElem("password", (Node *)makeString($2));
}
+ | PASSWORD NONE
+ {
+ $$ = makeDefElem("password", (Node *)NULL);
+ }
| ENCRYPTED PASSWORD Sconst
{
$$ = makeDefElem("encryptedPassword", (Node *)makeString($3));