On Mar 27, 2014 12:45 PM, "Tom Lane" <t...@sss.pgh.pa.us> wrote: > > Magnus Hagander <mag...@hagander.net> writes: > > On Thu, Mar 27, 2014 at 9:12 AM, Rajeev rastogi > > <rajeev.rast...@huawei.com>wrote: > >> But current code does not behave in this manner. Even if dbistemplate of > >> database is false, still it allows to be used as template database. > > > AFAICT, the *only* thing datistemplate is used is to set parameters in > > autovacuum. > > Huh? The code comment is perfectly clear: > > /* > * Permission check: to copy a DB that's not marked datistemplate, you > * must be superuser or the owner thereof. > */ > if (!src_istemplate) > { > if (!pg_database_ownercheck(src_dboid, GetUserId())) > ereport(ERROR, > (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), > errmsg("permission denied to copy database \"%s\"", > dbtemplate))); > } > > I agree we need to make the docs match the code, but changing behavior > that's been like that for ten or fifteen years isn't the answer.
Hah, I hadn't done more than git grep for datistemplate :-) that's what I get for taking shortcuts... But yes, fixing the documentation is what I advocate as well. > (Changing code and failing to adjust the adjacent comment is even less > of an answer.) I didn't even look at the suggested patch.. /Magnus