---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/ok/explain.sql
---
SOURCE_FILE
  COMMENT "-- simple"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "select"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            STAR "*"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "from"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "t"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- explain_analyze"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    ANALYZE_KW "analyze"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "select"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            NAME_REF
              IDENT "a"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "from"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "t"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- all_options"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    L_PAREN "("
    WHITESPACE "\n  "
    ANALYZE_KW "analyze"
    COMMA ","
    WHITESPACE "\n  "
    VERBOSE_KW "verbose"
    COMMA ","
    WHITESPACE "\n  "
    IDENT "costs"
    COMMA ","
    WHITESPACE "\n  "
    IDENT "costs"
    WHITESPACE " "
    LITERAL
      TRUE_KW "true"
    COMMA ","
    WHITESPACE "\n  "
    IDENT "costs"
    WHITESPACE " "
    LITERAL
      FALSE_KW "false"
    COMMA ","
    WHITESPACE "\n  "
    IDENT "settings"
    COMMA ","
    WHITESPACE "\n  "
    IDENT "generic_plan"
    COMMA ","
    WHITESPACE "\n  "
    IDENT "buffers"
    COMMA ","
    WHITESPACE "\n  "
    IDENT "serialize"
    COMMA ","
    WHITESPACE "\n  "
    IDENT "serialize"
    WHITESPACE " "
    NONE_KW "none"
    COMMA ","
    WHITESPACE "\n  "
    IDENT "serialize"
    WHITESPACE " "
    TEXT_KW "text"
    COMMA ","
    WHITESPACE "\n  "
    IDENT "serialize"
    WHITESPACE " "
    BINARY_KW "binary"
    COMMA ","
    WHITESPACE "\n  "
    IDENT "wal"
    COMMA ","
    WHITESPACE "\n  "
    IDENT "timing"
    COMMA ","
    WHITESPACE "\n  "
    IDENT "summary"
    COMMA ","
    WHITESPACE "\n  "
    IDENT "memory"
    COMMA ","
    WHITESPACE "\n  "
    FORMAT_KW "format"
    WHITESPACE " "
    TEXT_KW "text"
    COMMA ","
    WHITESPACE "\n  "
    FORMAT_KW "format"
    WHITESPACE " "
    XML_KW "xml"
    COMMA ","
    WHITESPACE "\n  "
    FORMAT_KW "format"
    WHITESPACE " "
    JSON_KW "json"
    COMMA ","
    WHITESPACE "\n  "
    FORMAT_KW "format"
    WHITESPACE " "
    IDENT "yaml"
    WHITESPACE "\n"
    R_PAREN ")"
    WHITESPACE "\n"
    SELECT
      SELECT_CLAUSE
        SELECT_KW "select"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            LITERAL
              INT_NUMBER "1"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- doc_example_1"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "EXPLAIN"
    WHITESPACE " "
    L_PAREN "("
    FORMAT_KW "FORMAT"
    WHITESPACE " "
    JSON_KW "JSON"
    R_PAREN ")"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "SELECT"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            STAR "*"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "FROM"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "foo"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- doc_example_2"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "EXPLAIN"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "SELECT"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            STAR "*"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "FROM"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "foo"
      WHITESPACE " "
      WHERE_CLAUSE
        WHERE_KW "WHERE"
        WHITESPACE " "
        BIN_EXPR
          NAME_REF
            IDENT "i"
          WHITESPACE " "
          EQ "="
          WHITESPACE " "
          LITERAL
            INT_NUMBER "4"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- doc_example_3"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "EXPLAIN"
    WHITESPACE " "
    L_PAREN "("
    FORMAT_KW "FORMAT"
    WHITESPACE " "
    IDENT "YAML"
    R_PAREN ")"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "SELECT"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            STAR "*"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "FROM"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "foo"
      WHITESPACE " "
      WHERE_CLAUSE
        WHERE_KW "WHERE"
        WHITESPACE " "
        BIN_EXPR
          NAME_REF
            IDENT "i"
          EQ "="
          LITERAL
            STRING "'4'"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- doc_example_4"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "EXPLAIN"
    WHITESPACE " "
    L_PAREN "("
    IDENT "COSTS"
    WHITESPACE " "
    LITERAL
      FALSE_KW "FALSE"
    R_PAREN ")"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "SELECT"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            STAR "*"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "FROM"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "foo"
      WHITESPACE " "
      WHERE_CLAUSE
        WHERE_KW "WHERE"
        WHITESPACE " "
        BIN_EXPR
          NAME_REF
            IDENT "i"
          WHITESPACE " "
          EQ "="
          WHITESPACE " "
          LITERAL
            INT_NUMBER "4"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- doc_example_5"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "EXPLAIN"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "SELECT"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            CALL_EXPR
              NAME_REF
                IDENT "sum"
              ARG_LIST
                L_PAREN "("
                NAME_REF
                  IDENT "i"
                R_PAREN ")"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "FROM"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "foo"
      WHITESPACE " "
      WHERE_CLAUSE
        WHERE_KW "WHERE"
        WHITESPACE " "
        BIN_EXPR
          NAME_REF
            IDENT "i"
          WHITESPACE " "
          L_ANGLE "<"
          WHITESPACE " "
          LITERAL
            INT_NUMBER "10"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- doc_example_6"
  WHITESPACE "\n"
  PREPARE
    PREPARE_KW "PREPARE"
    WHITESPACE " "
    NAME
      IDENT "query"
    PARAM_LIST
      L_PAREN "("
      PARAM
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                INT_KW "int"
      COMMA ","
      WHITESPACE " "
      PARAM
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                INT_KW "int"
      R_PAREN ")"
    WHITESPACE " "
    AS_KW "AS"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "SELECT"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            CALL_EXPR
              NAME_REF
                IDENT "sum"
              ARG_LIST
                L_PAREN "("
                NAME_REF
                  IDENT "bar"
                R_PAREN ")"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "FROM"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "test"
      WHITESPACE "\n    "
      WHERE_CLAUSE
        WHERE_KW "WHERE"
        WHITESPACE " "
        BIN_EXPR
          BIN_EXPR
            NAME_REF
              IDENT "id"
            WHITESPACE " "
            R_ANGLE ">"
            WHITESPACE " "
            LITERAL
              POSITIONAL_PARAM "$1"
          WHITESPACE " "
          AND_KW "AND"
          WHITESPACE " "
          BIN_EXPR
            NAME_REF
              IDENT "id"
            WHITESPACE " "
            L_ANGLE "<"
            WHITESPACE " "
            LITERAL
              POSITIONAL_PARAM "$2"
      WHITESPACE "\n    "
      GROUP_BY_CLAUSE
        GROUP_KW "GROUP"
        WHITESPACE " "
        BY_KW "BY"
        WHITESPACE " "
        GROUP_BY_LIST
          GROUPING_EXPR
            NAME_REF
              IDENT "foo"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  EXPLAIN
    EXPLAIN_KW "EXPLAIN"
    WHITESPACE " "
    ANALYZE_KW "ANALYZE"
    WHITESPACE " "
    EXECUTE
      EXECUTE_KW "EXECUTE"
      WHITESPACE " "
      NAME_REF
        IDENT "query"
      ARG_LIST
        L_PAREN "("
        LITERAL
          INT_NUMBER "100"
        COMMA ","
        WHITESPACE " "
        LITERAL
          INT_NUMBER "200"
        R_PAREN ")"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- doc_example_7"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "EXPLAIN"
    WHITESPACE " "
    L_PAREN "("
    IDENT "GENERIC_PLAN"
    R_PAREN ")"
    WHITESPACE "\n  "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "SELECT"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            CALL_EXPR
              NAME_REF
                IDENT "sum"
              ARG_LIST
                L_PAREN "("
                NAME_REF
                  IDENT "bar"
                R_PAREN ")"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "FROM"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "test"
      WHITESPACE "\n    "
      WHERE_CLAUSE
        WHERE_KW "WHERE"
        WHITESPACE " "
        BIN_EXPR
          BIN_EXPR
            NAME_REF
              IDENT "id"
            WHITESPACE " "
            R_ANGLE ">"
            WHITESPACE " "
            LITERAL
              POSITIONAL_PARAM "$1"
          WHITESPACE " "
          AND_KW "AND"
          WHITESPACE " "
          BIN_EXPR
            NAME_REF
              IDENT "id"
            WHITESPACE " "
            L_ANGLE "<"
            WHITESPACE " "
            LITERAL
              POSITIONAL_PARAM "$2"
      WHITESPACE "\n    "
      GROUP_BY_CLAUSE
        GROUP_KW "GROUP"
        WHITESPACE " "
        BY_KW "BY"
        WHITESPACE " "
        GROUP_BY_LIST
          GROUPING_EXPR
            NAME_REF
              IDENT "foo"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- doc_example_8"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "EXPLAIN"
    WHITESPACE " "
    L_PAREN "("
    IDENT "GENERIC_PLAN"
    R_PAREN ")"
    WHITESPACE "\n  "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "SELECT"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            CALL_EXPR
              NAME_REF
                IDENT "sum"
              ARG_LIST
                L_PAREN "("
                NAME_REF
                  IDENT "bar"
                R_PAREN ")"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "FROM"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "test"
      WHITESPACE "\n    "
      WHERE_CLAUSE
        WHERE_KW "WHERE"
        WHITESPACE " "
        BIN_EXPR
          BIN_EXPR
            NAME_REF
              IDENT "id"
            WHITESPACE " "
            R_ANGLE ">"
            WHITESPACE " "
            CAST_EXPR
              LITERAL
                POSITIONAL_PARAM "$1"
              COLON_COLON
                COLON ":"
                COLON ":"
              PATH_TYPE
                PATH
                  PATH_SEGMENT
                    NAME_REF
                      INTEGER_KW "integer"
          WHITESPACE " "
          AND_KW "AND"
          WHITESPACE " "
          BIN_EXPR
            NAME_REF
              IDENT "id"
            WHITESPACE " "
            L_ANGLE "<"
            WHITESPACE " "
            CAST_EXPR
              LITERAL
                POSITIONAL_PARAM "$2"
              COLON_COLON
                COLON ":"
                COLON ":"
              PATH_TYPE
                PATH
                  PATH_SEGMENT
                    NAME_REF
                      INTEGER_KW "integer"
      WHITESPACE "\n    "
      GROUP_BY_CLAUSE
        GROUP_KW "GROUP"
        WHITESPACE " "
        BY_KW "BY"
        WHITESPACE " "
        GROUP_BY_LIST
          GROUPING_EXPR
            NAME_REF
              IDENT "foo"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- parens_select"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    ANALYZE_KW "analyze"
    WHITESPACE " "
    PAREN_SELECT
      L_PAREN "("
      PAREN_SELECT
        L_PAREN "("
        PAREN_SELECT
          L_PAREN "("
          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 ")"
          R_PAREN ")"
        R_PAREN ")"
      R_PAREN ")"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- parens_values"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    ANALYZE_KW "analyze"
    WHITESPACE " "
    PAREN_SELECT
      L_PAREN "("
      PAREN_SELECT
        L_PAREN "("
        PAREN_SELECT
          L_PAREN "("
          PAREN_SELECT
            L_PAREN "("
            PAREN_SELECT
              L_PAREN "("
              VALUES
                VALUES_KW "values"
                WHITESPACE " "
                ROW_LIST
                  ROW
                    L_PAREN "("
                    LITERAL
                      INT_NUMBER "1"
                    R_PAREN ")"
              R_PAREN ")"
            R_PAREN ")"
          R_PAREN ")"
        R_PAREN ")"
      R_PAREN ")"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- boolean off"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "EXPLAIN"
    WHITESPACE " "
    L_PAREN "("
    IDENT "COSTS"
    WHITESPACE " "
    LITERAL
      OFF_KW "OFF"
    R_PAREN ")"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "SELECT"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            STAR "*"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "FROM"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "foo"
      WHITESPACE " "
      WHERE_CLAUSE
        WHERE_KW "WHERE"
        WHITESPACE " "
        BIN_EXPR
          NAME_REF
            IDENT "i"
          WHITESPACE " "
          EQ "="
          WHITESPACE " "
          LITERAL
            INT_NUMBER "4"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- boolean on"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "EXPLAIN"
    WHITESPACE " "
    L_PAREN "("
    IDENT "COSTS"
    WHITESPACE " "
    LITERAL
      ON_KW "ON"
    R_PAREN ")"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "SELECT"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            STAR "*"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "FROM"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "foo"
      WHITESPACE " "
      WHERE_CLAUSE
        WHERE_KW "WHERE"
        WHITESPACE " "
        BIN_EXPR
          NAME_REF
            IDENT "i"
          WHITESPACE " "
          EQ "="
          WHITESPACE " "
          LITERAL
            INT_NUMBER "4"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- boolean 1"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "EXPLAIN"
    WHITESPACE " "
    L_PAREN "("
    IDENT "COSTS"
    WHITESPACE " "
    LITERAL
      INT_NUMBER "1"
    R_PAREN ")"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "SELECT"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            STAR "*"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "FROM"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "foo"
      WHITESPACE " "
      WHERE_CLAUSE
        WHERE_KW "WHERE"
        WHITESPACE " "
        BIN_EXPR
          NAME_REF
            IDENT "i"
          WHITESPACE " "
          EQ "="
          WHITESPACE " "
          LITERAL
            INT_NUMBER "4"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- boolean 0"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "EXPLAIN"
    WHITESPACE " "
    L_PAREN "("
    IDENT "COSTS"
    WHITESPACE " "
    LITERAL
      INT_NUMBER "0"
    R_PAREN ")"
    WHITESPACE " "
    SELECT
      SELECT_CLAUSE
        SELECT_KW "SELECT"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            STAR "*"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "FROM"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "foo"
      WHITESPACE " "
      WHERE_CLAUSE
        WHERE_KW "WHERE"
        WHITESPACE " "
        BIN_EXPR
          NAME_REF
            IDENT "i"
          WHITESPACE " "
          EQ "="
          WHITESPACE " "
          LITERAL
            INT_NUMBER "4"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- compound select"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    COMPOUND_SELECT
      SELECT
        SELECT_CLAUSE
          SELECT_KW "select"
          WHITESPACE " "
          TARGET_LIST
            TARGET
              LITERAL
                INT_NUMBER "1"
      WHITESPACE " "
      UNION_KW "union"
      WHITESPACE " "
      SELECT
        SELECT_CLAUSE
          SELECT_KW "select"
          WHITESPACE " "
          TARGET_LIST
            TARGET
              LITERAL
                INT_NUMBER "2"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- select into"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    SELECT_INTO
      SELECT_CLAUSE
        SELECT_KW "select"
        WHITESPACE " "
        TARGET_LIST
          TARGET
            NAME_REF
              IDENT "a"
          COMMA ","
          WHITESPACE " "
          TARGET
            NAME_REF
              IDENT "b"
          COMMA ","
          WHITESPACE " "
          TARGET
            NAME_REF
              IDENT "c"
      WHITESPACE " "
      INTO_CLAUSE
        INTO_KW "into"
        WHITESPACE " "
        PATH
          PATH_SEGMENT
            NAME
              IDENT "t"
      WHITESPACE " "
      FROM_CLAUSE
        FROM_KW "from"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "t2"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- paren select"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    PAREN_SELECT
      L_PAREN "("
      SELECT
        SELECT_CLAUSE
          SELECT_KW "select"
          WHITESPACE " "
          TARGET_LIST
            TARGET
              LITERAL
                INT_NUMBER "1"
      R_PAREN ")"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- table"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    TABLE
      TABLE_KW "table"
      WHITESPACE " "
      RELATION_NAME
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "t"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- values"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    VALUES
      VALUES_KW "values"
      WHITESPACE " "
      ROW_LIST
        ROW
          L_PAREN "("
          LITERAL
            INT_NUMBER "1"
          R_PAREN ")"
        COMMA ","
        WHITESPACE " "
        ROW
          L_PAREN "("
          LITERAL
            INT_NUMBER "2"
          R_PAREN ")"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- insert"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    INSERT
      INSERT_KW "insert"
      WHITESPACE " "
      INTO_KW "into"
      WHITESPACE " "
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "t"
      WHITESPACE " "
      VALUES
        VALUES_KW "values"
        WHITESPACE " "
        ROW_LIST
          ROW
            L_PAREN "("
            LITERAL
              INT_NUMBER "1"
            COMMA ","
            WHITESPACE " "
            LITERAL
              INT_NUMBER "2"
            R_PAREN ")"
          COMMA ","
          WHITESPACE " "
          ROW
            L_PAREN "("
            LITERAL
              INT_NUMBER "3"
            COMMA ","
            WHITESPACE " "
            LITERAL
              INT_NUMBER "4"
            R_PAREN ")"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- update"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    UPDATE
      UPDATE_KW "update"
      WHITESPACE " "
      RELATION_NAME
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "t"
      WHITESPACE " "
      SET_CLAUSE
        SET_KW "set"
        WHITESPACE " "
        SET_COLUMN_LIST
          SET_SINGLE_COLUMN
            COLUMN
              NAME_REF
                IDENT "a"
            WHITESPACE " "
            EQ "="
            WHITESPACE " "
            SET_EXPR
              LITERAL
                INT_NUMBER "1"
      WHITESPACE " "
      WHERE_CLAUSE
        WHERE_KW "where"
        WHITESPACE " "
        BIN_EXPR
          NAME_REF
            IDENT "a"
          WHITESPACE " "
          R_ANGLE ">"
          WHITESPACE " "
          LITERAL
            INT_NUMBER "10"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- delete"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    DELETE
      DELETE_KW "delete"
      WHITESPACE " "
      FROM_KW "from"
      WHITESPACE " "
      RELATION_NAME
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "t"
      WHITESPACE " "
      WHERE_CLAUSE
        WHERE_KW "where"
        WHITESPACE " "
        BIN_EXPR
          NAME_REF
            IDENT "x"
          WHITESPACE " "
          R_ANGLE ">"
          WHITESPACE " "
          LITERAL
            INT_NUMBER "1"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- merge"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    MERGE
      MERGE_KW "merge"
      WHITESPACE " "
      INTO_KW "into"
      WHITESPACE " "
      RELATION_NAME
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "t"
      WHITESPACE "\n  "
      USING_ON_CLAUSE
        USING_KW "using"
        WHITESPACE " "
        FROM_ITEM
          NAME_REF
            IDENT "u"
        WHITESPACE "\n    "
        ON_CLAUSE
          ON_KW "on"
          WHITESPACE " "
          BIN_EXPR
            FIELD_EXPR
              NAME_REF
                IDENT "t"
              DOT "."
              NAME_REF
                IDENT "id"
            WHITESPACE " "
            EQ "="
            WHITESPACE " "
            FIELD_EXPR
              NAME_REF
                IDENT "u"
              DOT "."
              NAME_REF
                IDENT "id"
      WHITESPACE "\n  "
      MERGE_WHEN_MATCHED
        WHEN_KW "when"
        WHITESPACE " "
        MATCHED_KW "matched"
        WHITESPACE " "
        THEN_KW "then"
        WHITESPACE " \n    "
        MERGE_DO_NOTHING
          DO_KW "do"
          WHITESPACE " "
          NOTHING_KW "nothing"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- execute"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    EXECUTE
      EXECUTE_KW "execute"
      WHITESPACE " "
      NAME_REF
        IDENT "foo"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- declare"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    DECLARE
      DECLARE_KW "declare"
      WHITESPACE " "
      NAME
        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 "-- create table as"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    CREATE_TABLE_AS
      CREATE_KW "create"
      WHITESPACE " "
      TABLE_KW "table"
      WHITESPACE " "
      PATH
        PATH_SEGMENT
          NAME
            IDENT "t"
      WHITESPACE " "
      AS_KW "as"
      WHITESPACE "\n  "
      SELECT
        SELECT_CLAUSE
          SELECT_KW "select"
          WHITESPACE " "
          TARGET_LIST
            TARGET
              STAR "*"
        WHITESPACE " "
        FROM_CLAUSE
          FROM_KW "from"
          WHITESPACE " "
          FROM_ITEM
            NAME_REF
              IDENT "u"
        WHITESPACE " "
        WHERE_CLAUSE
          WHERE_KW "where"
          WHITESPACE " "
          BIN_EXPR
            NAME_REF
              IDENT "c"
            WHITESPACE " "
            GTEQ ">="
            WHITESPACE " "
            NAME_REF
              IDENT "b"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- create materialized view"
  WHITESPACE "\n"
  EXPLAIN
    EXPLAIN_KW "explain"
    WHITESPACE " "
    CREATE_MATERIALIZED_VIEW
      CREATE_KW "create"
      WHITESPACE " "
      MATERIALIZED_KW "materialized"
      WHITESPACE " "
      VIEW_KW "view"
      WHITESPACE " "
      PATH
        PATH_SEGMENT
          NAME
            IDENT "t"
      WHITESPACE "\n  "
      AS_KW "as"
      WHITESPACE " "
      SELECT
        SELECT_CLAUSE
          SELECT_KW "select"
          WHITESPACE " "
          TARGET_LIST
            TARGET
              LITERAL
                INT_NUMBER "1"
  SEMICOLON ";"
  WHITESPACE "\n"
