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

Method parseLimit

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

Source from the content-addressed store, hash-verified

1975}
1976
1977func (m *Sqlbridge) parseLimit(req *SqlSelect) error {
1978 if m.Cur().T != lex.TokenLimit {
1979 return nil
1980 }
1981 m.Next()
1982 if m.Cur().T != lex.TokenInteger {
1983 return m.ErrMsg("Limit must be an integer")
1984 }
1985 limval := m.Next()
1986 iv, err := strconv.Atoi(limval.V)
1987 if err != nil {
1988 return m.ErrMsg("Could not convert limit to integer")
1989 }
1990 req.Limit = int(iv)
1991
1992 switch m.Cur().T {
1993 case lex.TokenComma:
1994 // LIMIT 0, 1000
1995 m.Next() // consume the comma
1996 if m.Cur().T != lex.TokenInteger {
1997 return m.ErrMsg("Limit 0, 1000 2nd number must be an integer")
1998 }
1999 iv, err = strconv.Atoi(m.Next().V)
2000 if err != nil {
2001 return m.ErrMsg("Could not convert limit to integer")
2002 }
2003 req.Offset = req.Limit
2004 req.Limit = iv
2005 case lex.TokenOffset:
2006 m.Next() // consume "OFFSET"
2007 if m.Cur().T != lex.TokenInteger {
2008 return m.ErrMsg("Offset must be an integer")
2009 }
2010 iv, err = strconv.Atoi(m.Cur().V)
2011 m.Next()
2012 if err != nil {
2013 return m.ErrMsg("Could not convert offset to integer")
2014 }
2015 req.Offset = iv
2016 }
2017 return nil
2018}
2019func (m *Sqlbridge) parseOffset(req *SqlSelect) error {
2020 if m.Cur().T != lex.TokenOffset {
2021 return nil

Callers 1

parseSqlSelectMethod · 0.95

Calls 3

CurMethod · 0.65
NextMethod · 0.65
ErrMsgMethod · 0.65

Tested by

no test coverage detected