Re: Fix for seg picksplit function

Yeb Havinga <yebhavinga@gmail.com>

From: Yeb Havinga <yebhavinga@gmail.com>
To: Alexander Korotkov <aekorotkov@gmail.com>
Cc: Alvaro Herrera <alvherre@commandprompt.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2010-11-10T15:05:13Z
Lists: pgsql-hackers
On 2010-11-10 15:46, Alexander Korotkov wrote:
> On Wed, Nov 10, 2010 at 5:37 PM, Yeb Havinga <yebhavinga@gmail.com 
> <mailto:yebhavinga@gmail.com>> wrote:
>
>     They are necessary and it is code untouched by this patch, and the
>     same line occurs in other picksplit functions as well. The
>     gbt_num_picksplit function shows that it can be avoided, by
>     rewriting in the second loop
>
>     *left++ = sortItems[i].index;
>     into
>     v->spl_left[v->spl_nleft] = sortItems[i].index
>
>     Even though this is longer code, I prefer this variant over the
>     shorter one.
>
> I can't understand this point. How the way of spl_left 
> and spl_right arrays filling is related with 
> additional FirstOffsetNumber value at the end of array, which is 
> added by "*left = *right = FirstOffsetNumber;" line?
You're right, they are not related. I'm no longer sure it is necessary, 
looking at gistUserPicksplit.

regards,
Yeb Havinga