@@ -158,6 +158,7 @@ func generateDBLabels(n int) []metadbmodel.PrometheusLabel {
158158 now := time .Now ()
159159 for i := 0 ; i < n ; i ++ {
160160 items [i ] = metadbmodel.PrometheusLabel {
161+ PrometheusAutoIncID : metadbmodel.PrometheusAutoIncID {ID : i + 1 },
161162 PrometheusOperatedTime : metadbmodel.PrometheusOperatedTime {CreatedAt : now , SyncedAt : now },
162163 Name : fmt .Sprintf ("n_%d" , i ),
163164 Value : fmt .Sprintf ("v_%d" , i ),
@@ -252,11 +253,33 @@ func TestSelect_Label_LoadOnlyIDNameValue(t *testing.T) {
252253 db := setupTestDB (t )
253254 defer cleanupTestDB (t )
254255
256+ nameItems := make ([]metadbmodel.PrometheusLabelName , 5000 )
257+ valueItems := make ([]metadbmodel.PrometheusLabelValue , 5000 )
258+ now := time .Now ()
259+ for i := 0 ; i < 5000 ; i ++ {
260+ nameItems [i ] = metadbmodel.PrometheusLabelName {
261+ PrometheusID : metadbmodel.PrometheusID {ID : i + 1 },
262+ PrometheusOperatedTime : metadbmodel.PrometheusOperatedTime {CreatedAt : now , SyncedAt : now },
263+ Name : fmt .Sprintf ("n_%d" , i ),
264+ }
265+ valueItems [i ] = metadbmodel.PrometheusLabelValue {
266+ PrometheusID : metadbmodel.PrometheusID {ID : i + 1 },
267+ PrometheusOperatedTime : metadbmodel.PrometheusOperatedTime {CreatedAt : now , SyncedAt : now },
268+ Value : fmt .Sprintf ("v_%d" , i ),
269+ }
270+ }
271+ require .NoError (t , batchInsert (db , nameItems , 1000 ))
272+ require .NoError (t , batchInsert (db , valueItems , 1000 ))
273+
255274 items := generateDBLabels (5000 )
256275 require .NoError (t , batchInsert (db , items , 1000 ))
257276
258277 l := newTestLabel ()
259278 l .org = newTestORG (db )
279+ l .labelName .org = l .org
280+ l .labelValue .org = l .org
281+ require .NoError (t , l .labelName .refresh ())
282+ require .NoError (t , l .labelValue .refresh ())
260283
261284 err := l .refresh ()
262285 require .NoError (t , err )
@@ -298,12 +321,34 @@ func TestSelect_Label_RefreshDiscardsDeletedRows(t *testing.T) {
298321 db := setupTestDB (t )
299322 defer cleanupTestDB (t )
300323
324+ nameItems := make ([]metadbmodel.PrometheusLabelName , 200 )
325+ valueItems := make ([]metadbmodel.PrometheusLabelValue , 200 )
326+ now := time .Now ()
327+ for i := 0 ; i < 200 ; i ++ {
328+ nameItems [i ] = metadbmodel.PrometheusLabelName {
329+ PrometheusID : metadbmodel.PrometheusID {ID : i + 1 },
330+ PrometheusOperatedTime : metadbmodel.PrometheusOperatedTime {CreatedAt : now , SyncedAt : now },
331+ Name : fmt .Sprintf ("n_%d" , i ),
332+ }
333+ valueItems [i ] = metadbmodel.PrometheusLabelValue {
334+ PrometheusID : metadbmodel.PrometheusID {ID : i + 1 },
335+ PrometheusOperatedTime : metadbmodel.PrometheusOperatedTime {CreatedAt : now , SyncedAt : now },
336+ Value : fmt .Sprintf ("v_%d" , i ),
337+ }
338+ }
339+ require .NoError (t , batchInsert (db , nameItems , 100 ))
340+ require .NoError (t , batchInsert (db , valueItems , 100 ))
341+
301342 // 第一轮:插入 200 条并 refresh
302343 items := generateDBLabels (200 )
303344 require .NoError (t , batchInsert (db , items , 100 ))
304345
305346 l := newTestLabel ()
306347 l .org = newTestORG (db )
348+ l .labelName .org = l .org
349+ l .labelValue .org = l .org
350+ require .NoError (t , l .labelName .refresh ())
351+ require .NoError (t , l .labelValue .refresh ())
307352 require .NoError (t , l .refresh ())
308353 assert .Equal (t , 200 , countLabelConcurrentMap (l .GetKeyToID ()))
309354
@@ -439,10 +484,34 @@ func TestSelect_Label_500K_Refresh(t *testing.T) {
439484 insertStart := time .Now ()
440485 items := generateDBLabels (N )
441486 require .NoError (t , batchInsert (db , items , 5000 ))
487+
488+ // Insert unique label names and values
489+ labelNames := make ([]metadbmodel.PrometheusLabelName , N )
490+ labelValues := make ([]metadbmodel.PrometheusLabelValue , N )
491+ now := time .Now ()
492+ for i := 0 ; i < N ; i ++ {
493+ labelNames [i ] = metadbmodel.PrometheusLabelName {
494+ PrometheusID : metadbmodel.PrometheusID {ID : i + 1 },
495+ PrometheusOperatedTime : metadbmodel.PrometheusOperatedTime {CreatedAt : now , SyncedAt : now },
496+ Name : fmt .Sprintf ("n_%d" , i ),
497+ }
498+ labelValues [i ] = metadbmodel.PrometheusLabelValue {
499+ PrometheusID : metadbmodel.PrometheusID {ID : i + 1 },
500+ PrometheusOperatedTime : metadbmodel.PrometheusOperatedTime {CreatedAt : now , SyncedAt : now },
501+ Value : fmt .Sprintf ("v_%d" , i ),
502+ }
503+ }
504+ require .NoError (t , batchInsert (db , labelNames , 5000 ))
505+ require .NoError (t , batchInsert (db , labelValues , 5000 ))
506+
442507 t .Logf ("insert completed in %v" , time .Since (insertStart ))
443508
444509 l := newTestLabel ()
445510 l .org = newTestORG (db )
511+ l .labelName .org = l .org
512+ l .labelValue .org = l .org
513+ require .NoError (t , l .labelName .refresh ())
514+ require .NoError (t , l .labelValue .refresh ())
446515
447516 refreshStart := time .Now ()
448517 err := l .refresh ()
0 commit comments