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

Method LoadConn

plan/plan.go:639–671  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

637 return m.ctx
638}
639func (m *Source) LoadConn() error {
640
641 //u.Debugf("LoadConn() nil?%v", m.Conn == nil)
642 if m.Conn != nil {
643 return nil
644 }
645 if m.DataSource == nil {
646 // Not all sources require a source, ie literal queries
647 // and some, information schema, or fully qualifyied schema queries
648 // requires schema switching
649 if m.IsSchemaQuery() && m.ctx != nil {
650 m.ctx.Schema = m.ctx.Schema.InfoSchema
651 u.Infof("switching to info schema")
652 if err := m.load(); err != nil {
653 u.Errorf("could not load schema? %v", err)
654 return err
655 }
656 if m.DataSource == nil {
657 return u.LogErrorf("could not load info schema source %v", m.Stmt)
658 }
659 } else {
660 u.Debugf("return bc no datasource ctx=nil?%v schema?%v", m.ctx == nil, m.IsSchemaQuery())
661 return nil
662 }
663 }
664 source, err := m.DataSource.Open(m.Stmt.SourceName())
665 if err != nil {
666 u.Debugf("no source? %T for source %q", m.DataSource, m.Stmt.SourceName())
667 return err
668 }
669 m.Conn = source
670 return nil
671}
672func (m *Source) IsSchemaQuery() bool {
673 if m.Stmt != nil && len(m.Stmt.Schema) > 0 {
674 //u.Debugf("schema:%q name:%q", m.Stmt.Schema, m.Stmt.Name)

Callers 2

SourceFromPBFunction · 0.95
WalkSourceSelectMethod · 0.80

Calls 5

IsSchemaQueryMethod · 0.95
loadMethod · 0.95
ErrorfMethod · 0.80
OpenMethod · 0.65
SourceNameMethod · 0.45

Tested by

no test coverage detected