This repository holds a pure Go SQL parser based on the SQLite SQL definition. It implements nearly all features of the language except ATTACH, DETACH, and some other minor features.
parser := NewParser(strings.NewReader("SELECT * FROM foo WHERE id=4")) expr, _ = parser.Parse() fmt.Println(expr)
Review the unit tests in parser_test.go for an extensive set of parsing examples.
This parser was originally created by Ben Johnson. Many thanks to him for making it available for use by rqlite.