Re: Failures with installcheck and low work_mem value in 13~

From: Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Alexander Korotkov <a(dot)korotkov(at)postgrespro(dot)ru>
Subject: Re: Failures with installcheck and low work_mem value in 13~
Date: 2020-06-19 17:08:11
Message-ID: 20200619170811.icuijsrxkfviiujf@development
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Jun 15, 2020 at 10:29:41PM +0900, Michael Paquier wrote:
>Hi all,
>
>Attempting to run installcheck with 13~ and a value of work_mem lower
>than the default causes two failures, both related to incremental
>sorts (here work_mem = 1MB):
>1) Test incremental_sort:
>@@ -4,12 +4,13 @@
> select * from (select * from tenk1 order by four) t order by four, ten;
> QUERY PLAN
> -----------------------------------
>- Sort
>+ Incremental Sort
> Sort Key: tenk1.four, tenk1.ten
>+ Presorted Key: tenk1.four
> -> Sort
> Sort Key: tenk1.four
> -> Seq Scan on tenk1
>-(5 rows)
>+(6 rows)
>
>2) Test join:
>@@ -2368,12 +2368,13 @@
> -> Merge Left Join
> Merge Cond: (x.thousand = y.unique2)
> Join Filter: ((x.twothousand = y.hundred) AND (x.fivethous = y.unique2))
>- -> Sort
>+ -> Incremental Sort
> Sort Key: x.thousand, x.twothousand, x.fivethous
>- -> Seq Scan on tenk1 x
>+ Presorted Key: x.thousand
>+ -> Index Scan using tenk1_thous_tenthous on tenk1 x
> -> Materialize
> -> Index Scan using tenk1_unique2 on tenk1 y
>-(9 rows)
>+(10 rows)
>
>There are of course regression failures when changing the relation
>page size or such, but we should have tests more portable when it
>comes to work_mem (this issue does not exist in ~12) or people running
>installcheck on a new instance would be surprised. Please note that I
>have not looked at the problem in details, but a simple solution would
>be to enforce work_mem in those code paths to keep the two plans
>stable.
>

I don't think the tests can be made not to depend on work_mem, because
it costing of sort / incremental sort depends on the value. I agree
setting the work_mem at the beginning of the test script is the right
solution.

regards

--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2020-06-19 17:10:37 Re: Add A Glossary
Previous Message Tomas Vondra 2020-06-19 17:05:40 Re: Failures with installcheck and low work_mem value in 13~