On Fri, Oct 17, 2014 at 3:34 AM, Tom Lane <t...@sss.pgh.pa.us> wrote:

> Andres Freund <and...@2ndquadrant.com> writes:
> > On 2014-10-16 10:06:59 -0400, Tom Lane wrote:
> >> No, it wasn't.  I'm not convinced either that that patch will get in at
> >> all, or that it has to have regression tests of that particular form,
> >> or that such a switch would be sufficient to make such tests platform
> >> independent.
>
> > Why should the EXPLAIN ANALYZE output without timing information be less
> > consistent for sensibly selected cases than EXPLAIN itself?
>
> To take just one example, the performance numbers that get printed for
> a sort, such as memory consumption, are undoubtedly platform-dependent.
> Maybe your idea of "sensibly selected cases" excludes sorting, but
> I don't find such an argument terribly convincing.  I think if we go
> down this road, we are going to end up with an EXPLAIN that has one
> hundred parameters turning on and off tiny pieces of the output, none
> of which are of any great use for anything except the regression tests.
> I don't want to go there.  It would be a lot better to expend the effort
> on a better regression testing infrastructure that wouldn't *need*
> bitwise-identical output across platforms.  (mysql is ahead of us in that
> department: they have some hacks for selective matching of the output.)
>
>
I saw this, and I was about to ask the same question as Andres.... I think
I now see what you're worried about. Next we'd need a flag to disable
external disk sort sizes too...

Perhaps we could introduce some sort of wildcard matching in the regression
tests. So that we could stick something like:

 Execution time: * ms

Into the expected results, though, probably we'd need to come up with some
wildcard character which is a bit less common than *

It might be hard to generate a useful diff with this for when a test fails,
but maybe it'd be good enough to just run the 2 files through this wildcard
matching programme and then just do a diff if it fails.

Regards

David Rowley

Reply via email to