-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Closed
Description
Consider the following test case:
CREATE TABLE T0(c0 INT AS (1), c1 INT);
MERGE INTO T0(C0) KEY(C1) VALUES (1); -- Syntax error in SQL statement "UPDATE ""PUBLIC"".""T0"" SET WHERE[*] ""C1""=?"The MERGE INTO seems to result in an internal syntax error, while I would expect that the query would be rejected:
Syntax error in SQL statement "UPDATE ""PUBLIC"".""T0"" SET WHERE[*] ""C1""=?"; expected "identifier"; SQL statement:
UPDATE "PUBLIC"."T0" SET WHERE "C1"=? [42001-201] 42001/42001 (Hilfe)
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "UPDATE ""PUBLIC"".""T0"" SET WHERE[*] ""C1""=?"; expected "identifier"; SQL statement:
UPDATE "PUBLIC"."T0" SET WHERE "C1"=? [42001-201]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:459)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:435)
at org.h2.message.DbException.getSyntaxError(DbException.java:238)
at org.h2.command.Parser.readColumnIdentifier(Parser.java:6044)
at org.h2.command.Parser.readTableColumn(Parser.java:1434)
at org.h2.command.Parser.readUpdateSetClause(Parser.java:1503)
at org.h2.command.Parser.parseUpdate(Parser.java:1475)
at org.h2.command.Parser.parsePrepared(Parser.java:1209)
at org.h2.command.Parser.parse(Parser.java:1045)
at org.h2.command.Parser.parse(Parser.java:1017)
at org.h2.command.Parser.prepare(Parser.java:929)
at org.h2.engine.SessionLocal.prepare(SessionLocal.java:583)
at org.h2.engine.SessionLocal.prepare(SessionLocal.java:567)
at org.h2.command.dml.Merge.prepare(Merge.java:327)
at org.h2.command.Parser.prepareCommand(Parser.java:951)
I found this based on commit 073bbb8.
Metadata
Metadata
Assignees
Labels
No labels