JSqlParser icon indicating copy to clipboard operation
JSqlParser copied to clipboard

Unexpected token: apply

Open Fioooooooo opened this issue 3 years ago • 3 comments

Describe the bug There is a sql which i can run with mysql success, but if with jsqlparser, got an exception

To Reproduce Steps to reproduce the behavior:

  1. Example SQL
 SELECT  remark,apply FROM oms_data
  1. Exception Log
2021-04-07 09:55:02.471  WARN 41488 --- [nio-8080-exec-1] c.b.m.e.p.i.PaginationInnerInterceptor   : optimize this sql to a count sql has exception, sql:"SELECT  
remark,apply
  FROM oms_data", exception:
net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "apply" "APPLY"
    at line 2, column 8.

Was expecting one of:

    "!"
    "("
    "*"
    "+"
    "-"
    ":"
    "?"
    "@"
    "@@"
    "ACTION"
    "ANY"
    "BYTE"
    "CASCADE"
    "CASE"
    "CAST"
    "CHANGE"
    "CHAR"
    "CHARACTER"
    "COLUMN"
    "COLUMNS"
    "COMMENT"
    "COMMIT"
    "CREATE"
    "CURRENT"
    "CYCLE"
    "DESCRIBE"
    "DISABLE"
    "DO"
    "DOUBLE"
    "DUPLICATE"
    "ENABLE"
    "END"
    "EXTRACT"
    "FALSE"
    "FIRST"
    "FN"
    "FOLLOWING"
    "GROUP"
    "GROUP_CONCAT"
    "IF"
    "IIF"
    "INDEX"
    "INSERT"
    "INTERVAL"
    "ISNULL"
    "KEY"
    "LAST"
    "LEFT"
    "LIMIT"
    "MATCH"
    "MATERIALIZED"
    "NEXTVAL"
    "NO"
    "NOLOCK"
    "NOT"
    "NULL"
    "NULLS"
    "OFFSET"
    "ON"
    "OPEN"
    "OPTIMIZE"
    "ORDER"
    "OVER"
    "PARTITION"
    "PATH"
    "PERCENT"
    "PRECISION"
    "PRIMARY"
    "PRIOR"
    "PROCEDURE"
    "RANGE"
    "READ"
    "REPLACE"
    "RIGHT"
    "ROW"
    "ROWS"
    "SCHEMA"
    "SEPARATOR"
    "SESSION"
    "SET"
    "SIBLINGS"
    "SIZE"
    "START"
    "TABLE"
    "TEMP"
    "TEMPORARY"
    "TOP"
    "TRUE"
    "TRUNCATE"
    "TYPE"
    "UNSIGNED"
    "VALIDATE"
    "VALUE"
    "VALUES"
    "VIEW"
    "XML"
    "ZONE"
    "{"
    "{d"
    "{t"
    "{ts"
    "~"
    <K_DATETIMELITERAL>
    <K_DATE_LITERAL>
    <K_TIME_KEY_EXPR>
    <S_CHAR_LITERAL>
    <S_DOUBLE>
    <S_HEX>
    <S_IDENTIFIER>
    <S_LONG>
    <S_QUOTED_IDENTIFIER>

Expected behavior A clear and concise description of what you expected to happen.

System

  • Database you are using: MySQL 5.6.16
  • Java Version: Oracle 1.8.0_251
  • JSqlParser version: 3.2

Fioooooooo avatar Apr 07 '21 02:04 Fioooooooo

There is also has the exception when i update JSqlParser vertion to 4.0

Fioooooooo avatar Apr 07 '21 02:04 Fioooooooo

apply is a keyword. I checked to adapt the grammar to allow apply as a column name. Unfortunately this is not trivial.

wumpz avatar Apr 10 '21 22:04 wumpz

Fixed by PR #1382

You can test it online and interactively here.

manticore-projects avatar Oct 19 '21 09:10 manticore-projects