Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nii2w-0004G3-Kd for pgsql-hackers@arkaria.postgresql.org; Sun, 24 Apr 2022 19:37:26 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nii2t-0002Xl-Dx for pgsql-hackers@arkaria.postgresql.org; Sun, 24 Apr 2022 19:37:23 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nii2s-0002Xb-Nm for pgsql-hackers@lists.postgresql.org; Sun, 24 Apr 2022 19:37:22 +0000 Received: from relay10.mail.gandi.net ([2001:4b98:dc4:8::230]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nii2l-00055g-1m for pgsql-hackers@lists.postgresql.org; Sun, 24 Apr 2022 19:37:20 +0000 Received: (Authenticated sender: adsend@dunslane.net) by mail.gandi.net (Postfix) with ESMTPSA id E2D9B240002; Sun, 24 Apr 2022 19:37:08 +0000 (UTC) Message-ID: <614341e3-3c12-e9a8-4b6d-ae2b3bc064cb@dunslane.net> Date: Sun, 24 Apr 2022 15:37:06 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: pgsql: Allow db.schema.table patterns, but complain about random garbag Content-Language: en-US To: Noah Misch Cc: Robert Haas , Thomas Munro , Tom Lane , PostgreSQL Hackers References: <3a190754-b2b0-d02b-dcfd-4ec1610ffbcb@dunslane.net> <3687648.1650636245@sss.pgh.pa.us> <20220423025927.GA1274057@rfd.leadboat.com> <22c77d3c-3f90-2451-1f95-ed0d3e196d81@dunslane.net> <20220424181934.GA1326154@rfd.leadboat.com> From: Andrew Dunstan In-Reply-To: <20220424181934.GA1326154@rfd.leadboat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 2022-04-24 Su 14:19, Noah Misch wrote: > On Sun, Apr 24, 2022 at 01:09:08PM -0400, Andrew Dunstan wrote: >> On 2022-04-22 Fr 22:59, Noah Misch wrote: >>> The MinGW gcc crt*.o files do shell-glob expansion on the arguments before >>> entering main(). See https://google.com/search?q=mingw+command+line+glob for >>> various discussion of that behavior. I suspect you experienced that, not any >>> IPC::Run behavior. (I haven't tested, though.) Commit 11e9caf likely had the >>> same cause, though the commit message attributed it to the msys shell rather >>> than to crt*.o. >>> >>> Let's disable that MinGW compiler behavior. >>> https://willus.com/mingw/_globbing.shtml lists two ways of achieving that. >> Yeah. I can definitely confirm that this is the proximate cause of the >> issue, and not either IPC::Run or the shell, which is why all my >> experiments on this failed. With this patch > Thanks for confirming. > >> diff --git a/src/include/port/win32.h b/src/include/port/win32.h >> index c6213c77c3..456c3f31f1 100644 >> --- a/src/include/port/win32.h >> +++ b/src/include/port/win32.h >> @@ -77,3 +77,7 @@ struct sockaddr_un >> char sun_path[108]; >> }; >> #define HAVE_STRUCT_SOCKADDR_UN 1 >> + >> +#ifndef _MSC_VER >> +extern int _CRT_glob = 0; /* 0 turns off globbing; 1 turns it on */ >> +#endif >> >> >> fairywren happily passes the tests that Robert has since reverted. >> >> >> I'm rather tempted to call this CRT behaviour a mis-feature, especially >> as a default. I think we should certainly disable it in the development >> branch, and consider back-patching it, although it is a slight change in >> behaviour, albeit one that we didn't know about much less want or >> document. Still, we been building with mingw compilers for about 20 >> years and haven't hit this before so far as we know, so maybe not. > I'd lean toward back-patching. We position MSVC and MinGW as two ways to > build roughly the same PostgreSQL, not as two routes to different user-facing > behavior. Since the postgresql.org/download binaries use MSVC, aligning with > their behavior is good. It's fair to mention in the release notes, of course. OK, good point. > Does your win32.h patch build without warnings or errors? Yes. > Even if MinGW has > some magic to make that work, I suspect we'll want a non-header home. Perhaps > src/common/exec.c? It's best to keep this symbol out of libpq and other > DLLs, though I bet exports.txt would avoid functional problems. exec.c looks like it should work fine. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com