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

Function runInternal

ztest/ztest.go:486–529  ·  view source on GitHub ↗

runInternal runs query over input and returns the output. input may be in any format recognized by "super -i auto" and may be gzip-compressed. outputFlags may contain any flags accepted by cli/outputflags.Flags.

(ctx context.Context, query string, input *string, outputFlags, inputFlags []string, vector bool)

Source from the content-addressed store, hash-verified

484// may be in any format recognized by "super -i auto" and may be gzip-compressed.
485// outputFlags may contain any flags accepted by cli/outputflags.Flags.
486func runInternal(ctx context.Context, query string, input *string, outputFlags, inputFlags []string, vector bool) (string, error) {
487 ast, err := parser.ParseText(query)
488 if err != nil {
489 return "", err
490 }
491 sctx := super.NewContext()
492 var readers []sio.Reader
493 if input != nil {
494 zrc, err := newInputReader(sctx, *input, inputFlags)
495 if err != nil {
496 return "", err
497 }
498 defer zrc.Close()
499 readers = []sio.Reader{zrc}
500 }
501 var fs flag.FlagSet
502 var outflags outputflags.Flags
503 outflags.SetFlags(&fs)
504 if err := fs.Parse(outputFlags); err != nil {
505 return "", err
506 }
507 if err := outflags.Init(); err != nil {
508 return "", err
509 }
510 env := exec.NewEnvironment(nil, nil)
511 if vector {
512 env.Runtime = exec.RuntimeVAM
513 }
514 q, err := runtime.CompileQuery(ctx, sctx, compiler.NewCompilerWithEnv(env), ast, readers)
515 if err != nil {
516 return "", err
517 }
518 defer q.Pull(true)
519 var outbuf bytes.Buffer
520 zw, err := anyio.NewWriter(sio.NopCloser(&outbuf), outflags.Options())
521 if err != nil {
522 return "", err
523 }
524 err = vio.Copy(zw, q)
525 if err2 := zw.Close(); err == nil {
526 err = err2
527 }
528 return outbuf.String(), err
529}
530
531func newInputReader(sctx *super.Context, input string, flags []string) (sio.ReadCloser, error) {
532 var inflags inputflags.Flags

Callers 1

RunInternalMethod · 0.85

Calls 15

SetFlagsMethod · 0.95
InitMethod · 0.95
OptionsMethod · 0.95
CloseMethod · 0.95
NewContextFunction · 0.92
NewEnvironmentFunction · 0.92
CompileQueryFunction · 0.92
NewCompilerWithEnvFunction · 0.92
NewWriterFunction · 0.92
NopCloserFunction · 0.92
CopyFunction · 0.92
newInputReaderFunction · 0.85

Tested by

no test coverage detected