@@ -145,14 +145,9 @@ var (
145145 Type : arrow .RunEndEncodedOf (arrow .PrimitiveTypes .Int32 , arrow .PrimitiveTypes .Uint64 ),
146146 }
147147
148- StacktraceIDDictTypeV2 = & arrow.DictionaryType {
149- IndexType : arrow .PrimitiveTypes .Uint32 ,
150- ValueType : extensions .NewUUIDType (),
151- }
152-
153148 StacktraceIDFieldV2 = arrow.Field {
154149 Name : "stacktrace_id" ,
155- Type : StacktraceIDDictTypeV2 ,
150+ Type : extensions . NewUUIDType () ,
156151 }
157152
158153 labelArrowTypeV2 = arrow .RunEndEncodedOf (
@@ -501,50 +496,6 @@ func (b *StacktraceDictBuilderV2) Release() {
501496 b .funcDict .Release ()
502497}
503498
504- // StacktraceIDDictBuilderV2 deduplicates stacktrace IDs using a map.
505- // Structure: Dictionary[Uint32, UUID]
506- type StacktraceIDDictBuilderV2 struct {
507- index map [[16 ]byte ]uint32
508- indices * array.Uint32Builder
509- values * extensions.UUIDBuilder
510- }
511-
512- // NewStacktraceIDDictBuilderV2 creates a new StacktraceIDDictBuilderV2.
513- func NewStacktraceIDDictBuilderV2 (mem memory.Allocator ) * StacktraceIDDictBuilderV2 {
514- return & StacktraceIDDictBuilderV2 {
515- index : make (map [[16 ]byte ]uint32 ),
516- indices : array .NewUint32Builder (mem ),
517- values : extensions .NewUUIDBuilder (mem ),
518- }
519- }
520-
521- // Append adds a stacktrace ID, deduplicating by value.
522- func (b * StacktraceIDDictBuilderV2 ) Append (v [16 ]byte ) {
523- if idx , ok := b .index [v ]; ok {
524- b .indices .Append (idx )
525- return
526- }
527- idx := uint32 (len (b .index ))
528- b .index [v ] = idx
529- b .indices .Append (idx )
530- b .values .AppendBytes (v )
531- }
532-
533- // NewArray builds and returns the Dictionary[Uint32, UUID] array.
534- func (b * StacktraceIDDictBuilderV2 ) NewArray () arrow.Array {
535- indices := b .indices .NewArray ()
536- defer indices .Release ()
537- values := b .values .NewArray ()
538- defer values .Release ()
539- return array .NewDictionaryArray (StacktraceIDDictTypeV2 , indices , values )
540- }
541-
542- // Release releases all builder resources.
543- func (b * StacktraceIDDictBuilderV2 ) Release () {
544- b .indices .Release ()
545- b .values .Release ()
546- }
547-
548499// SampleWriterV2 writes samples with inline stacktraces using the v2 schema.
549500type SampleWriterV2 struct {
550501 mem memory.Allocator
@@ -553,7 +504,7 @@ type SampleWriterV2 struct {
553504
554505 // Stacktrace with deduplication
555506 Stacktrace * StacktraceDictBuilderV2
556- StacktraceID * StacktraceIDDictBuilderV2
507+ StacktraceID * extensions. UUIDBuilder
557508
558509 // Sample data fields (same as v1)
559510 Value * array.Int64Builder
@@ -574,7 +525,7 @@ func NewSampleWriterV2(mem memory.Allocator) *SampleWriterV2 {
574525 mem : mem ,
575526 labelBuilders : make (map [string ]* BinaryDictionaryRunEndBuilder ),
576527 Stacktrace : NewStacktraceDictBuilderV2 (mem ),
577- StacktraceID : NewStacktraceIDDictBuilderV2 (mem ),
528+ StacktraceID : extensions . NewUUIDBuilder (mem ),
578529 Value : array .NewInt64Builder (mem ),
579530 Producer : stringRunEndBuilder (array .NewBuilder (mem , ProducerFieldV2 .Type )),
580531 SampleType : stringRunEndBuilder (array .NewBuilder (mem , SampleTypeFieldV2 .Type )),
0 commit comments