Re: pg11+: pg_ls_*dir LIMIT 1: temporary files .. not closed atend-of-transaction - Mailing list pgsql-hackers

From Justin Pryzby
Subject Re: pg11+: pg_ls_*dir LIMIT 1: temporary files .. not closed atend-of-transaction
Date
Msg-id 20200331080643.GE14618@telsasoft.com
Whole thread Raw
In response to Re: pg11+: pg_ls_*dir LIMIT 1: temporary files .. not closed atend-of-transaction  (Fabien COELHO <coelho@cri.ensmp.fr>)
Responses Re: pg11+: pg_ls_*dir LIMIT 1: temporary files .. not closed at end-of-transaction  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Tue, Mar 31, 2020 at 07:36:03AM +0200, Fabien COELHO wrote:
> > > As I wrote about an earlier version of the patch, ISTM that instead of
> > > reinventing, extending, adapting various ls variants (with/without
> > > metadata, which show only files, which shows target of links, which shows
> > > directory, etc.) we would just need *one* postgres "ls" implementation
> > > which would be like "ls -la arg" (returns file type, dates), and then
> > > everything else is a wrapper around that with appropriate filtering that
> > > can be done at the SQL level, like you started with recurse.
> > 
> > Yeah, I agree that some new function that can represent symlinks
> > explicitly in its output is the place to deal with this, for
> > people who want to deal with it.
> > 
> > In the meantime, there's still the question of what pg_ls_dir_files
> > should do exactly.  Are we content to have it ignore symlinks?
> > I remain inclined to think that's the right thing given its current
> > brief.
> 
> My 0.02€:
> 
> I agree that it is enough to reproduce the current behavior of various
> existing pg_ls* functions, but on the other hand outputing a column type
> char like ls (-, d, l…) looks like really no big deal. I'd say that the only
> reason not to do it may be to pass this before feature freeze.

Remember, there's two threads here, and this one is about the bug in stable
releases ($SUBJECT), and now the instability in the test that was added with
its fix.

I suggest to leave stat() alone in your patch for stable releases.  I think
it's okay if we change behavior so that a broken symlink is skipped instead of
erroring (as a side effect of skipping ENOENT with stat()).  But not okay if we
change pg_ls_logdir() to hide symlinks in back braches.

-- 
Justin



pgsql-hackers by date:

Previous
From: John Naylor
Date:
Subject: Re: tweaking perfect hash multipliers
Next
From: Artur Zakirov
Date:
Subject: Re: truncating timestamps on arbitrary intervals