squawk-parser 2.63.0

Linter for Postgres migrations & SQL
Documentation
---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/ok/create_statistics.sql
---
SOURCE_FILE
  COMMENT "-- simple"
  WHITESPACE "\n"
  CREATE_STATISTICS
    CREATE_KW "create"
    WHITESPACE " "
    STATISTICS_KW "statistics"
    WHITESPACE " "
    STATISTICS_ON_CLAUSE
      ON_KW "on"
      WHITESPACE " "
      PAREN_EXPR
        L_PAREN "("
        NAME_REF
          IDENT "a"
        R_PAREN ")"
    WHITESPACE " "
    FROM_TABLE
      FROM_KW "from"
      WHITESPACE " "
      TABLE_NAME_REF
        PATH_REF
          PATH_SEGMENT_REF
            IDENT "t"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- full"
  WHITESPACE "\n"
  CREATE_STATISTICS
    CREATE_KW "create"
    WHITESPACE " "
    STATISTICS_KW "statistics"
    WHITESPACE " "
    IF_NOT_EXISTS
      IF_KW "if"
      WHITESPACE " "
      NOT_KW "not"
      WHITESPACE " "
      EXISTS_KW "exists"
    WHITESPACE " "
    STATISTICS
      PATH
        PATH_REF
          PATH_SEGMENT_REF
            IDENT "foo"
        DOT "."
        PATH_SEGMENT
          IDENT "s"
    STAT_TYPES
      L_PAREN "("
      STATISTICS_KIND
        IDENT "mcv"
      COMMA ","
      WHITESPACE " "
      STATISTICS_KIND
        IDENT "ndistinct"
      COMMA ","
      WHITESPACE " "
      STATISTICS_KIND
        IDENT "dependencies"
      R_PAREN ")"
    WHITESPACE "\n"
    STATISTICS_ON_CLAUSE
      ON_KW "on"
      WHITESPACE " "
      PAREN_EXPR
        L_PAREN "("
        NAME_REF
          IDENT "foo"
        R_PAREN ")"
      COMMA ","
      WHITESPACE " "
      NAME_REF
        IDENT "bar"
      COMMA ","
      WHITESPACE " "
      NAME_REF
        IDENT "buzz"
      COMMA ","
      WHITESPACE " "
      PAREN_EXPR
        L_PAREN "("
        BIN_EXPR
          NAME_REF
            IDENT "a"
          WHITESPACE " "
          PLUS "+"
          WHITESPACE " "
          NAME_REF
            IDENT "b"
        R_PAREN ")"
    WHITESPACE "\n"
    FROM_TABLE
      FROM_KW "from"
      WHITESPACE " "
      TABLE_NAME_REF
        PATH_REF
          PATH_REF
            PATH_SEGMENT_REF
              IDENT "foo"
          DOT "."
          PATH_SEGMENT_REF
            IDENT "t"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- docs_1"
  WHITESPACE "\n"
  CREATE_STATISTICS
    CREATE_KW "CREATE"
    WHITESPACE " "
    STATISTICS_KW "STATISTICS"
    WHITESPACE " "
    STATISTICS
      PATH
        PATH_SEGMENT
          IDENT "s1"
    WHITESPACE " "
    STAT_TYPES
      L_PAREN "("
      STATISTICS_KIND
        IDENT "dependencies"
      R_PAREN ")"
    WHITESPACE " "
    STATISTICS_ON_CLAUSE
      ON_KW "ON"
      WHITESPACE " "
      NAME_REF
        IDENT "a"
      COMMA ","
      WHITESPACE " "
      NAME_REF
        IDENT "b"
    WHITESPACE " "
    FROM_TABLE
      FROM_KW "FROM"
      WHITESPACE " "
      TABLE_NAME_REF
        PATH_REF
          PATH_SEGMENT_REF
            IDENT "t1"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- docs_2"
  WHITESPACE "\n"
  CREATE_STATISTICS
    CREATE_KW "CREATE"
    WHITESPACE " "
    STATISTICS_KW "STATISTICS"
    WHITESPACE " "
    STATISTICS
      PATH
        PATH_SEGMENT
          IDENT "s2"
    WHITESPACE " "
    STAT_TYPES
      L_PAREN "("
      STATISTICS_KIND
        IDENT "mcv"
      R_PAREN ")"
    WHITESPACE " "
    STATISTICS_ON_CLAUSE
      ON_KW "ON"
      WHITESPACE " "
      NAME_REF
        IDENT "a"
      COMMA ","
      WHITESPACE " "
      NAME_REF
        IDENT "b"
    WHITESPACE " "
    FROM_TABLE
      FROM_KW "FROM"
      WHITESPACE " "
      TABLE_NAME_REF
        PATH_REF
          PATH_SEGMENT_REF
            IDENT "t2"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- docs_3"
  WHITESPACE "\n"
  CREATE_STATISTICS
    CREATE_KW "CREATE"
    WHITESPACE " "
    STATISTICS_KW "STATISTICS"
    WHITESPACE " "
    STATISTICS
      PATH
        PATH_SEGMENT
          IDENT "s3"
    WHITESPACE " "
    STAT_TYPES
      L_PAREN "("
      STATISTICS_KIND
        IDENT "ndistinct"
      R_PAREN ")"
    WHITESPACE " "
    STATISTICS_ON_CLAUSE
      ON_KW "ON"
      WHITESPACE " "
      CALL_EXPR
        NAME_REF
          IDENT "date_trunc"
        ARG_LIST
          L_PAREN "("
          ARG
            LITERAL
              STRING "'month'"
          COMMA ","
          WHITESPACE " "
          ARG
            NAME_REF
              IDENT "a"
          R_PAREN ")"
      COMMA ","
      WHITESPACE " "
      CALL_EXPR
        NAME_REF
          IDENT "date_trunc"
        ARG_LIST
          L_PAREN "("
          ARG
            LITERAL
              STRING "'day'"
          COMMA ","
          WHITESPACE " "
          ARG
            NAME_REF
              IDENT "a"
          R_PAREN ")"
    WHITESPACE " "
    FROM_TABLE
      FROM_KW "FROM"
      WHITESPACE " "
      TABLE_NAME_REF
        PATH_REF
          PATH_SEGMENT_REF
            IDENT "t3"
    SEMICOLON ";"
  WHITESPACE "\n\n"