maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #09426
Re: More memory allocation for key seg
Hi, Sachin!
On Mar 22, Sachin Setia wrote:
> Hello Devlopers
> I was debugging the source code of mariadb. My query was
> MariaDB [sachin]> create table pro2(abc int primary key,xyz int ,
> ass int ,unique(xyz,ass))engine=myisam;
>
> In table2myisam function of file ha_myisam.cc i found that
> we are allocating more memory for keysegments
>
> if (!(my_multi_malloc(MYF(MY_WME),
> recinfo_out, (share->fields * 2 + 2) * sizeof(MI_COLUMNDEF),
> keydef_out, share->keys * sizeof(MI_KEYDEF),
> &keyseg,
> (share->key_parts + share->keys) * sizeof(HA_KEYSEG),
> ^ here why this
> NullS)))
>
> And we donot use these extra key segments because
> suceeding for loop use only total number of share->key_parts
> keysegments. And same in ha_maria file.Is this a bug or I am missing
> something
> Regards
> sachin
The last key segment of every key is the row id. For dynamic row format
it's the offset in the MYD file. For static row format (all rows have
the same length as in your example above) it's the row number.
Regards,
Sergei
Chief Architect MariaDB
and security@xxxxxxxxxxx
Follow ups
References