pub fn scan(sql: &str) -> Result<ScanResult>
Expand description
Scan a sql query into a its component of tokens.
Example
use pg_query::protobuf::*;
let sql = "SELECT update AS left /* comment */ FROM between";
let result = pg_query::scan(sql).unwrap();
let tokens: Vec<std::string::String> = result.tokens.iter().map(|token| {
format!("{:?}", token)
}).collect();
assert_eq!(
tokens,
vec![
"ScanToken { start: 0, end: 6, token: Select, keyword_kind: ReservedKeyword }",
"ScanToken { start: 7, end: 13, token: Update, keyword_kind: UnreservedKeyword }",
"ScanToken { start: 14, end: 16, token: As, keyword_kind: ReservedKeyword }",
"ScanToken { start: 17, end: 21, token: Left, keyword_kind: TypeFuncNameKeyword }",
"ScanToken { start: 22, end: 35, token: CComment, keyword_kind: NoKeyword }",
"ScanToken { start: 36, end: 40, token: From, keyword_kind: ReservedKeyword }",
"ScanToken { start: 41, end: 48, token: Between, keyword_kind: ColNameKeyword }"
]);