pg_parse 0.12.0

PostgreSQL parser that uses the actual PostgreSQL server source to parse SQL queries and return the internal PostgreSQL parse tree.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#[test]
fn it_can_fingerprint_a_simple_statement() {
    let result = pg_parse::fingerprint("SELECT * FROM contacts.person WHERE id IN (1, 2, 3, 4);");
    assert!(result.is_ok());
    let result = result.unwrap();
    assert_eq!(result.hex, "643d2a3c294ab8a7");
}

#[test]
fn it_will_error_on_invalid_input() {
    let result = pg_parse::fingerprint("CREATE RANDOM ix_test ON contacts.person;");
    assert!(result.is_err());
    assert_eq!(
        result.err().unwrap(),
        pg_parse::Error::ParseError("syntax error at or near \"RANDOM\"".into())
    );
}