Re: v12.0 ERROR: trying to store a heap tuple into wrong type of slot

From: Andres Freund <andres(at)anarazel(dot)de>
To: Justin Pryzby <pryzby(at)telsasoft(dot)com>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: v12.0 ERROR: trying to store a heap tuple into wrong type of slot
Date: 2019-10-13 14:51:06
Message-ID: 20191013145106.34gygkepgq4yaqxj@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2019-10-11 16:03:20 -0500, Justin Pryzby wrote:
> I'm not sure why we have that index, and my script probably should have known
> to choose a better one to cluster on, but still..
>
> ts=# CLUSTER huawei_m2000_config_enodebcell_enodeb USING huawei_m2000_config_enodebcell_enodeb_coalesce_idx ;
> DEBUG: 00000: building index "pg_toast_1840151315_index" on table "pg_toast_1840151315" serially
> LOCATION: index_build, index.c:2791
> DEBUG: 00000: clustering "public.huawei_m2000_config_enodebcell_enodeb" using sequential scan and sort
> LOCATION: copy_table_data, cluster.c:907
> ERROR: XX000: trying to store a heap tuple into wrong type of slot
> LOCATION: ExecStoreHeapTuple, execTuples.c:1328

Well, that's annoying. There apparently is not a single test covering
cluster on expression indexes, that' really ought to not be the
case. Equally annoying that I just broke this without noticing at all
:(.

The cause of the error is that, while that sounds like it should be the
case, a virtual slot isn't sufficient for tuplesort_begin_cluster(). So
the fix is pretty trivial. Will fix.

I started a separate thread about test coverage of tuplesort at
https://www.postgresql.org/message-id/20191013144153.ooxrfglvnaocsrx2%40alap3.anarazel.de

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2019-10-13 14:57:33 Re: stress test for parallel workers
Previous Message Andres Freund 2019-10-13 14:50:53 Re: stress test for parallel workers