open DataStructures
-val validDbname = CharVector.all Char.isAlpha
+val validDbname = CharVector.all (fn ch => Char.isAlphaNum ch orelse ch = #"_")
type handler = {getpass : (unit -> Client.passwd_result) option,
adduser : {user : string, passwd : string option} -> string option,
passwd : {user : string, passwd : string} -> string option,
createdb : {user : string, dbname : string} -> string option,
- dropdb : {user : string, dbname : string} -> string option}
+ dropdb : {user : string, dbname : string} -> string option,
+ grant : {user : string, dbname : string} -> string option}
val dbmses : handler StringMap.map ref = ref StringMap.empty