On 31.05.2013 22:36, Andres Freund wrote:
> On 2013-05-31 22:29:45 +0300, Heikki Linnakangas wrote:
>> Note that pg_is_in_backup() just checks for presence of
>> $PGDATA/backup_label. Also note that pg_basebackup doesn't create
>> backup_label in the server. It's included in the backup that's sent to the
>> client, but it's never written to disk in the server. So checking for
>> backup_label manually or with pg_is_in_backup() will return false even if
>> pg_basebackup is running.
>
> Whoa. You are right, but I'd call that a bug. I don't understand why we
> aren't just checking
> XLogCtl->Insert.(nonExclusiveBackups||exlusiveBackup)?
Well, depends on what you imagine the function is used for. If you think
of it as "will pg_start_backup() throw an error if I call it now", or
"do I need to call pg_stop_backup()", then the current behavior is correct.
The manual says:
> pg_is_in_backup() bool True if an on-line exclusive backup is still in progress.
So clearly that is intentional. That could use some rephrasing, though;
a layman won't know what an "exclusive backup" is.
- Heikki