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


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to