Re: pg_rewind failure by file deletion in source server - Mailing list pgsql-hackers

From Robert Haas
Subject Re: pg_rewind failure by file deletion in source server
Date
Msg-id CA+TgmoY7v=w6Fkt6sc8Krw3bqnfmjSNJ-VdsvBZ_0TqOu5Ms5w@mail.gmail.com
Whole thread Raw
In response to Re: pg_rewind failure by file deletion in source server  (Michael Paquier <michael.paquier@gmail.com>)
Responses Re: pg_rewind failure by file deletion in source server
List pgsql-hackers
On Fri, Jun 19, 2015 at 12:14 AM, Michael Paquier
<michael.paquier@gmail.com> wrote:
>> Listing the directories with pg_ls_dir() has the same problem.
>
> (After some discussion on IM with Heikki on this one).
> This is actually more tricky because pg_ls_dir() does not return '.'
> or '..' that we could use to identify that the directory actually
> exists or not when it is empty. Hence I think that we should add two
> options to pg_ls_dir:
> - include_self, default to false. If set to true, '.' is added in the
> list of items.
> - if_not_exists, to bypass error that a folder does not exist, default
> at false. If if_not_exists = true and include_self = true, returning
> only '.' would mean that the folder exist but that it is empty. If
> if_not_exists = true and include_self = false, no rows are returned.
> We could as well ERROR as well if both options are set like that. I am
> fine with any of them as long as behavior is properly documented.

Including '.' to distinguish between an empty directory and a
nonexistent one seems like an unnecessarily complicated and
non-obvious API.  How about just one additional parameter bool
*exists.  If NULL and no directory, ERROR, else on return set *exists
to true or false.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



pgsql-hackers by date:

Previous
From: Petr Jelinek
Date:
Subject: Re: Tab completion for TABLESAMPLE
Next
From: Robert Haas
Date:
Subject: Re: pg_rewind failure by file deletion in source server