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

Method parseWhereSelect

rel/parse_sql.go:1332–1358  ·  view source on GitHub ↗
(req *SqlSelect)

Source from the content-addressed store, hash-verified

1330}
1331
1332func (m *Sqlbridge) parseWhereSelect(req *SqlSelect) error {
1333
1334 var err error
1335 if m.Cur().T != lex.TokenWhere {
1336 return nil
1337 }
1338 defer func() {
1339 if r := recover(); r != nil {
1340 u.Errorf("where error? %v \n %v\n%s", r, m.Cur(), m.Lexer().RawInput())
1341 if m.Cur().T == lex.TokenSelect {
1342 // TODO this is deeply flawed, need to fix/use tokenpager
1343 // with rewind ability
1344 err = m.parseWhereSubSelect(req)
1345 return
1346 }
1347 err = fmt.Errorf("panic err: %v", r)
1348 }
1349 }()
1350
1351 where, err := m.parseWhere()
1352 if err != nil {
1353 return err
1354 } else if where != nil {
1355 req.Where = where
1356 }
1357 return nil
1358}
1359
1360func (m *Sqlbridge) parseWhere() (*SqlWhere, error) {
1361

Callers 2

parseSqlSelectMethod · 0.95
parseHavingMethod · 0.95

Calls 6

parseWhereSubSelectMethod · 0.95
parseWhereMethod · 0.95
ErrorfMethod · 0.80
RawInputMethod · 0.80
CurMethod · 0.65
LexerMethod · 0.65

Tested by

no test coverage detected