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/alter_foreign_data_wrapper.sql
---
SOURCE_FILE
  COMMENT "-- connection"
  WHITESPACE "\n"
  ALTER_FOREIGN_DATA_WRAPPER
    ALTER_KW "alter"
    WHITESPACE " "
    FOREIGN_KW "foreign"
    WHITESPACE " "
    DATA_KW "data"
    WHITESPACE " "
    WRAPPER_KW "wrapper"
    WHITESPACE " "
    FOREIGN_DATA_WRAPPER_REF
      IDENT "w"
    WHITESPACE "\n  "
    FDW_OPTION_LIST
      OPTION_CONNECTION
        CONNECTION_KW "connection"
        WHITESPACE " "
        FUNCTION_NAME_REF
          PATH_REF
            PATH_SEGMENT_REF
              NAME_REF
                IDENT "c"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- no_connection"
  WHITESPACE "\n"
  ALTER_FOREIGN_DATA_WRAPPER
    ALTER_KW "alter"
    WHITESPACE " "
    FOREIGN_KW "foreign"
    WHITESPACE " "
    DATA_KW "data"
    WHITESPACE " "
    WRAPPER_KW "wrapper"
    WHITESPACE " "
    FOREIGN_DATA_WRAPPER_REF
      IDENT "w"
    WHITESPACE "\n  "
    FDW_OPTION_LIST
      OPTION_NO_CONNECTION
        NO_KW "no"
        WHITESPACE " "
        CONNECTION_KW "connection"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- handler"
  WHITESPACE "\n"
  ALTER_FOREIGN_DATA_WRAPPER
    ALTER_KW "alter"
    WHITESPACE " "
    FOREIGN_KW "foreign"
    WHITESPACE " "
    DATA_KW "data"
    WHITESPACE " "
    WRAPPER_KW "wrapper"
    WHITESPACE " "
    FOREIGN_DATA_WRAPPER_REF
      IDENT "w"
    WHITESPACE "\n  "
    FDW_OPTION_LIST
      OPTION_HANDLER
        HANDLER_KW "handler"
        WHITESPACE " "
        FUNCTION_NAME_REF
          PATH_REF
            PATH_SEGMENT_REF
              NAME_REF
                IDENT "h"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- no_handler"
  WHITESPACE "\n"
  ALTER_FOREIGN_DATA_WRAPPER
    ALTER_KW "alter"
    WHITESPACE " "
    FOREIGN_KW "foreign"
    WHITESPACE " "
    DATA_KW "data"
    WHITESPACE " "
    WRAPPER_KW "wrapper"
    WHITESPACE " "
    FOREIGN_DATA_WRAPPER_REF
      IDENT "w"
    WHITESPACE "\n  "
    FDW_OPTION_LIST
      OPTION_NO_HANDLER
        NO_KW "no"
        WHITESPACE " "
        HANDLER_KW "handler"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- validator"
  WHITESPACE "\n"
  ALTER_FOREIGN_DATA_WRAPPER
    ALTER_KW "alter"
    WHITESPACE " "
    FOREIGN_KW "foreign"
    WHITESPACE " "
    DATA_KW "data"
    WHITESPACE " "
    WRAPPER_KW "wrapper"
    WHITESPACE " "
    FOREIGN_DATA_WRAPPER_REF
      IDENT "w"
    WHITESPACE "\n  "
    FDW_OPTION_LIST
      OPTION_VALIDATOR
        VALIDATOR_KW "validator"
        WHITESPACE " "
        FUNCTION_NAME_REF
          PATH_REF
            PATH_SEGMENT_REF
              NAME_REF
                IDENT "v"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- no_validator"
  WHITESPACE "\n"
  ALTER_FOREIGN_DATA_WRAPPER
    ALTER_KW "alter"
    WHITESPACE " "
    FOREIGN_KW "foreign"
    WHITESPACE " "
    DATA_KW "data"
    WHITESPACE " "
    WRAPPER_KW "wrapper"
    WHITESPACE " "
    FOREIGN_DATA_WRAPPER_REF
      IDENT "w"
    WHITESPACE "\n  "
    FDW_OPTION_LIST
      OPTION_NO_VALIDATOR
        NO_KW "no"
        WHITESPACE " "
        VALIDATOR_KW "validator"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- options"
  WHITESPACE "\n"
  ALTER_FOREIGN_DATA_WRAPPER
    ALTER_KW "alter"
    WHITESPACE " "
    FOREIGN_KW "foreign"
    WHITESPACE " "
    DATA_KW "data"
    WHITESPACE " "
    WRAPPER_KW "wrapper"
    WHITESPACE " "
    FOREIGN_DATA_WRAPPER_REF
      IDENT "w"
    WHITESPACE "\n  "
    FDW_OPTION_LIST
      OPTION_ALTER_OPTION_LIST
        OPTIONS_KW "options"
        WHITESPACE " "
        L_PAREN "("
        ALTER_OPTION
          ADD_KW "add"
          WHITESPACE " "
          FOREIGN_OPTION_NAME
            IDENT "o"
          WHITESPACE " "
          LITERAL
            STRING "'v'"
        COMMA ","
        WHITESPACE " "
        ALTER_OPTION
          SET_KW "set"
          WHITESPACE " "
          FOREIGN_OPTION_NAME
            IDENT "o"
          WHITESPACE " "
          LITERAL
            STRING "'v'"
        COMMA ","
        WHITESPACE " "
        ALTER_OPTION
          DROP_KW "drop"
          WHITESPACE " "
          FOREIGN_OPTION_NAME
            IDENT "o"
        R_PAREN ")"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- multiple"
  WHITESPACE "\n"
  ALTER_FOREIGN_DATA_WRAPPER
    ALTER_KW "alter"
    WHITESPACE " "
    FOREIGN_KW "foreign"
    WHITESPACE " "
    DATA_KW "data"
    WHITESPACE " "
    WRAPPER_KW "wrapper"
    WHITESPACE " "
    FOREIGN_DATA_WRAPPER_REF
      IDENT "w"
    WHITESPACE "\n  "
    FDW_OPTION_LIST
      OPTION_CONNECTION
        CONNECTION_KW "connection"
        WHITESPACE " "
        FUNCTION_NAME_REF
          PATH_REF
            PATH_REF
              PATH_SEGMENT_REF
                NAME_REF
                  IDENT "s"
            DOT "."
            PATH_SEGMENT_REF
              NAME_REF
                IDENT "c"
      WHITESPACE "\n  "
      OPTION_NO_CONNECTION
        NO_KW "no"
        WHITESPACE " "
        CONNECTION_KW "connection"
      WHITESPACE "\n  "
      OPTION_HANDLER
        HANDLER_KW "handler"
        WHITESPACE " "
        FUNCTION_NAME_REF
          PATH_REF
            PATH_REF
              PATH_SEGMENT_REF
                NAME_REF
                  IDENT "s"
            DOT "."
            PATH_SEGMENT_REF
              NAME_REF
                IDENT "h"
      WHITESPACE "\n  "
      OPTION_NO_HANDLER
        NO_KW "no"
        WHITESPACE " "
        HANDLER_KW "handler"
      WHITESPACE "\n  "
      OPTION_VALIDATOR
        VALIDATOR_KW "validator"
        WHITESPACE " "
        FUNCTION_NAME_REF
          PATH_REF
            PATH_REF
              PATH_SEGMENT_REF
                NAME_REF
                  IDENT "s"
            DOT "."
            PATH_SEGMENT_REF
              NAME_REF
                IDENT "v"
      WHITESPACE "\n  "
      OPTION_NO_VALIDATOR
        NO_KW "no"
        WHITESPACE " "
        VALIDATOR_KW "validator"
      WHITESPACE "\n  "
      OPTION_ALTER_OPTION_LIST
        OPTIONS_KW "options"
        WHITESPACE " "
        L_PAREN "("
        ALTER_OPTION
          ADD_KW "add"
          WHITESPACE " "
          FOREIGN_OPTION_NAME
            IDENT "o"
          WHITESPACE " "
          LITERAL
            STRING "'v'"
        COMMA ","
        WHITESPACE " "
        ALTER_OPTION
          SET_KW "set"
          WHITESPACE " "
          FOREIGN_OPTION_NAME
            IDENT "o"
          WHITESPACE " "
          LITERAL
            STRING "''"
        COMMA ","
        WHITESPACE " "
        ALTER_OPTION
          DROP_KW "drop"
          WHITESPACE " "
          FOREIGN_OPTION_NAME
            IDENT "d"
        R_PAREN ")"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- owner"
  WHITESPACE "\n"
  ALTER_FOREIGN_DATA_WRAPPER
    ALTER_KW "alter"
    WHITESPACE " "
    FOREIGN_KW "foreign"
    WHITESPACE " "
    DATA_KW "data"
    WHITESPACE " "
    WRAPPER_KW "wrapper"
    WHITESPACE " "
    FOREIGN_DATA_WRAPPER_REF
      IDENT "w"
    WHITESPACE "\n  "
    OWNER_TO
      OWNER_KW "owner"
      WHITESPACE " "
      TO_KW "to"
      WHITESPACE " "
      ROLE_REF
        IDENT "u"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- rename"
  WHITESPACE "\n"
  ALTER_FOREIGN_DATA_WRAPPER
    ALTER_KW "alter"
    WHITESPACE " "
    FOREIGN_KW "foreign"
    WHITESPACE " "
    DATA_KW "data"
    WHITESPACE " "
    WRAPPER_KW "wrapper"
    WHITESPACE " "
    FOREIGN_DATA_WRAPPER_REF
      IDENT "w"
    WHITESPACE "\n  "
    FOREIGN_DATA_WRAPPER_RENAME_TO
      RENAME_KW "rename"
      WHITESPACE " "
      TO_KW "to"
      WHITESPACE " "
      FOREIGN_DATA_WRAPPER
        IDENT "n"
    SEMICOLON ";"
  WHITESPACE "\n\n"