-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Closed
Description
Consider the following test case:
CREATE TABLE T0(c0 BINARY);
CREATE VIEW V0(c0) AS SELECT T0.C0 FROM T0 WHERE (CASE NULL WHEN (NOT T0.C0) THEN 1 END);
SELECT * FROM V0;Unexpectedly, the SELECT results in a syntax error:
Caused by: org.h2.message.DbException: Syntax error in SQL statement "SELECT
""T0"".""C0""
FROM ""PUBLIC"".""T0""
WHERE CASE NULL WHEN NOT ""T0""[*].""C0"" THEN 1 END"; expected "ILIKE, REGEXP, BETWEEN, IN, LIKE" [42001-201]
at org.h2.message.DbException.getSyntaxError(DbException.java:238)
at org.h2.command.Parser.getSyntaxError(Parser.java:1260)
at org.h2.command.Parser.readConditionRightHandSide(Parser.java:3445)
at org.h2.command.Parser.readWhenOperand(Parser.java:5887)
at org.h2.command.Parser.readSimpleWhenClause(Parser.java:5870)
at org.h2.command.Parser.readCase(Parser.java:5854)
at org.h2.command.Parser.readTerm(Parser.java:5333)
at org.h2.command.Parser.readFactor(Parser.java:3652)
at org.h2.command.Parser.readSum(Parser.java:3639)
at org.h2.command.Parser.readConcat(Parser.java:3604)
at org.h2.command.Parser.readCondition(Parser.java:3390)
at org.h2.command.Parser.readExpressionWithGlobalConditions(Parser.java:3300)
at org.h2.command.Parser.parseSelect(Parser.java:3169)
at org.h2.command.Parser.parseQuerySub(Parser.java:3033)
at org.h2.command.Parser.parseSelectUnion(Parser.java:2871)
at org.h2.command.Parser.parseQuery(Parser.java:2841)
at org.h2.command.Parser.parsePrepared(Parser.java:1070)
at org.h2.command.Parser.parse(Parser.java:1045)
at org.h2.command.Parser.parse(Parser.java:1021)
at org.h2.command.Parser.prepare(Parser.java:929)
at org.h2.engine.SessionLocal.prepare(SessionLocal.java:583)
at org.h2.table.TableView.compileViewQuery(TableView.java:113)
at org.h2.table.TableView.initColumnsAndTables(TableView.java:165)
at org.h2.table.TableView.init(TableView.java:106)
at org.h2.table.TableView.<init>(TableView.java:68)
at org.h2.command.ddl.CreateView.update(CreateView.java:125)
at org.h2.command.CommandContainer.update(CommandContainer.java:173)
at org.h2.command.Command.executeUpdate(Command.java:250)
at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:236)
... 8 more
I found this based on commit f184cbf.
Metadata
Metadata
Assignees
Labels
No labels