squawk-syntax 2.55.0

Linter for Postgres migrations & SQL
Documentation
---
source: crates/squawk_syntax/src/test.rs
input_file: crates/squawk_syntax/test_data/validation/rule_stmts_ok.sql
---
SOURCE_FILE@0..209
  CREATE_RULE@0..102
    CREATE_KW@0..6 "create"
    WHITESPACE@6..7 " "
    RULE_KW@7..11 "rule"
    WHITESPACE@11..12 " "
    NAME@12..13
      IDENT@12..13 "r"
    WHITESPACE@13..14 " "
    AS_KW@14..16 "as"
    WHITESPACE@16..17 " "
    RULE_ON@17..31
      ON_KW@17..19 "on"
      WHITESPACE@19..20 " "
      UPDATE_KW@20..26 "update"
      WHITESPACE@26..27 " "
      TO_KW@27..29 "to"
      WHITESPACE@29..30 " "
      PATH@30..31
        PATH_SEGMENT@30..31
          NAME_REF@30..31
            IDENT@30..31 "t"
    WHITESPACE@31..32 " "
    RULE_DO@32..101
      DO_KW@32..34 "do"
      WHITESPACE@34..35 " "
      INSTEAD_KW@35..42 "instead"
      WHITESPACE@42..43 " "
      RULE_STMT_LIST@43..101
        L_PAREN@43..44 "("
        WHITESPACE@44..47 "\n  "
        INSERT@47..72
          INSERT_KW@47..53 "insert"
          WHITESPACE@53..54 " "
          INTO_KW@54..58 "into"
          WHITESPACE@58..59 " "
          PATH@59..60
            PATH_SEGMENT@59..60
              NAME_REF@59..60
                IDENT@59..60 "t"
          WHITESPACE@60..61 " "
          VALUES@61..71
            VALUES_KW@61..67 "values"
            WHITESPACE@67..68 " "
            ROW_LIST@68..71
              ROW@68..71
                L_PAREN@68..69 "("
                LITERAL@69..70
                  INT_NUMBER@69..70 "1"
                R_PAREN@70..71 ")"
          SEMICOLON@71..72 ";"
        WHITESPACE@72..75 "\n  "
        INSERT@75..99
          INSERT_KW@75..81 "insert"
          WHITESPACE@81..82 " "
          INTO_KW@82..86 "into"
          WHITESPACE@86..87 " "
          PATH@87..88
            PATH_SEGMENT@87..88
              NAME_REF@87..88
                IDENT@87..88 "t"
          WHITESPACE@88..89 " "
          VALUES@89..99
            VALUES_KW@89..95 "values"
            WHITESPACE@95..96 " "
            ROW_LIST@96..99
              ROW@96..99
                L_PAREN@96..97 "("
                LITERAL@97..98
                  INT_NUMBER@97..98 "2"
                R_PAREN@98..99 ")"
        WHITESPACE@99..100 "\n"
        R_PAREN@100..101 ")"
    SEMICOLON@101..102 ";"
  WHITESPACE@102..104 "\n\n"
  CREATE_RULE@104..208
    CREATE_KW@104..110 "create"
    WHITESPACE@110..111 " "
    RULE_KW@111..115 "rule"
    WHITESPACE@115..116 " "
    NAME@116..118
      IDENT@116..118 "r2"
    WHITESPACE@118..119 " "
    AS_KW@119..121 "as"
    WHITESPACE@121..122 " "
    RULE_ON@122..136
      ON_KW@122..124 "on"
      WHITESPACE@124..125 " "
      UPDATE_KW@125..131 "update"
      WHITESPACE@131..132 " "
      TO_KW@132..134 "to"
      WHITESPACE@134..135 " "
      PATH@135..136
        PATH_SEGMENT@135..136
          NAME_REF@135..136
            IDENT@135..136 "t"
    WHITESPACE@136..137 " "
    RULE_DO@137..207
      DO_KW@137..139 "do"
      WHITESPACE@139..140 " "
      INSTEAD_KW@140..147 "instead"
      WHITESPACE@147..148 " "
      RULE_STMT_LIST@148..207
        L_PAREN@148..149 "("
        WHITESPACE@149..152 "\n  "
        INSERT@152..177
          INSERT_KW@152..158 "insert"
          WHITESPACE@158..159 " "
          INTO_KW@159..163 "into"
          WHITESPACE@163..164 " "
          PATH@164..165
            PATH_SEGMENT@164..165
              NAME_REF@164..165
                IDENT@164..165 "t"
          WHITESPACE@165..166 " "
          VALUES@166..176
            VALUES_KW@166..172 "values"
            WHITESPACE@172..173 " "
            ROW_LIST@173..176
              ROW@173..176
                L_PAREN@173..174 "("
                LITERAL@174..175
                  INT_NUMBER@174..175 "1"
                R_PAREN@175..176 ")"
          SEMICOLON@176..177 ";"
        WHITESPACE@177..180 "\n  "
        INSERT@180..205
          INSERT_KW@180..186 "insert"
          WHITESPACE@186..187 " "
          INTO_KW@187..191 "into"
          WHITESPACE@191..192 " "
          PATH@192..193
            PATH_SEGMENT@192..193
              NAME_REF@192..193
                IDENT@192..193 "t"
          WHITESPACE@193..194 " "
          VALUES@194..204
            VALUES_KW@194..200 "values"
            WHITESPACE@200..201 " "
            ROW_LIST@201..204
              ROW@201..204
                L_PAREN@201..202 "("
                LITERAL@202..203
                  INT_NUMBER@202..203 "2"
                R_PAREN@203..204 ")"
          SEMICOLON@204..205 ";"
        WHITESPACE@205..206 "\n"
        R_PAREN@206..207 ")"
    SEMICOLON@207..208 ";"
  WHITESPACE@208..209 "\n"