@@ -133,18 +133,18 @@ func TestHead_Truncate(t *testing.T) {
133133 s4 , _ := h .getOrCreate (4 , labels .FromStrings ("a" , "2" , "b" , "2" , "c" , "1" ))
134134
135135 s1 .chunks = []* memChunk {
136- {minTime : 0 , maxTime : 999 },
137- {minTime : 1000 , maxTime : 1999 },
138- {minTime : 2000 , maxTime : 2999 },
136+ {minTime : 0 , maxTime : 999 , chunk : chunkenc . NewXORChunk () },
137+ {minTime : 1000 , maxTime : 1999 , chunk : chunkenc . NewXORChunk () },
138+ {minTime : 2000 , maxTime : 2999 , chunk : chunkenc . NewXORChunk () },
139139 }
140140 s2 .chunks = []* memChunk {
141- {minTime : 1000 , maxTime : 1999 },
142- {minTime : 2000 , maxTime : 2999 },
143- {minTime : 3000 , maxTime : 3999 },
141+ {minTime : 1000 , maxTime : 1999 , chunk : chunkenc . NewXORChunk () },
142+ {minTime : 2000 , maxTime : 2999 , chunk : chunkenc . NewXORChunk () },
143+ {minTime : 3000 , maxTime : 3999 , chunk : chunkenc . NewXORChunk () },
144144 }
145145 s3 .chunks = []* memChunk {
146- {minTime : 0 , maxTime : 999 },
147- {minTime : 1000 , maxTime : 1999 },
146+ {minTime : 0 , maxTime : 999 , chunk : chunkenc . NewXORChunk () },
147+ {minTime : 1000 , maxTime : 1999 , chunk : chunkenc . NewXORChunk () },
148148 }
149149 s4 .chunks = []* memChunk {}
150150
@@ -154,12 +154,12 @@ func TestHead_Truncate(t *testing.T) {
154154 testutil .Ok (t , h .Truncate (2000 ))
155155
156156 testutil .Equals (t , []* memChunk {
157- {minTime : 2000 , maxTime : 2999 },
157+ {minTime : 2000 , maxTime : 2999 , chunk : chunkenc . NewXORChunk () },
158158 }, h .series .getByID (s1 .ref ).chunks )
159159
160160 testutil .Equals (t , []* memChunk {
161- {minTime : 2000 , maxTime : 2999 },
162- {minTime : 3000 , maxTime : 3999 },
161+ {minTime : 2000 , maxTime : 2999 , chunk : chunkenc . NewXORChunk () },
162+ {minTime : 3000 , maxTime : 3999 , chunk : chunkenc . NewXORChunk () },
163163 }, h .series .getByID (s2 .ref ).chunks )
164164
165165 testutil .Assert (t , h .series .getByID (s3 .ref ) == nil , "" )
@@ -674,8 +674,8 @@ func TestGCChunkAccess(t *testing.T) {
674674
675675 s , _ := h .getOrCreate (1 , labels .FromStrings ("a" , "1" ))
676676 s .chunks = []* memChunk {
677- {minTime : 0 , maxTime : 999 },
678- {minTime : 1000 , maxTime : 1999 },
677+ {minTime : 0 , maxTime : 999 , chunk : chunkenc . NewXORChunk () },
678+ {minTime : 1000 , maxTime : 1999 , chunk : chunkenc . NewXORChunk () },
679679 }
680680
681681 idx := h .indexRange (0 , 1500 )
@@ -714,8 +714,8 @@ func TestGCSeriesAccess(t *testing.T) {
714714
715715 s , _ := h .getOrCreate (1 , labels .FromStrings ("a" , "1" ))
716716 s .chunks = []* memChunk {
717- {minTime : 0 , maxTime : 999 },
718- {minTime : 1000 , maxTime : 1999 },
717+ {minTime : 0 , maxTime : 999 , chunk : chunkenc . NewXORChunk () },
718+ {minTime : 1000 , maxTime : 1999 , chunk : chunkenc . NewXORChunk () },
719719 }
720720
721721 idx := h .indexRange (0 , 2000 )
@@ -816,3 +816,35 @@ func TestMemSeriesIsolation(t *testing.T) {
816816 require .Equal (t , 1002 , lastValue (1002 ))
817817 require .Equal (t , 1002 , lastValue (1003 ))
818818}
819+
820+ func TestHead_Truncate_WriteIDs (t * testing.T ) {
821+ h , err := NewHead (nil , nil , nil , 1000 )
822+ testutil .Ok (t , err )
823+ defer h .Close ()
824+
825+ h .initTime (0 )
826+
827+ s1 , _ := h .getOrCreate (1 , labels .FromStrings ("a" , "1" , "b" , "1" ))
828+
829+ chk := chunkenc .NewXORChunk ()
830+ app , err := chk .Appender ()
831+ testutil .Ok (t , err )
832+
833+ app .Append (1 , 0 )
834+ app .Append (2 , 0 )
835+ app .Append (3 , 0 )
836+
837+ s1 .chunks = []* memChunk {
838+ {minTime : 0 , maxTime : 999 , chunk : chk },
839+ {minTime : 1000 , maxTime : 1999 , chunk : chk },
840+ }
841+
842+ s1 .writeIds = []uint64 {5 , 0 , 0 , 0 , 1 , 2 , 3 , 4 }
843+ s1 .writeIdFirst = 4
844+ s1 .writeIdCount = 5
845+
846+ testutil .Ok (t , h .Truncate (1000 ))
847+ testutil .Equals (t , []uint64 {3 , 4 , 5 , 0 }, s1 .writeIds )
848+ testutil .Equals (t , 0 , s1 .writeIdFirst )
849+ testutil .Equals (t , 3 , s1 .writeIdCount )
850+ }
0 commit comments