Re: pgsql: Move tablespace path re-creation from the makefiles to pg_regres - Mailing list pgsql-hackers

From Noah Misch
Subject Re: pgsql: Move tablespace path re-creation from the makefiles to pg_regres
Date
Msg-id 20210325025659.GA4017435@rfd.leadboat.com
Whole thread Raw
In response to Re: pgsql: Move tablespace path re-creation from the makefiles to pg_regres  (Michael Paquier <michael@paquier.xyz>)
Responses Re: pgsql: Move tablespace path re-creation from the makefiles to pg_regres  (Michael Paquier <michael@paquier.xyz>)
List pgsql-hackers
On Thu, Mar 25, 2021 at 07:44:02AM +0900, Michael Paquier wrote:
> On Wed, Mar 24, 2021 at 10:50:50AM -0400, Robert Haas wrote:
> > On Wed, Mar 24, 2021 at 5:56 AM Christoph Berg <myon@debian.org> wrote:
> >> Maybe creating the tablespace directory from within the testsuite
> >> would suffice?
> >>
> >> CREATE TABLE foo (t text);
> >> COPY foo FROM PROGRAM 'mkdir @testtablespace@';
> >> CREATE TABLESPACE regress_tblspace LOCATION '@testtablespace@';
> > 
> > Would that work on Windows?

That would entail forbidding various shell metacharacters in @testtablespace@.
One could avoid imposing such a restriction by adding a mkdir() function to
regress.c and writing it like:

CREATE FUNCTION mkdir(text)
   RETURNS void AS '@libdir@/regress@DLSUFFIX@', 'regress_mkdir'
   LANGUAGE C STRICT\;
  REVOKE ALL ON FUNCTION mkdir FROM public;
SELECT mkdir('@testtablespace@');
CREATE TABLESPACE regress_tblspace LOCATION '@testtablespace@';

> I doubt that all the Windows environments would be able to get their
> hands on that.

> And I am not sure either that this would work when it
> comes to the CI case, again on Windows.

How might a CI provider break that?



pgsql-hackers by date:

Previous
From: Masahiro Ikeda
Date:
Subject: Re: About to add WAL write/fsync statistics to pg_stat_wal view
Next
From: Michael Paquier
Date:
Subject: Re: multi-install PostgresNode