I was imagining that this would be a trap for linux developers who saw nothing wrong with their code until it made it to the build/test farm. That's pretty far down the development process. Of course, it is also a trap in the other direction, for Windows developers who use the pattern but do not include anything equivalent for the non-Windows execution path.
On the whole, however, your argument in favor of tighter patterns might be more convincing than my argument in favor of catching bugs sooner. I will start implementing your suggestion for patch v2. ________________________________ From: Tom Lane <[email protected]> To: Mark Dilger <[email protected]> Cc: "[email protected]" <[email protected]> Sent: Tuesday, May 29, 2012 3:42 PM Subject: Re: [HACKERS] Performance patch for Win32 Mark Dilger <[email protected]> writes: > I am hesitant to write a function like AllocateDirWithFilePattern > if the pattern is simply ignored on non-Windows. In my patch, > the pattern underspecified the files, and the ad-hoc matching code > applied to all the returned files tightened that up. But a person > could just as well overspecify the pattern and then they would get > different behavior on Windows vs. non-Windows, with fewer > files returned by FindNextFile() than would have matched the > ad-hoc pattern. Well, if you're imagining that we wouldn't need to test carefully on both Windows and non-Windows, I think that's a pipe dream. As an example, your proposal of AllocateDirWithFilePrefix would only work consistently across platforms if the prefix didn't contain anything that Windows thought was a pattern metacharacter. (This might never come up, but I'm not too sure what the metacharacters are on Windows.) Having said that, I have nothing particularly against the idea of specifying a prefix rather than an arbitrary pattern. I'm just saying it'll still need testing. Also, I wonder how many of the potential stat-equivalent operations we'll be unable to optimize away with the more restricted definition. Using a tighter pattern on Windows seems basically free (modulo testing) if we accept that it's Windows-only. regards, tom lane
