MCPcopy Create free account
hub / github.com/brimdata/super / recordElemsFieldsAndSpread

Function recordElemsFieldsAndSpread

compiler/optimizer/optimizer.go:781–801  ·  view source on GitHub ↗
(elems []dag.RecordElem)

Source from the content-addressed store, hash-verified

779}
780
781func recordElemsFieldsAndSpread(elems []dag.RecordElem) (map[string]dag.Expr, dag.Expr, bool) {
782 fields := map[string]dag.Expr{}
783 var spread dag.Expr
784 for i, e := range elems {
785 switch e := e.(type) {
786 case *dag.Field:
787 fields[e.Name] = e.Value
788 case *dag.Spread:
789 if i > 0 {
790 return nil, nil, false
791 }
792 spread = e.Expr
793 case *dag.None:
794 // This doesn't work right. Just don't optimize these for now.
795 return nil, nil, false
796 default:
797 panic(e)
798 }
799 }
800 return fields, spread, true
801}
802
803func replaceSortAndHeadOrTailWithTop(seq dag.Seq) dag.Seq {
804 walkT(reflect.ValueOf(&seq), func(seq dag.Seq) dag.Seq {

Callers 2

liftFilterOpsFunction · 0.85
mergeValuesOpsFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected