@@ -608,6 +608,9 @@ func (l *levelIter) loadFile(file *manifest.TableMetadata, dir int) loadFileRetu
608608 // Relinquish iters.rangeDeletion to the caller.
609609 l .rangeDelIterSetter .setRangeDelIter (iters .rangeDeletion )
610610 }
611+ if treesteps .Enabled && treesteps .IsRecording (l ) {
612+ treesteps .NodeUpdated (l , fmt .Sprintf ("file %s loaded" , l .iterFile .TableNum ))
613+ }
611614 return newFileLoaded
612615 }
613616}
@@ -632,7 +635,13 @@ func (l *levelIter) verify(kv *base.InternalKV) *base.InternalKV {
632635 return kv
633636}
634637
635- func (l * levelIter ) SeekGE (key []byte , flags base.SeekGEFlags ) * base.InternalKV {
638+ func (l * levelIter ) SeekGE (key []byte , flags base.SeekGEFlags ) (kv * base.InternalKV ) {
639+ if treesteps .Enabled && treesteps .IsRecording (l ) {
640+ op := treesteps .StartOpf (l , "SeekGE(%q, %d)" , key , flags )
641+ defer func () {
642+ op .Finishf ("= %s" , kv .String ())
643+ }()
644+ }
636645 if invariants .Enabled && l .lower != nil && l .comparer .Compare (key , l .lower ) < 0 {
637646 panic (errors .AssertionFailedf ("levelIter SeekGE to key %q violates lower bound %q" , key , l .lower ))
638647 }
@@ -658,7 +667,13 @@ func (l *levelIter) SeekGE(key []byte, flags base.SeekGEFlags) *base.InternalKV
658667 return l .verify (l .skipEmptyFileForward ())
659668}
660669
661- func (l * levelIter ) SeekPrefixGE (prefix , key []byte , flags base.SeekGEFlags ) * base.InternalKV {
670+ func (l * levelIter ) SeekPrefixGE (prefix , key []byte , flags base.SeekGEFlags ) (kv * base.InternalKV ) {
671+ if treesteps .Enabled && treesteps .IsRecording (l ) {
672+ op := treesteps .StartOpf (l , "SeekPrefixGE(%q, %q, %d)" , prefix , key , flags )
673+ defer func () {
674+ op .Finishf ("= %s" , kv .String ())
675+ }()
676+ }
662677 if invariants .Enabled && l .lower != nil && l .comparer .Compare (key , l .lower ) < 0 {
663678 panic (errors .AssertionFailedf ("levelIter SeekGE to key %q violates lower bound %q" , key , l .lower ))
664679 }
@@ -687,7 +702,13 @@ func (l *levelIter) SeekPrefixGE(prefix, key []byte, flags base.SeekGEFlags) *ba
687702 return l .verify (l .skipEmptyFileForward ())
688703}
689704
690- func (l * levelIter ) SeekLT (key []byte , flags base.SeekLTFlags ) * base.InternalKV {
705+ func (l * levelIter ) SeekLT (key []byte , flags base.SeekLTFlags ) (kv * base.InternalKV ) {
706+ if treesteps .Enabled && treesteps .IsRecording (l ) {
707+ op := treesteps .StartOpf (l , "SeekLT(%q, %d)" , key , flags )
708+ defer func () {
709+ op .Finishf ("= %s" , kv .String ())
710+ }()
711+ }
691712 if invariants .Enabled && l .upper != nil && l .comparer .Compare (key , l .upper ) > 0 {
692713 panic (errors .AssertionFailedf ("levelIter SeekLT to key %q violates upper bound %q" , key , l .upper ))
693714 }
@@ -708,7 +729,13 @@ func (l *levelIter) SeekLT(key []byte, flags base.SeekLTFlags) *base.InternalKV
708729 return l .verify (l .skipEmptyFileBackward ())
709730}
710731
711- func (l * levelIter ) First () * base.InternalKV {
732+ func (l * levelIter ) First () (kv * base.InternalKV ) {
733+ if treesteps .Enabled && treesteps .IsRecording (l ) {
734+ op := treesteps .StartOpf (l , "First()" )
735+ defer func () {
736+ op .Finishf ("= %s" , kv .String ())
737+ }()
738+ }
712739 if invariants .Enabled && l .lower != nil {
713740 panic (errors .AssertionFailedf ("levelIter First called while lower bound %q is set" , l .lower ))
714741 }
@@ -729,7 +756,13 @@ func (l *levelIter) First() *base.InternalKV {
729756 return l .verify (l .skipEmptyFileForward ())
730757}
731758
732- func (l * levelIter ) Last () * base.InternalKV {
759+ func (l * levelIter ) Last () (kv * base.InternalKV ) {
760+ if treesteps .Enabled && treesteps .IsRecording (l ) {
761+ op := treesteps .StartOpf (l , "Last()" )
762+ defer func () {
763+ op .Finishf ("= %s" , kv .String ())
764+ }()
765+ }
733766 if invariants .Enabled && l .upper != nil {
734767 panic (errors .AssertionFailedf ("levelIter Last called while upper bound %q is set" , l .upper ))
735768 }
@@ -750,7 +783,13 @@ func (l *levelIter) Last() *base.InternalKV {
750783 return l .verify (l .skipEmptyFileBackward ())
751784}
752785
753- func (l * levelIter ) Next () * base.InternalKV {
786+ func (l * levelIter ) Next () (kv * base.InternalKV ) {
787+ if treesteps .Enabled && treesteps .IsRecording (l ) {
788+ op := treesteps .StartOpf (l , "Next()" )
789+ defer func () {
790+ op .Finishf ("= %s" , kv .String ())
791+ }()
792+ }
754793 if l .exhaustedDir == - 1 {
755794 if l .lower != nil {
756795 return l .SeekGE (l .lower , base .SeekGEFlagsNone )
@@ -766,7 +805,13 @@ func (l *levelIter) Next() *base.InternalKV {
766805 return l .verify (l .skipEmptyFileForward ())
767806}
768807
769- func (l * levelIter ) NextPrefix (succKey []byte ) * base.InternalKV {
808+ func (l * levelIter ) NextPrefix (succKey []byte ) (kv * base.InternalKV ) {
809+ if treesteps .Enabled && treesteps .IsRecording (l ) {
810+ op := treesteps .StartOpf (l , "NextPrefix(%q)" , succKey )
811+ defer func () {
812+ op .Finishf ("= %s" , kv .String ())
813+ }()
814+ }
770815 if l .err != nil || l .iter == nil {
771816 return nil
772817 }
@@ -799,7 +844,13 @@ func (l *levelIter) NextPrefix(succKey []byte) *base.InternalKV {
799844 return nil
800845}
801846
802- func (l * levelIter ) Prev () * base.InternalKV {
847+ func (l * levelIter ) Prev () (kv * base.InternalKV ) {
848+ if treesteps .Enabled && treesteps .IsRecording (l ) {
849+ op := treesteps .StartOpf (l , "Prev()" )
850+ defer func () {
851+ op .Finishf ("= %s" , kv .String ())
852+ }()
853+ }
803854 if l .exhaustedDir == + 1 {
804855 if l .upper != nil {
805856 return l .SeekLT (l .upper , base .SeekLTFlagsNone )
@@ -952,11 +1003,9 @@ func (l *levelIter) SetContext(ctx context.Context) {
9521003
9531004// TreeStepsNode is part of the InternalIterator interface.
9541005func (l * levelIter ) TreeStepsNode () treesteps.NodeInfo {
955- info := treesteps .NodeInfof (l , "%T(%p) %s" , l , l , l .layer )
1006+ info := treesteps .NodeInfof (l , "levelIter %s" , l .layer )
9561007 if l .iterFile != nil {
9571008 info .AddPropf ("file" , "%s" , l .iterFile .TableNum )
958- } else {
959- info .AddPropf ("file" , "<none>" )
9601009 }
9611010 info .AddChildren (l .iter )
9621011 return info
0 commit comments