MCPcopy Create free account
hub / github.com/araddon/qlbridge / SelectFromPB

Function SelectFromPB

plan/plan.go:524–562  ·  view source on GitHub ↗
(pb *PlanPb, loader SchemaLoader)

Source from the content-addressed store, hash-verified

522}
523
524func SelectFromPB(pb *PlanPb, loader SchemaLoader) (*Select, error) {
525 m := Select{
526 pbplan: pb,
527 ChildDag: true,
528 }
529 m.PlanBase = NewPlanBase(pb.Parallel)
530 if pb.Select != nil {
531 m.Stmt = rel.SqlSelectFromPb(pb.Select.Select)
532 if pb.Select.Context != nil {
533 //u.Infof("got context pb %+v", pb.Select.Context)
534 m.Ctx = NewContextFromPb(pb.Select.Context)
535 m.Ctx.Stmt = m.Stmt
536 m.Ctx.Raw = m.Stmt.Raw
537 sch, err := loader(m.Ctx.SchemaName)
538 if err != nil {
539 u.Errorf("could not load schema: %q err=%v", m.Ctx.SchemaName, err)
540 return nil, err
541 }
542 m.Ctx.Schema = sch
543 }
544 }
545 if len(pb.Children) > 0 {
546 m.tasks = make([]Task, len(pb.Children))
547 for i, pbt := range pb.Children {
548 //u.Infof("%+v", pbt)
549 childPlan, err := SelectTaskFromTaskPb(pbt, m.Ctx, m.Stmt)
550 if err != nil {
551 u.Errorf("%+v not implemented? %v %#v", pbt, err, pbt)
552 return nil, err
553 }
554 switch cpt := childPlan.(type) {
555 case *Source:
556 m.From = append(m.From, cpt)
557 }
558 m.tasks[i] = childPlan
559 }
560 }
561 return &m, nil
562}
563
564func SourceFromPB(pb *PlanPb, ctx *Context) (*Source, error) {
565 m := Source{

Callers 1

SelectPlanFromPbBytesFunction · 0.85

Calls 5

SqlSelectFromPbFunction · 0.92
NewPlanBaseFunction · 0.85
NewContextFromPbFunction · 0.85
SelectTaskFromTaskPbFunction · 0.85
ErrorfMethod · 0.80

Tested by

no test coverage detected