squawk-parser 2.48.0

Linter for Postgres migrations & SQL
Documentation
---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/ok/create_group.sql
---
SOURCE_FILE
  COMMENT "-- simple"
  WHITESPACE "\n"
  CREATE_GROUP
    CREATE_KW "create"
    WHITESPACE " "
    GROUP_KW "group"
    WHITESPACE " "
    NAME
      IDENT "g"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- full"
  WHITESPACE "\n"
  CREATE_GROUP
    CREATE_KW "create"
    WHITESPACE " "
    GROUP_KW "group"
    WHITESPACE " "
    NAME
      IDENT "g"
    WHITESPACE "\n  "
    ROLE_OPTION_LIST
      WITH_KW "with"
      WHITESPACE " "
      ROLE_OPTION
        IDENT "superuser"
      WHITESPACE "\n  "
      ROLE_OPTION
        IDENT "nosuperuser"
      WHITESPACE "\n  "
      ROLE_OPTION
        IDENT "nosuperuser"
      WHITESPACE "\n  "
      ROLE_OPTION
        IDENT "createdb"
      WHITESPACE "\n  "
      ROLE_OPTION
        IDENT "nocreatedb"
      WHITESPACE "\n  "
      ROLE_OPTION
        IDENT "createrole"
      WHITESPACE "\n  "
      ROLE_OPTION
        IDENT "nocreaterole"
      WHITESPACE "\n  "
      ROLE_OPTION
        INHERIT_KW "inherit"
      WHITESPACE "\n  "
      ROLE_OPTION
        IDENT "noinherit"
      WHITESPACE "\n  "
      ROLE_OPTION
        IDENT "login"
      WHITESPACE "\n  "
      ROLE_OPTION
        IDENT "nologin"
      WHITESPACE "\n  "
      ROLE_OPTION
        IDENT "replication"
      WHITESPACE "\n  "
      ROLE_OPTION
        IDENT "noreplication"
      WHITESPACE "\n  "
      ROLE_OPTION
        IDENT "bypassrls"
      WHITESPACE "\n  "
      ROLE_OPTION
        IDENT "nobypassrls"
      WHITESPACE "\n  "
      ROLE_OPTION
        CONNECTION_KW "connection"
        WHITESPACE " "
        LIMIT_KW "limit"
        WHITESPACE " "
        LITERAL
          INT_NUMBER "100"
      WHITESPACE "\n  "
      ROLE_OPTION
        ENCRYPTED_KW "encrypted"
        WHITESPACE " "
        PASSWORD_KW "password"
        WHITESPACE " "
        LITERAL
          STRING "'foo'"
      WHITESPACE "\n  "
      ROLE_OPTION
        PASSWORD_KW "password"
        WHITESPACE " "
        LITERAL
          STRING "'bar'"
      WHITESPACE "\n  "
      ROLE_OPTION
        PASSWORD_KW "password"
        WHITESPACE " "
        NULL_KW "null"
      WHITESPACE "\n  "
      ROLE_OPTION
        VALID_KW "valid"
        WHITESPACE " "
        UNTIL_KW "until"
        WHITESPACE " "
        LITERAL
          STRING "'2042-02-22'"
      WHITESPACE "\n  "
      ROLE_OPTION
        IN_KW "in"
        WHITESPACE " "
        ROLE_KW "role"
        WHITESPACE " "
        ROLE_REF_LIST
          ROLE_REF
            NAME_REF
              IDENT "foo"
          COMMA ","
          WHITESPACE " "
          ROLE_REF
            NAME_REF
              IDENT "bar"
          COMMA ","
          WHITESPACE " "
          ROLE_REF
            NAME_REF
              IDENT "buzz"
      WHITESPACE "\n  "
      ROLE_OPTION
        IN_KW "in"
        WHITESPACE " "
        GROUP_KW "group"
        WHITESPACE " "
        ROLE_REF_LIST
          ROLE_REF
            NAME_REF
              IDENT "foo"
      WHITESPACE "\n  "
      ROLE_OPTION
        ROLE_KW "role"
        WHITESPACE " "
        ROLE_REF_LIST
          ROLE_REF
            NAME_REF
              IDENT "r"
          COMMA ","
          WHITESPACE " "
          ROLE_REF
            CURRENT_USER_KW "current_user"
      WHITESPACE "\n  "
      ROLE_OPTION
        ADMIN_KW "admin"
        WHITESPACE " "
        ROLE_REF_LIST
          ROLE_REF
            NAME_REF
              IDENT "foo"
          COMMA ","
          WHITESPACE " "
          ROLE_REF
            NAME_REF
              IDENT "bar"
          COMMA ","
          WHITESPACE " "
          ROLE_REF
            NAME_REF
              IDENT "buzz"
      WHITESPACE "\n  "
      ROLE_OPTION
        SYSID_KW "sysid"
        WHITESPACE " "
        LITERAL
          INT_NUMBER "100"
  SEMICOLON ";"
  WHITESPACE "\n\n"