Re: ERROR: found unexpected null value in index

Peter Geoghegan <pg@bowt.ie>

From: Peter Geoghegan <pg@bowt.ie>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Manuel Rigger <rigger.manuel@gmail.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2019-07-10T01:30:56Z
Lists: pgsql-bugs
On Tue, Jul 9, 2019 at 6:08 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> The error is coming from the planner's get_actual_variable_range:
>
>                     /* Shouldn't have got a null, but be careful */
>                     if (isnull[0])
>                         elog(ERROR, "found unexpected null value in index \"%s\"",
>                              RelationGetRelationName(indexRel));
>
> and I think it's entirely within its rights to complain, because it
> set up the scan key to reject nulls.  In short, somebody seems to
> have broken btrees' processing of SK_ISNULL | SK_SEARCHNOTNULL scankeys,
> and they broke it in v11, because prior versions don't show this failure.

It's not obvious to me why that might be. I'll run a "git bisect" to
track down the offending commit.

-- 
Peter Geoghegan



Commits

  1. Fix get_actual_variable_range() to cope with broken HOT chains.

  2. Improve performance of get_actual_variable_range with recently-dead tuples.