Re: [PATCH] Improve error message when trying to lock virtual tuple.

From: Sven Klemm <sven(at)timescale(dot)com>
To: Matthias van de Meent <boekewurm+postgres(at)gmail(dot)com>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: [PATCH] Improve error message when trying to lock virtual tuple.
Date: 2024-06-18 07:32:30
Message-ID: CAMCrgp2HmFLsw9EsVKJ4Rfsq8HX_mjZCqipzU3zEGCFippC6pQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Jun 17, 2024 at 10:25 PM Matthias van de Meent
<boekewurm+postgres(at)gmail(dot)com> wrote:

> I think you're solving the wrong problem here, as I can't think of a
> place where both virtual tuple slots and tuple locking are allowed at
> the same time in core code.
>
> I mean, in which kind of situation could we get a Relation's table
> slot which is not lockable by said relation's AM? Assuming the "could
> not read block 0" error comes from the heap code, why does the
> assertion in heapam_tuple_lock that checks for a
> BufferHeapTupleTableSlot not fire before this `block 0` error? If the
> error is not in the heapam code, could you show an example of the code
> that breaks with that error code?

In assertion enabled builds this will be stopped much earlier and not return
the misleading error message. But most packaged postgres versions don't have
assertions enabled and will produce the misleading `could not read block 0`
error.
I am aware that this not a postgres bug, but i think this error message
is an improvement over the current situation.

--
Regards, Sven Klemm

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2024-06-18 07:41:55 Re: consider -Wmissing-variable-declarations
Previous Message Peter Eisentraut 2024-06-18 07:27:02 CompilerWarnings task does not catch C++ warnings