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
const char* tests[] = {
  "SELECT 1",
  "0",
  "50fde20626009aba",
  "integer",
  "1",
  "c71927729d707de5",
  "character varying(32)",
  "1",
  "453ab4df8fd3eea9",
  "EXISTS(SELECT 1)",
  "2",
  "976a797c8ca2985b",
  "v_version IS NULL",
  "2",
  "6b292a26fcb78b1c",
  "pos:= instr($1, $2, 1)",
  "3",
  "786552659cc61f6f",
  "temp_str := substring(string FROM beg_index)",
  "3",
  "d6671d73f1654866",
  "v3.c1 := 4",
  "4",
  "a8c86658ce26a653",
  "NEW.name = upper(cleanString(NEW.name))",
  "4",
  "bb52450e4d46f7a1",
  "NEW.author.first_name = upper(cleanString(NEW.author.first_name))",
  "5",
  "a148e3f78b53c252",
};

size_t testsLength = __LINE__ - 4;