Closed
Description
Describe the bug
SQL "update" statement with an array index are not recognized
To Reproduce
Steps to reproduce the behavior:
- Example SQL
update utilisateur set listes[(select cardinality(listes))] = 1;
- Parsing this SQL using JSqlParser with this statements
final String query = "update utilisateur set listes[(select cardinality(listes))] = 1;";
final List<ValidationError> validate = Validation.validate(List.of(DatabaseType.POSTGRESQL), query);
- Exception
Exception in thread "main" net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "[" "["
at line 1, column 30.
Was expecting one of:
","
"="
at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:26615)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:26454)
at net.sf.jsqlparser.parser.CCJSqlParser.Update(CCJSqlParser.java:1382)
Expected behavior
The query should be valid
This SQL statement is valid though :
select messages from liste where login = 'test' order by messages[(select cardinality(messages) from liste where idliste = 1)] asc;
System
- Database you are using : PostgreSQL 13
- Java Version : 15
- JSqlParser version : 4.0-SNAPSHOT
Metadata
Metadata
Assignees
Labels
No labels