On Tue, Mar 03, 2020 at 02:51:54PM -0500, David Steele wrote: > Hi Fabien, > > On 1/16/20 9:38 AM, Justin Pryzby wrote: > >On Thu, Jan 16, 2020 at 09:34:32AM +0100, Fabien COELHO wrote: > >>Also, I'm not fully sure why ".*" files should be skipped, maybe it should > >>be an option? Or the user can filter it with SQL if it does not want them? > > > >I think if someone wants the full generality, they can do this: > > > >postgres=# SELECT name, s.size, s.modification, s.isdir FROM (SELECT > >'base/pgsql_tmp'p)p, pg_ls_dir(p)name, pg_stat_file(p||'/'||name)s; > > name | size | modification | isdir > >------+------+------------------------+------- > > .foo | 4096 | 2020-01-16 08:57:04-05 | t > > > >In my mind, pg_ls_tmpdir() is for showing tmpfiles, not just a shortcut to > >SELECT pg_ls_dir((SELECT 'base/pgsql_tmp'p)); -- or, for all tablespaces: > >WITH x AS (SELECT format('/PG_%s_%s', > >split_part(current_setting('server_version'), '.', 1), catalog_version_no) > >suffix FROM pg_control_system()), y AS (SELECT a, pg_ls_dir(a) AS d FROM > >(SELECT DISTINCT COALESCE(NULLIF(pg_tablespace_location(oid),'')||suffix, > >'base') a FROM pg_tablespace,x)a) SELECT a, pg_ls_dir(a||'/pgsql_tmp') FROM > >y WHERE d='pgsql_tmp'; > > > >I think changing dotfiles is topic for another patch. > >That would also affect pg_ls_dir, and everything else that uses the backing > >function pg_ls_dir_files_recurse. I'd have to ask why not also show . and > >.. ? > > > >(In fact, if I were to change anything, I would propose to limit > >pg_ls_tmpdir() > >to files matching PG_TEMP_FILE_PREFIX). > > We seem to be at an impasse on this patch. What do you think of Justin's > comments here?
Actually, I found Fabien's comment regarding extensions use of tmp dir to be convincing. And I'm willing to update the patch to use a stack to show arbitrarily-deep files/dirs rather than just one level deep (as used for shared filesets in core postgres). But I don't think it makes sense to go through more implementation/review cycles without some agreement from a larger group regarding the desired/intended interface. Should there be a column for "parent dir" ? Or a column for "is_dir" ? Should dirs be shown at all, or only files ? -- Justin