squawk-parser 2.60.0

Linter for Postgres migrations & SQL
Documentation
---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/err/copy.sql
---
SOURCE_FILE
  COMMENT "-- missing a couple commas"
  WHITESPACE "\n"
  COPY
    COPY_KW "copy"
    WHITESPACE " "
    COPY_TABLE
      TABLE_NAME_REF
        PATH_REF
          PATH_SEGMENT_REF
            NAME_REF
              IDENT "x"
      WHITESPACE " "
      COLUMN_REF_LIST
        L_PAREN "("
        COLUMN_REF
          NAME_REF
            IDENT "i"
        WHITESPACE " "
        COLUMN_REF
          NAME_REF
            IDENT "y"
        R_PAREN ")"
    WHITESPACE " "
    COPY_FROM
      FROM_KW "from"
      WHITESPACE " "
      LITERAL
        STRING "'/tmp/input.file'"
    WHITESPACE " "
    COPY_OPTION_LIST
      L_PAREN "("
      COPY_OPTION
        NAME
          IDENT "on_error"
        WHITESPACE " "
        IGNORE_KW "ignore"
      WHITESPACE "  "
      COPY_OPTION
        NAME
          IDENT "log_verbosity"
        WHITESPACE " "
        VERBOSE_KW "verbose"
      R_PAREN ")"
    SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- legacy force option requires a target"
  WHITESPACE "\n"
  COPY
    COPY_KW "copy"
    WHITESPACE " "
    COPY_TABLE
      TABLE_NAME_REF
        PATH_REF
          PATH_SEGMENT_REF
            NAME_REF
              IDENT "t"
    WHITESPACE " "
    COPY_FROM
      FROM_KW "from"
      WHITESPACE " "
      LITERAL
        STRING "'s'"
    WHITESPACE " "
    WITH_KW "with"
    WHITESPACE " "
    FORCE_KW "force"
    SEMICOLON ";"
  WHITESPACE "\n"
  COPY
    COPY_KW "copy"
    WHITESPACE " "
    COPY_TABLE
      TABLE_NAME_REF
        PATH_REF
          PATH_SEGMENT_REF
            NAME_REF
              IDENT "t"
    WHITESPACE " "
    COPY_FROM
      FROM_KW "from"
      WHITESPACE " "
      LITERAL
        STRING "'s'"
    WHITESPACE " "
    WITH_KW "with"
    WHITESPACE " "
    FORCE_KW "force"
    WHITESPACE " "
    NULL_KW "null"
    SEMICOLON ";"
  WHITESPACE "\n"
  COPY
    COPY_KW "copy"
    WHITESPACE " "
    COPY_TABLE
      TABLE_NAME_REF
        PATH_REF
          PATH_SEGMENT_REF
            NAME_REF
              IDENT "t"
    WHITESPACE " "
    COPY_FROM
      FROM_KW "from"
      WHITESPACE " "
      LITERAL
        STRING "'s'"
    WHITESPACE " "
    WITH_KW "with"
    WHITESPACE " "
    FORCE_KW "force"
  WHITESPACE " "
  ERROR
    IDENT "zzz"
  EMPTY_STMT
    SEMICOLON ";"
  WHITESPACE "\n"
---
error[syntax-error]: expected COMMA
  ╭▸ 
2 │ copy x (i y) from '/tmp/input.file' (on_error ignore  log_verbosity verbose);
  ╰╴         ━
error[syntax-error]: expected COMMA
  ╭▸ 
2 │ copy x (i y) from '/tmp/input.file' (on_error ignore  log_verbosity verbose);
  ╰╴                                                    ━
error[syntax-error]: expected NOT, QUOTE, or NULL
  ╭▸ 
5 │ copy t from 's' with force;
  ╰╴                          ━
error[syntax-error]: expected name
  ╭▸ 
6 │ copy t from 's' with force null;
  ╰╴                               ━
error[syntax-error]: expected NOT, QUOTE, or NULL
  ╭▸ 
7 │ copy t from 's' with force zzz;
  ╰╴                          ━
error[syntax-error]: expected command, found IDENT
  ╭▸ 
7 │ copy t from 's' with force zzz;
  ╰╴                           ━