Pre Midterm Evaluation Period

WEEK 1: MAY 23rd TO MAY 29th 2016

During this week, I started studying the include/ma_dyncol.h and libmariadb/ma_dyncol.c files as my mentors advised.

WEEK 2 & 3 : MAY 30th TO JUNE 12th 2016

After a period of rigourously studying include/ma_dyncol.h and libmariadb/ma_dyncol.c and communications with my Mentors, I have finally conceived a new format ( Index Format ) which will help build a more encompassing library for dynamic columns. The Index Format will look like this;

/*
 Index format:
 ===================
  * Fixed header part
    1 byte flags:
      0,1 bits – <offset size> – 2
      2,3 bit  – 11 (means new index format)
      4-7 bits – 0
    2 bytes column counter
  * Column directory sorted by column number, each entry contains:
    2 bytes column number
    <offset size> bytes (2-5) combined offset from beginning of
      the data segment + 4 bit type
  * Data of above columns size of data and length depend on type
*/
Bits 2 and 3 in the Flag Byte will hold 1 indicative of the fact that dynamic columns are being stored using the Index Format (not the others). The offset bytes is between 2 to 5 Bytes just as in the case of the String format. Also, 4 bits are used to store type information so that 16 ( =2^4 ) different types can be accommodated by this Index Format.
In order to check how the preceeding Numeric and String formats were defined, please check the opening comments of ma_dyncol.c 
Now that my Mentor has approved this data structure for the upcoming Index Format, I intend to dive deep into implementation/coding this coming week.

WEEK 4 & 5 : JUNE 13th TO JUNE 19th 2016

  • Commented the Index format data structure into mysys/ma_dyncol.c. The call back functions for the Index format will look thus xxx_index(…)
  • Described the Index format in fmt_data[] array of service functions as shown below,
    {
    FIXED_HEADER_SIZE,
    COLUMN_NUMBER_SIZE,
    sizeof(uint),
    MAX_OFFSET_LENGTH_NM,
    &name_size_index,
    &column_sort_index,
    &check_limit_index,
    &set_fixed_header_index,
    &put_header_entry_index,
    &plan_sort_index,
    &dynamic_column_offset_bytes_index,
    &type_and_offset_read_index
    }
  • Wrote sort function for plan for index format viz plan_sort_index(…)
  • Wrote function to compute name size for index format viz name_size_index(…)
  • Comparator function for references on column numbers for qsort viz column_sort_index(…)
  • Check limit function for index format viz check_limit_index(…)
  • Write index format static header part viz set_fixed_header_index(…)
  • Function to read type and offset information for index format viz type_and_offset_read_store(…)
  • Write index format header entry viz put_header_entry_index(…)
  • Function to store type and offset information for index format viz type_and_offset_store_index(…)
  • Function to compute the size of offset bytes for dynamic column under index format viz dynamic_column_offset_bytes_index(…)
  • Function to read offset and type information from index entry in index format viz type_and_offset_read_index(…)
  • Right now I did run make successfully and BUILD_STATUS is OK
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s