squawk-syntax 2.66.0

Linter for Postgres migrations & SQL
Documentation
---
source: crates/squawk_syntax/src/test.rs
input_file: crates/squawk_parser/tests/data/plpgsql/ok/raise_stmt.sql
---
PLPGSQL@0..519
  WHITESPACE@0..1 "\n"
  PLPGSQL_BLOCK@1..518
    PLPGSQL_DECLARE_SECTION@1..26
      DECLARE_KW@1..8 "declare"
      WHITESPACE@8..11 "\n  "
      PLPGSQL_VAR_DECL@11..26
        PLPGSQL_VAR_NAME@11..16
          IDENT@11..16 "raise"
        WHITESPACE@16..17 " "
        PATH_TYPE@17..20
          PATH_REF@17..20
            PATH_SEGMENT_REF@17..20
              INT_KW@17..20 "int"
        WHITESPACE@20..21 " "
        PLPGSQL_VAR_INIT@21..25
          COLON_EQ@21..23 ":="
          WHITESPACE@23..24 " "
          PLPGSQL_EXPR@24..25
            TARGET_LIST@24..25
              TARGET@24..25
                LITERAL@24..25
                  INT_NUMBER@24..25 "1"
        SEMICOLON@25..26 ";"
    WHITESPACE@26..27 "\n"
    BEGIN_KW@27..32 "begin"
    WHITESPACE@32..35 "\n  "
    PLPGSQL_BODY@35..514
      PLPGSQL_RAISE_STMT@35..41
        RAISE_KW@35..40 "raise"
        SEMICOLON@40..41 ";"
      WHITESPACE@41..44 "\n  "
      PLPGSQL_RAISE_STMT@44..65
        RAISE_KW@44..49 "raise"
        WHITESPACE@49..50 " "
        PLPGSQL_RAISE_LEVEL@50..56
          NOTICE_KW@50..56 "notice"
        WHITESPACE@56..57 " "
        PLPGSQL_RAISE_MESSAGE@57..64
          LITERAL@57..64
            STRING@57..64 "'plain'"
        SEMICOLON@64..65 ";"
      WHITESPACE@65..68 "\n  "
      PLPGSQL_RAISE_STMT@68..97
        RAISE_KW@68..73 "raise"
        WHITESPACE@73..74 " "
        PLPGSQL_RAISE_LEVEL@74..80
          NOTICE_KW@74..80 "notice"
        WHITESPACE@80..81 " "
        PLPGSQL_RAISE_MESSAGE@81..90
          LITERAL@81..90
            STRING@81..90 "'fmt % %'"
        COMMA@90..91 ","
        WHITESPACE@91..92 " "
        PLPGSQL_EXPR@92..93
          TARGET_LIST@92..93
            TARGET@92..93
              LITERAL@92..93
                INT_NUMBER@92..93 "1"
        COMMA@93..94 ","
        WHITESPACE@94..95 " "
        PLPGSQL_EXPR@95..96
          TARGET_LIST@95..96
            TARGET@95..96
              LITERAL@95..96
                INT_NUMBER@95..96 "2"
        SEMICOLON@96..97 ";"
      WHITESPACE@97..100 "\n  "
      PLPGSQL_RAISE_STMT@100..117
        RAISE_KW@100..105 "raise"
        WHITESPACE@105..106 " "
        PLPGSQL_RAISE_MESSAGE@106..116
          LITERAL@106..116
            STRING@106..116 "'no level'"
        SEMICOLON@116..117 ";"
      WHITESPACE@117..120 "\n  "
      PLPGSQL_RAISE_STMT@120..168
        RAISE_KW@120..125 "raise"
        WHITESPACE@125..126 " "
        PLPGSQL_RAISE_LEVEL@126..135
          EXCEPTION_KW@126..135 "exception"
        WHITESPACE@135..136 " "
        PLPGSQL_RAISE_MESSAGE@136..142
          LITERAL@136..142
            STRING@136..142 "'boom'"
        WHITESPACE@142..143 " "
        PLPGSQL_RAISE_USING_CLAUSE@143..167
          USING_KW@143..148 "using"
          WHITESPACE@148..149 " "
          PLPGSQL_RAISE_OPTION_ERRCODE@149..167
            ERRCODE_KW@149..156 "errcode"
            WHITESPACE@156..157 " "
            COLON_EQ@157..159 ":="
            WHITESPACE@159..160 " "
            PLPGSQL_EXPR@160..167
              TARGET_LIST@160..167
                TARGET@160..167
                  LITERAL@160..167
                    STRING@160..167 "'22012'"
        SEMICOLON@167..168 ";"
      WHITESPACE@168..171 "\n  "
      PLPGSQL_RAISE_STMT@171..231
        RAISE_KW@171..176 "raise"
        WHITESPACE@176..177 " "
        PLPGSQL_RAISE_LEVEL@177..184
          WARNING_KW@177..184 "warning"
        WHITESPACE@184..185 " "
        PLPGSQL_RAISE_USING_CLAUSE@185..230
          USING_KW@185..190 "using"
          WHITESPACE@190..191 " "
          PLPGSQL_RAISE_OPTION_MESSAGE@191..204
            MESSAGE_KW@191..198 "message"
            WHITESPACE@198..199 " "
            EQ@199..200 "="
            WHITESPACE@200..201 " "
            PLPGSQL_EXPR@201..204
              TARGET_LIST@201..204
                TARGET@201..204
                  LITERAL@201..204
                    STRING@201..204 "'m'"
          COMMA@204..205 ","
          WHITESPACE@205..206 " "
          PLPGSQL_RAISE_OPTION_DETAIL@206..218
            DETAIL_KW@206..212 "detail"
            WHITESPACE@212..213 " "
            EQ@213..214 "="
            WHITESPACE@214..215 " "
            PLPGSQL_EXPR@215..218
              TARGET_LIST@215..218
                TARGET@215..218
                  LITERAL@215..218
                    STRING@215..218 "'d'"
          COMMA@218..219 ","
          WHITESPACE@219..220 " "
          PLPGSQL_RAISE_OPTION_HINT@220..230
            HINT_KW@220..224 "hint"
            WHITESPACE@224..225 " "
            EQ@225..226 "="
            WHITESPACE@226..227 " "
            PLPGSQL_EXPR@227..230
              TARGET_LIST@227..230
                TARGET@227..230
                  LITERAL@227..230
                    STRING@227..230 "'h'"
        SEMICOLON@230..231 ";"
      WHITESPACE@231..234 "\n  "
      PLPGSQL_RAISE_STMT@234..334
        RAISE_KW@234..239 "raise"
        WHITESPACE@239..240 " "
        PLPGSQL_RAISE_LEVEL@240..249
          EXCEPTION_KW@240..249 "exception"
        WHITESPACE@249..250 " "
        PLPGSQL_RAISE_USING_CLAUSE@250..333
          USING_KW@250..255 "using"
          WHITESPACE@255..256 " "
          PLPGSQL_RAISE_OPTION_COLUMN@256..268
            COLUMN_KW@256..262 "column"
            WHITESPACE@262..263 " "
            EQ@263..264 "="
            WHITESPACE@264..265 " "
            PLPGSQL_EXPR@265..268
              TARGET_LIST@265..268
                TARGET@265..268
                  LITERAL@265..268
                    STRING@265..268 "'c'"
          COMMA@268..269 ","
          WHITESPACE@269..270 " "
          PLPGSQL_RAISE_OPTION_CONSTRAINT@270..286
            CONSTRAINT_KW@270..280 "constraint"
            WHITESPACE@280..281 " "
            EQ@281..282 "="
            WHITESPACE@282..283 " "
            PLPGSQL_EXPR@283..286
              TARGET_LIST@283..286
                TARGET@283..286
                  LITERAL@283..286
                    STRING@283..286 "'k'"
          COMMA@286..287 ","
          WHITESPACE@287..288 " "
          PLPGSQL_RAISE_OPTION_DATATYPE@288..302
            DATATYPE_KW@288..296 "datatype"
            WHITESPACE@296..297 " "
            EQ@297..298 "="
            WHITESPACE@298..299 " "
            PLPGSQL_EXPR@299..302
              TARGET_LIST@299..302
                TARGET@299..302
                  LITERAL@299..302
                    STRING@299..302 "'d'"
          COMMA@302..303 ","
          WHITESPACE@303..308 "\n    "
          PLPGSQL_RAISE_OPTION_TABLE@308..319
            TABLE_KW@308..313 "table"
            WHITESPACE@313..314 " "
            EQ@314..315 "="
            WHITESPACE@315..316 " "
            PLPGSQL_EXPR@316..319
              TARGET_LIST@316..319
                TARGET@316..319
                  LITERAL@316..319
                    STRING@316..319 "'t'"
          COMMA@319..320 ","
          WHITESPACE@320..321 " "
          PLPGSQL_RAISE_OPTION_SCHEMA@321..333
            SCHEMA_KW@321..327 "schema"
            WHITESPACE@327..328 " "
            EQ@328..329 "="
            WHITESPACE@329..330 " "
            PLPGSQL_EXPR@330..333
              TARGET_LIST@330..333
                TARGET@330..333
                  LITERAL@330..333
                    STRING@330..333 "'s'"
        SEMICOLON@333..334 ";"
      WHITESPACE@334..337 "\n  "
      PLPGSQL_RAISE_STMT@337..360
        RAISE_KW@337..342 "raise"
        WHITESPACE@342..343 " "
        PLPGSQL_CONDITION@343..359
          IDENT@343..359 "division_by_zero"
        SEMICOLON@359..360 ";"
      WHITESPACE@360..363 "\n  "
      PLPGSQL_RAISE_STMT@363..386
        RAISE_KW@363..368 "raise"
        WHITESPACE@368..369 " "
        PLPGSQL_CONDITION@369..385
          SQLSTATE_KW@369..377 "sqlstate"
          WHITESPACE@377..378 " "
          STRING@378..385 "'22012'"
        SEMICOLON@385..386 ";"
      WHITESPACE@386..389 "\n  "
      PLPGSQL_RAISE_STMT@389..407
        RAISE_KW@389..394 "raise"
        WHITESPACE@394..395 " "
        PLPGSQL_RAISE_LEVEL@395..400
          DEBUG_KW@395..400 "debug"
        WHITESPACE@400..401 " "
        PLPGSQL_RAISE_MESSAGE@401..406
          LITERAL@401..406
            STRING@401..406 "'dbg'"
        SEMICOLON@406..407 ";"
      WHITESPACE@407..410 "\n  "
      PLPGSQL_RAISE_STMT@410..425
        RAISE_KW@410..415 "raise"
        WHITESPACE@415..416 " "
        PLPGSQL_RAISE_LEVEL@416..419
          LOG_KW@416..419 "log"
        WHITESPACE@419..420 " "
        PLPGSQL_RAISE_MESSAGE@420..424
          LITERAL@420..424
            STRING@420..424 "'lg'"
        SEMICOLON@424..425 ";"
      WHITESPACE@425..428 "\n  "
      PLPGSQL_RAISE_STMT@428..444
        RAISE_KW@428..433 "raise"
        WHITESPACE@433..434 " "
        PLPGSQL_RAISE_LEVEL@434..438
          INFO_KW@434..438 "info"
        WHITESPACE@438..439 " "
        PLPGSQL_RAISE_MESSAGE@439..443
          LITERAL@439..443
            STRING@439..443 "'nf'"
        SEMICOLON@443..444 ";"
      WHITESPACE@444..447 "\n  "
      PLPGSQL_RAISE_STMT@447..467
        RAISE_KW@447..452 "raise"
        WHITESPACE@452..453 " "
        PLPGSQL_RAISE_LEVEL@453..459
          NOTICE_KW@453..459 "notice"
        WHITESPACE@459..460 " "
        PLPGSQL_RAISE_MESSAGE@460..466
          LITERAL@460..466
            ESC_STRING@460..466 "E'esc'"
        SEMICOLON@466..467 ";"
      WHITESPACE@467..470 "\n  "
      PLPGSQL_RAISE_STMT@470..500
        RAISE_KW@470..475 "raise"
        WHITESPACE@475..476 " "
        PLPGSQL_RAISE_USING_CLAUSE@476..499
          USING_KW@476..481 "using"
          WHITESPACE@481..482 " "
          PLPGSQL_RAISE_OPTION_ERRCODE@482..499
            ERRCODE_KW@482..489 "errcode"
            WHITESPACE@489..490 " "
            EQ@490..491 "="
            WHITESPACE@491..492 " "
            PLPGSQL_EXPR@492..499
              TARGET_LIST@492..499
                TARGET@492..499
                  LITERAL@492..499
                    STRING@492..499 "'22012'"
        SEMICOLON@499..500 ";"
      WHITESPACE@500..503 "\n  "
      PLPGSQL_ASSIGN_STMT@503..514
        PLPGSQL_ASSIGN_TARGET@503..508
          PLPGSQL_VAR_NAME_REF@503..508
            IDENT@503..508 "raise"
        WHITESPACE@508..509 " "
        COLON_EQ@509..511 ":="
        WHITESPACE@511..512 " "
        PLPGSQL_EXPR@512..513
          TARGET_LIST@512..513
            TARGET@512..513
              LITERAL@512..513
                INT_NUMBER@512..513 "2"
        SEMICOLON@513..514 ";"
    WHITESPACE@514..515 "\n"
    END_KW@515..518 "end"
  WHITESPACE@518..519 "\n"