Re: datistemplate of pg_database does not behave as per description in documentation

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: Rajeev rastogi <rajeev(dot)rastogi(at)huawei(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: datistemplate of pg_database does not behave as per description in documentation
Date: 2014-03-27 11:45:52
Message-ID: 31029.1395920752@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Magnus Hagander <magnus(at)hagander(dot)net> writes:
> On Thu, Mar 27, 2014 at 9:12 AM, Rajeev rastogi
> <rajeev(dot)rastogi(at)huawei(dot)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.

(Changing code and failing to adjust the adjacent comment is even less
of an answer.)

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2014-03-27 11:55:55 Re: [HACKERS] New parameter RollbackError to control rollback behavior on error
Previous Message Stephen Frost 2014-03-27 11:24:35 Re: datistemplate of pg_database does not behave as per description in documentation