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  }