@@ -301,16 +301,13 @@ func (r *Reader) newCompactionIter(
301301// NewRawRangeDelIter returns an internal iterator for the contents of the
302302// range-del block for the table. Returns nil if the table does not contain
303303// any range deletions.
304- //
305- // TODO(sumeer): plumb context.Context since this path is relevant in the user-facing
306- // iterator. Add WithContext methods since the existing ones are public.
307304func (r * Reader ) NewRawRangeDelIter (
308- transforms FragmentIterTransforms ,
305+ ctx context. Context , transforms FragmentIterTransforms ,
309306) (keyspan.FragmentIterator , error ) {
310307 if r .rangeDelBH .Length == 0 {
311308 return nil , nil
312309 }
313- h , err := r .readRangeDel (nil /* stats */ , nil /* iterStats */ )
310+ h , err := r .readRangeDel (ctx , nil /* stats */ , nil /* iterStats */ )
314311 if err != nil {
315312 return nil , err
316313 }
@@ -325,16 +322,13 @@ func (r *Reader) NewRawRangeDelIter(
325322// NewRawRangeKeyIter returns an internal iterator for the contents of the
326323// range-key block for the table. Returns nil if the table does not contain any
327324// range keys.
328- //
329- // TODO(sumeer): plumb context.Context since this path is relevant in the user-facing
330- // iterator. Add WithContext methods since the existing ones are public.
331325func (r * Reader ) NewRawRangeKeyIter (
332- transforms FragmentIterTransforms ,
326+ ctx context. Context , transforms FragmentIterTransforms ,
333327) (keyspan.FragmentIterator , error ) {
334328 if r .rangeKeyBH .Length == 0 {
335329 return nil , nil
336330 }
337- h , err := r .readRangeKey (nil /* stats */ , nil /* iterStats */ )
331+ h , err := r .readRangeKey (ctx , nil /* stats */ , nil /* iterStats */ )
338332 if err != nil {
339333 return nil , err
340334 }
@@ -366,16 +360,16 @@ func (r *Reader) readFilter(
366360}
367361
368362func (r * Reader ) readRangeDel (
369- stats * base.InternalIteratorStats , iterStats * iterStatsAccumulator ,
363+ ctx context. Context , stats * base.InternalIteratorStats , iterStats * iterStatsAccumulator ,
370364) (block.BufferHandle , error ) {
371- ctx : = objiotracing .WithBlockType (context . Background () , objiotracing .MetadataBlock )
365+ ctx = objiotracing .WithBlockType (ctx , objiotracing .MetadataBlock )
372366 return r .readBlock (ctx , r .rangeDelBH , nil /* transform */ , nil /* readHandle */ , stats , iterStats , nil /* buffer pool */ )
373367}
374368
375369func (r * Reader ) readRangeKey (
376- stats * base.InternalIteratorStats , iterStats * iterStatsAccumulator ,
370+ ctx context. Context , stats * base.InternalIteratorStats , iterStats * iterStatsAccumulator ,
377371) (block.BufferHandle , error ) {
378- ctx : = objiotracing .WithBlockType (context . Background () , objiotracing .MetadataBlock )
372+ ctx = objiotracing .WithBlockType (ctx , objiotracing .MetadataBlock )
379373 return r .readBlock (ctx , r .rangeKeyBH , nil /* transform */ , nil /* readHandle */ , stats , iterStats , nil /* buffer pool */ )
380374}
381375
@@ -528,7 +522,10 @@ func (r *Reader) readBlock(
528522}
529523
530524func (r * Reader ) readMetaindex (
531- metaindexBH block.Handle , readHandle objstorage.ReadHandle , filters map [string ]FilterPolicy ,
525+ ctx context.Context ,
526+ metaindexBH block.Handle ,
527+ readHandle objstorage.ReadHandle ,
528+ filters map [string ]FilterPolicy ,
532529) error {
533530 // We use a BufferPool when reading metaindex blocks in order to avoid
534531 // populating the block cache with these blocks. In heavy-write workloads,
@@ -544,7 +541,7 @@ func (r *Reader) readMetaindex(
544541 defer r .metaBufferPool .Release ()
545542
546543 b , err := r .readBlock (
547- context . Background () , metaindexBH , nil /* transform */ , readHandle , nil , /* stats */
544+ ctx , metaindexBH , nil /* transform */ , readHandle , nil , /* stats */
548545 nil /* iterStats */ , & r .metaBufferPool )
549546 if err != nil {
550547 return err
@@ -588,7 +585,7 @@ func (r *Reader) readMetaindex(
588585
589586 if bh , ok := meta [metaPropertiesName ]; ok {
590587 b , err = r .readBlock (
591- context . Background () , bh , nil /* transform */ , readHandle , nil , /* stats */
588+ ctx , bh , nil /* transform */ , readHandle , nil , /* stats */
592589 nil /* iterStats */ , nil /* buffer pool */ )
593590 if err != nil {
594591 return err
@@ -988,7 +985,7 @@ func NewReader(ctx context.Context, f objstorage.Readable, o ReaderOptions) (*Re
988985 r .checksumType = footer .checksum
989986 r .tableFormat = footer .format
990987 // Read the metaindex and properties blocks.
991- if err := r .readMetaindex (footer .metaindexBH , rh , o .Filters ); err != nil {
988+ if err := r .readMetaindex (ctx , footer .metaindexBH , rh , o .Filters ); err != nil {
992989 r .err = err
993990 return nil , r .Close ()
994991 }
0 commit comments