Function pg_query::scan

source ·
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 }"
    ]);