Re: pgsql: Indexes with INCLUDE columns and their support in B-tree - Mailing list pgsql-committers

From Alexander Korotkov
Subject Re: pgsql: Indexes with INCLUDE columns and their support in B-tree
Date
Msg-id CAPpHfduvL8Lc1a-BYM0qh4nYfpZSdk6Sd4DPknJOqroajq1MYw@mail.gmail.com
Whole thread Raw
In response to Re: pgsql: Indexes with INCLUDE columns and their support in B-tree  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-committers
On Mon, Apr 9, 2018 at 12:27 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Alexander Korotkov <a.korotkov@postgrespro.ru> writes:
> There is also patch for valgrind error in CheckIndexCompatible().
> It appears that this function didn't initialize ii_NumIndexAttrs and
> ii_NumIndexKeyAttrs before calling ComputeIndexAttrs().  This
> variables weren't used before, but now they're used to determine
> whether index column is key.  Also, this patch makes ComputeIndexAttrs()
> initialize classOidP elements with InvalidOid for non-key attributes.

You didn't test this quite enough, because when I tried it I got a batch
of warnings about memory chunk inconsistencies.  The reason was that
DefineIndex only allocated a classObjectId array large enough for the
key columns, so that the change in ComputeIndexAttrs made it write past
the end of that array.

Sorry, my bad.

But I think it's a good idea to make those output
arrays all the same length, so I kept that change and changed DefineIndex.

Pushed; I've not checked to see if this makes valgrind happy, but
the buildfarm will tell us.

Thank you!

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company 

pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: Re: pgsql: Indexes with INCLUDE columns and their support in B-tree
Next
From: Tom Lane
Date:
Subject: Re: pgsql: Support partition pruning at execution time