squawk-parser 2.61.0

Linter for Postgres migrations & SQL
Documentation
---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/ok/declare.sql
---
SOURCE_FILE
  COMMENT "-- pg_docs"
  WHITESPACE "\n"
  DECLARE
    DECLARE_KW "DECLARE"
    WHITESPACE " "
    CURSOR
      IDENT "cursor_name"
    WHITESPACE " "
    CURSOR_KW "CURSOR"
    WHITESPACE " "
    FOR_KW "FOR"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "SELECT"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            STAR "*"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "FROM"
        WHITESPACE " "
        RELATION_FROM_ITEM
          RELATION_NAME_REF
            PATH_REF
              PATH_SEGMENT_REF
                NAME_REF
                  IDENT "t"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- full"
  WHITESPACE "\n"
  DECLARE
    DECLARE_KW "declare"
    WHITESPACE " "
    CURSOR
      IDENT "c"
    WHITESPACE " "
    BINARY_KW "binary"
    WHITESPACE " "
    INSENSITIVE_KW "insensitive"
    WHITESPACE " "
    NO_KW "no"
    WHITESPACE " "
    SCROLL_KW "scroll"
    WHITESPACE " "
    CURSOR_KW "cursor"
    WHITESPACE " "
    WITHOUT_KW "without"
    WHITESPACE " "
    HOLD_KW "hold"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "select"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            LITERAL
              INT_NUMBER "1"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  DECLARE
    DECLARE_KW "declare"
    WHITESPACE " "
    CURSOR
      IDENT "c"
    WHITESPACE " \n"
    BINARY_KW "binary"
    WHITESPACE " \n"
    ASENSITIVE_KW "asensitive"
    WHITESPACE " \n"
    SCROLL_KW "scroll"
    WHITESPACE " \n"
    CURSOR_KW "cursor"
    WHITESPACE " \n    "
    WITH_KW "with"
    WHITESPACE " "
    HOLD_KW "hold"
    WHITESPACE " \n    "
    FOR_KW "for"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "select"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            LITERAL
              INT_NUMBER "2"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  DECLARE
    DECLARE_KW "declare"
    WHITESPACE " "
    CURSOR
      IDENT "c"
    WHITESPACE " "
    CURSOR_KW "cursor"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "select"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            LITERAL
              INT_NUMBER "1"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- parenthesized / compound queries"
  WHITESPACE "\n"
  DECLARE
    DECLARE_KW "declare"
    WHITESPACE " "
    CURSOR
      IDENT "c"
    WHITESPACE " "
    CURSOR_KW "cursor"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " "
    PAREN_SELECT
      L_PAREN "("
      SELECT
        SELECT_CLAUSE
          SELECT_KW "select"
          WHITESPACE " "
          TARGET_LIST
            TARGET
              LITERAL
                INT_NUMBER "1"
      R_PAREN ")"
    SEMICOLON ";"
  WHITESPACE "\n"
  DECLARE
    DECLARE_KW "declare"
    WHITESPACE " "
    CURSOR
      IDENT "c"
    WHITESPACE " "
    CURSOR_KW "cursor"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " "
    PAREN_SELECT
      L_PAREN "("
      COMPOUND_SELECT
        VALUES
          VALUES_KW "values"
          WHITESPACE " "
          ROW_LIST
            ROW
              L_PAREN "("
              LITERAL
                INT_NUMBER "1"
              R_PAREN ")"
        WHITESPACE " "
        UNION_KW "union"
        WHITESPACE " "
        VALUES
          VALUES_KW "values"
          WHITESPACE " "
          ROW_LIST
            ROW
              L_PAREN "("
              LITERAL
                INT_NUMBER "2"
              R_PAREN ")"
      R_PAREN ")"
    SEMICOLON ";"
  WHITESPACE "\n"
  DECLARE
    DECLARE_KW "declare"
    WHITESPACE " "
    CURSOR
      IDENT "c"
    WHITESPACE " "
    CURSOR_KW "cursor"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " "
    PAREN_SELECT
      L_PAREN "("
      PAREN_SELECT
        L_PAREN "("
        SELECT
          SELECT_CLAUSE
            SELECT_KW "select"
            WHITESPACE " "
            TARGET_LIST
              TARGET
                LITERAL
                  INT_NUMBER "1"
        R_PAREN ")"
      R_PAREN ")"
    SEMICOLON ";"
  WHITESPACE "\n\n"