github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/processors/query/operator-raw-result.go (about) 1 /* 2 * Copyright (c) 2021-present unTill Pro, Ltd. 3 */ 4 5 package queryprocessor 6 7 import ( 8 "context" 9 "time" 10 11 "github.com/voedger/voedger/pkg/pipeline" 12 "github.com/voedger/voedger/pkg/processors" 13 ) 14 15 type RawResultOperator struct { 16 pipeline.AsyncNOOP 17 metrics IMetrics 18 } 19 20 func (o RawResultOperator) DoAsync(_ context.Context, work pipeline.IWorkpiece) (outWork pipeline.IWorkpiece, err error) { 21 begin := time.Now() 22 defer func() { 23 o.metrics.Increase(execFieldsSeconds, time.Since(begin).Seconds()) 24 }() 25 topOutputRow := work.(IWorkpiece).OutputRow() 26 object := work.(IWorkpiece).Object() 27 row := &outputRow{ 28 keyToIdx: map[string]int{processors.Field_RawObject_Body: 0}, 29 values: make([]interface{}, 1), 30 } 31 row.Set(processors.Field_RawObject_Body, object.AsString(processors.Field_RawObject_Body)) 32 topOutputRow.Set(rootDocument, []IOutputRow{row}) 33 return work, err 34 }