 
  
  
   
If it's the first time the function is called ( ), the
 key is hashed to a bucket number and that bucket will be
 scanned. current_pageno is set to the PageId of the primary
 page of this bucket. current_slotno is set to -1. Then all the
 pages are scanned until a matched record is found. During the scan,
 the values of current_pageno and current_slotno are
 updated. Also the PageId of the previously scanned page (if existing)
 is stored in case some delete_current() call later deallocates
 the current page.  If the end of the last page is reached and no
 matched record is found, NOMORERECS is returned. Another special case
when NOMORERECS can be returned is that the page number of the
overflow page that's going to be read is equal to last_pageno,
 a private member of the class LinearHashingScan. See
the description of delete_current() for details.
), the
 key is hashed to a bucket number and that bucket will be
 scanned. current_pageno is set to the PageId of the primary
 page of this bucket. current_slotno is set to -1. Then all the
 pages are scanned until a matched record is found. During the scan,
 the values of current_pageno and current_slotno are
 updated. Also the PageId of the previously scanned page (if existing)
 is stored in case some delete_current() call later deallocates
 the current page.  If the end of the last page is reached and no
 matched record is found, NOMORERECS is returned. Another special case
when NOMORERECS can be returned is that the page number of the
overflow page that's going to be read is equal to last_pageno,
 a private member of the class LinearHashingScan. See
the description of delete_current() for details.