Hi All.

  I just looked this email from postgress sql site and wanted to
  ask you a question. I would be obliged if you could help me understand
  the duplicate key insertion behaviour correctly in Post gress SQL.

  The question is related to Btree [Leman and Yao] implementation
  When handling duplicate keys

  a) Is the key really a duplicate key or TID makes it unique in whole of
the index ?

  a) When inserting data into the BTREE in case of leaf nodes we move
      to the right in a random behaviourand check if we need to split or
not .

      What does the first movedright mean in the code below.

/* Now we are on the right page, so find the insert position. If
we
 * moved right at all, we know we should insert at the start of
the
 * page, else must find the position by searching.
 */
  if (movedright)
     newitemoff = P_FIRSTDATAKEY(lpageop);
  else
     newitemoff = _bt_binsrch(rel, buf, keysz, scankey, false);

 b) Once we move right on the leaf , How do we adjust
     the parent where to insert once we  move right on the
     child in case of duplicates..  Does the non leaf contain multiple
     duplicate keys as well  or is it that the leaf nodes contain multiple
     values for the same key .

     Can you please help me understand this,

Thanks and appreciate your time.

Regards
Harmeek

Reply via email to