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

Method parsePrepare

rel/parse_sql.go:471–503  ·  view source on GitHub ↗

First keyword was PREPARE

()

Source from the content-addressed store, hash-verified

469
470// First keyword was PREPARE
471func (m *Sqlbridge) parsePrepare() (*PreparedStatement, error) {
472
473 req := NewPreparedStatement()
474 m.Next() // Consume Prepare
475
476 // statement name/alias
477 //u.Debugf("found table? %v", m.Cur())
478 switch m.Cur().T {
479 case lex.TokenTable, lex.TokenIdentity:
480 req.Alias = m.Cur().V
481 default:
482 return nil, m.ErrMsg("expected statement name")
483 }
484
485 // from
486 m.Next()
487 //u.Debugf("token: %v", m.Cur())
488 if m.Cur().T != lex.TokenFrom {
489 return nil, m.ErrMsg("expected FROM")
490 }
491
492 m.Next()
493 if m.Cur().T != lex.TokenValue {
494 return nil, m.ErrMsg("expected statement value ")
495 }
496 stmt, err := ParseSql(m.Cur().V)
497 if err != nil {
498 return nil, err
499 }
500 req.Statement = stmt
501 // we are good
502 return req, nil
503}
504
505// First keyword was DESCRIBE
506func (m *Sqlbridge) parseDescribe() (SqlStatement, error) {

Callers 1

parseMethod · 0.95

Calls 5

NewPreparedStatementFunction · 0.85
ParseSqlFunction · 0.85
NextMethod · 0.65
CurMethod · 0.65
ErrMsgMethod · 0.65

Tested by

no test coverage detected