squawk-syntax 2.65.0

Linter for Postgres migrations & SQL
Documentation
---
source: crates/squawk_syntax/src/test.rs
input_file: crates/squawk_syntax/test_data/validation/publication_except.sql
---
SOURCE_FILE@0..111
  CREATE_PUBLICATION@0..58
    CREATE_KW@0..6 "create"
    WHITESPACE@6..7 " "
    PUBLICATION_KW@7..18 "publication"
    WHITESPACE@18..19 " "
    PUBLICATION@19..20
      IDENT@19..20 "p"
    WHITESPACE@20..21 " "
    FOR_ALL_PUBLICATION_OBJECTS@21..57
      FOR_KW@21..24 "for"
      WHITESPACE@24..25 " "
      ALL_PUBLICATION_TABLES@25..35
        ALL_KW@25..28 "all"
        WHITESPACE@28..29 " "
        TABLES_KW@29..35 "tables"
      WHITESPACE@35..36 " "
      EXCEPT_TABLE_CLAUSE@36..57
        EXCEPT_KW@36..42 "except"
        WHITESPACE@42..43 " "
        L_PAREN@43..44 "("
        EXCEPT_TABLE_NAME@44..46
          TABLE_RELATION_NAME@44..46
            TABLE_NAME_REF@44..46
              PATH_REF@44..46
                PATH_SEGMENT_REF@44..46
                  IDENT@44..46 "t1"
        COMMA@46..47 ","
        WHITESPACE@47..48 " "
        EXCEPT_TABLE_NAME@48..56
          TABLE_KW@48..53 "table"
          WHITESPACE@53..54 " "
          TABLE_RELATION_NAME@54..56
            TABLE_NAME_REF@54..56
              PATH_REF@54..56
                PATH_SEGMENT_REF@54..56
                  IDENT@54..56 "t2"
        R_PAREN@56..57 ")"
    SEMICOLON@57..58 ";"
  WHITESPACE@58..59 "\n"
  CREATE_PUBLICATION@59..110
    CREATE_KW@59..65 "create"
    WHITESPACE@65..66 " "
    PUBLICATION_KW@66..77 "publication"
    WHITESPACE@77..78 " "
    PUBLICATION@78..79
      IDENT@78..79 "p"
    WHITESPACE@79..80 " "
    FOR_ALL_PUBLICATION_OBJECTS@80..109
      FOR_KW@80..83 "for"
      WHITESPACE@83..84 " "
      ALL_PUBLICATION_TABLES@84..94
        ALL_KW@84..87 "all"
        WHITESPACE@87..88 " "
        TABLES_KW@88..94 "tables"
      WHITESPACE@94..95 " "
      EXCEPT_TABLE_CLAUSE@95..109
        EXCEPT_KW@95..101 "except"
        WHITESPACE@101..102 " "
        L_PAREN@102..103 "("
        EXCEPT_TABLE_NAME@103..108
          TABLE_KW@103..108 "table"
        R_PAREN@108..109 ")"
    SEMICOLON@109..110 ";"
  WHITESPACE@110..111 "\n"

error[syntax-error]: The first table in an EXCEPT list must use the TABLE keyword
  ╭▸ 
1 │ create publication p for all tables except (t1, table t2);
  ╰╴                                            ━━
error[syntax-error]: Expected a table relation name
  ╭▸ 
2 │ create publication p for all tables except (table);
  ╰╴                                            ━━━━━