/// <summary> /// Gets the db item length (in bytes). /// </summary> /// <param name="reference">Reference to the requested db item</param> /// <returns>The length of requested db item</returns> public long GetLength(DbItemReference reference) { if (!_pageManager.PageExists(reference.PageIndex)) { return(0); } IPage page = _pageManager.FetchPage(reference.PageIndex); var header = PageFormatter.GetPageHeader(page); if (header.SizeRange == SizeRange.MultiPage) { return(PageFormatter.ReadMultipageItemLength(page)); } return(PageFormatter.IsFixedSizeItemAllocated(page, reference.ItemIndex) ? PageFormatter.ReadFixedSizeItemLength(page, reference.ItemIndex) : 0); }