On Fri, Jun 19, 2015 at 12:14 AM, Michael Paquier <michael.paqu...@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 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers