Re: pgsql: Add some regression tests that exercise hash join code.

From: Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Andres Freund <andres(at)anarazel(dot)de>, pgsql-committers <pgsql-committers(at)postgresql(dot)org>
Subject: Re: pgsql: Add some regression tests that exercise hash join code.
Date: 2017-11-30 03:47:48
Message-ID: CAEepm=3DUQC2-z252N55eOcZBer6DPdM=FzrxH9dZc5vYLsjaA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

On Thu, Nov 30, 2017 at 4:13 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Andres Freund <andres(at)anarazel(dot)de> writes:
>> Add some regression tests that exercise hash join code.
>
> At least one buildfarm member doesn't like this ...

$$);
initially_multibatch | increased_batches
----------------------+-------------------
! t | f
(1 row)

rollback to settings;
--- 6002,6008 ----
$$);
initially_multibatch | increased_batches
----------------------+-------------------
! |
(1 row)

Hmm. aholehole didn't give me the hash join EXPLAIN ANALYZE output.
All other animals are fine so far. Gah. My guess is that this is the
following unlikely sequence:

1. Worker launched.
2. Leader descheduled.
3. Worker runs whole join.
4. Leader awakes from slumber, begins running plan and tries to scan
outer relation, sees EOF, takes empty-outer optimisation and skips
building hash table.
5. Explain has no data.

It's arguably a bug that EXPLAIN ANALYZE can fail to give you what you
asked for because of details of timing and I have a patch in
development to fix that but it's not yet baked. Hmm. Wondering if
there is a quick way to avoid that case in the meantime...

--
Thomas Munro
http://www.enterprisedb.com

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Noah Misch 2017-11-30 09:04:00 pgsql: Fix non-GNU makefiles for AIX make.
Previous Message Tom Lane 2017-11-30 03:13:21 Re: pgsql: Add some regression tests that exercise hash join code.