squawk-parser 2.65.0

Linter for Postgres migrations & SQL
Documentation
---
source: crates/squawk_parser/tests/tests.rs
assertion_line: 28
input_file: crates/squawk_parser/tests/data/ok/drop_aggregate.sql
---
SOURCE_FILE
  COMMENT "-- simple"
  WHITESPACE "\n"
  DROP_AGGREGATE
    DROP_KW "drop"
    WHITESPACE " "
    AGGREGATE_KW "aggregate"
    WHITESPACE " "
    AGGREGATE
      PATH_REF
        PATH_SEGMENT_REF
          IDENT "a"
      PARAM_LIST
        L_PAREN "("
        STAR "*"
        R_PAREN ")"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- full"
  WHITESPACE "\n"
  DROP_AGGREGATE
    DROP_KW "drop"
    WHITESPACE " "
    AGGREGATE_KW "aggregate"
    WHITESPACE " \n  "
    IF_EXISTS
      IF_KW "if"
      WHITESPACE " "
      EXISTS_KW "exists"
    WHITESPACE " \n    "
    AGGREGATE
      PATH_REF
        PATH_SEGMENT_REF
          IDENT "a"
      PARAM_LIST
        L_PAREN "("
        STAR "*"
        R_PAREN ")"
    COMMA ","
    WHITESPACE " \n    "
    AGGREGATE
      PATH_REF
        PATH_REF
          PATH_SEGMENT_REF
            IDENT "foo"
        DOT "."
        PATH_SEGMENT_REF
          IDENT "bar"
      PARAM_LIST
        L_PAREN "("
        STAR "*"
        R_PAREN ")"
    COMMA ","
    WHITESPACE " \n    "
    AGGREGATE
      PATH_REF
        PATH_REF
          PATH_SEGMENT_REF
            IDENT "foo"
        DOT "."
        PATH_SEGMENT_REF
          IDENT "bar"
      PARAM_LIST
        L_PAREN "("
        WHITESPACE "\n        "
        PARAM
          PARAM_IN
            IN_KW "in"
          WHITESPACE " "
          PARAM_NAME
            IDENT "foo"
          WHITESPACE " "
          PATH_TYPE
            PATH_REF
              PATH_SEGMENT_REF
                INTEGER_KW "integer"
        COMMA ","
        WHITESPACE "\n        "
        PARAM
          PARAM_NAME
            IDENT "bar"
          WHITESPACE " "
          PATH_TYPE
            PATH_REF
              PATH_SEGMENT_REF
                INTEGER_KW "integer"
        COMMA ","
        WHITESPACE "\n        "
        PARAM
          PATH_TYPE
            PATH_REF
              PATH_SEGMENT_REF
                TEXT_KW "text"
        WHITESPACE "\n    "
        R_PAREN ")"
    COMMA ","
    WHITESPACE " \n    "
    AGGREGATE
      PATH_REF
        PATH_SEGMENT_REF
          IDENT "c"
      PARAM_LIST
        L_PAREN "("
        STAR "*"
        R_PAREN ")"
    WHITESPACE "\n  "
    CASCADE
      CASCADE_KW "cascade"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- aggregate"
  WHITESPACE "\n"
  DROP_AGGREGATE
    DROP_KW "drop"
    WHITESPACE " "
    AGGREGATE_KW "aggregate"
    WHITESPACE " "
    AGGREGATE
      PATH_REF
        PATH_SEGMENT_REF
          IDENT "a"
      PARAM_LIST
        L_PAREN "("
        WHITESPACE "\n  "
        PARAM
          PATH_TYPE
            PATH_REF
              PATH_SEGMENT_REF
                INTEGER_KW "integer"
        COMMA ","
        WHITESPACE "\n  "
        PARAM
          PATH_TYPE
            PATH_REF
              PATH_SEGMENT_REF
                TEXT_KW "text"
        COMMA ","
        WHITESPACE "\n  "
        PARAM
          PATH_TYPE
            PATH_REF
              PATH_SEGMENT_REF
                NUMERIC_KW "numeric"
        WHITESPACE "\n  "
        AGGREGATE_ORDER_BY
          ORDER_KW "order"
          WHITESPACE " "
          BY_KW "by"
          WHITESPACE "\n    "
          PARAM
            PARAM_IN
              IN_KW "in"
            WHITESPACE " "
            PARAM_NAME
              IDENT "a"
            WHITESPACE " "
            TIMESTAMP_TYPE
              TIMESTAMP_KW "timestamp"
          COMMA ","
          WHITESPACE "\n    "
          PARAM
            PARAM_NAME
              IDENT "b"
            WHITESPACE " "
            PATH_TYPE
              PATH_REF
                PATH_SEGMENT_REF
                  NUMERIC_KW "numeric"
          COMMA ","
          WHITESPACE "\n    "
          PARAM
            PATH_TYPE
              PATH_REF
                PATH_SEGMENT_REF
                  TEXT_KW "text"
        WHITESPACE "\n"
        R_PAREN ")"
    WHITESPACE " "
    RESTRICT
      RESTRICT_KW "restrict"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  DROP_AGGREGATE
    DROP_KW "drop"
    WHITESPACE " "
    AGGREGATE_KW "aggregate"
    WHITESPACE " "
    AGGREGATE
      PATH_REF
        PATH_REF
          PATH_SEGMENT_REF
            IDENT "foo"
        DOT "."
        PATH_SEGMENT_REF
          IDENT "bar"
      PARAM_LIST
        L_PAREN "("
        WHITESPACE "\n  "
        AGGREGATE_ORDER_BY
          ORDER_KW "order"
          WHITESPACE " "
          BY_KW "by"
          WHITESPACE "\n    "
          PARAM
            PARAM_IN
              IN_KW "in"
            WHITESPACE " "
            PARAM_NAME
              IDENT "a"
            WHITESPACE " "
            TIMESTAMP_TYPE
              TIMESTAMP_KW "timestamp"
          COMMA ","
          WHITESPACE "\n    "
          PARAM
            PARAM_NAME
              IDENT "b"
            WHITESPACE " "
            PATH_TYPE
              PATH_REF
                PATH_SEGMENT_REF
                  NUMERIC_KW "numeric"
          COMMA ","
          WHITESPACE "\n    "
          PARAM
            PATH_TYPE
              PATH_REF
                PATH_SEGMENT_REF
                  TEXT_KW "text"
        WHITESPACE "\n"
        R_PAREN ")"
    SEMICOLON ";"
  WHITESPACE "\n\n"