-
-
Notifications
You must be signed in to change notification settings - Fork 88
Closed
Description
ArcadeDB Version: v23.1.2 (build 9dbe3ce/1675373316135/main)
JDK Version: openjdk 11.0.18 2023-01-17
OS: MacOS 12.6
Accessing a field from a sub-query in a projection, like:
SELECT (SELECT name FROM doc).name;
produces an error, while when wrapping the error in a function it works (see below).
Expected behavior
["test"]
Actual behavior
Cannot execute command Encountered " <SELECT> "SELECT "" at line 1, column 1.
Was expecting one of: <WHILE> ... <IF> ... <FOREACH> ... ";" ...
Details
Error on command execution (PostCommandHandler)
com.arcadedb.exception.CommandSQLParsingException: com.arcadedb.query.sql.parser.ParseException: Encountered " <SELECT> "SELECT "" at line 1, column 1.
Was expecting one of:
<WHILE> ...
<IF> ...
<FOREACH> ...
";" ...
at com.arcadedb.query.sql.SQLQueryEngine.parseScript(SQLQueryEngine.java:220)
at com.arcadedb.query.sql.SQLQueryEngine.parseScript(SQLQueryEngine.java:212)
at com.arcadedb.database.EmbeddedDatabase.execute(EmbeddedDatabase.java:1264)
at com.arcadedb.server.ServerDatabase.execute(ServerDatabase.java:421)
at com.arcadedb.server.http.handler.PostCommandHandler.executeScript(PostCommandHandler.java:118)
at com.arcadedb.server.http.handler.PostCommandHandler.execute(PostCommandHandler.java:87)
at com.arcadedb.server.http.handler.DatabaseAbstractHandler.execute(DatabaseAbstractHandler.java:91)
at com.arcadedb.server.http.handler.AbstractHandler.handleRequest(AbstractHandler.java:128)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859)
at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.arcadedb.query.sql.parser.ParseException: Encountered " <SELECT> "SELECT "" at line 1, column 1.
Was expecting one of:
<WHILE> ...
<IF> ...
<FOREACH> ...
";" ...
at com.arcadedb.query.sql.parser.SqlParser.generateParseException(SqlParser.java:26917)
at com.arcadedb.query.sql.parser.SqlParser.jj_consume_token(SqlParser.java:26762)
at com.arcadedb.query.sql.parser.SqlParser.ParseScript(SqlParser.java:467)
at com.arcadedb.query.sql.SQLQueryEngine.parseScript(SQLQueryEngine.java:218)
... 14 more
Steps to reproduce
CREATE DOCUMENT TYPE doc;
CREATE PROPERTY doc.name STRING;
INSERT INTO doc SET name = 'test';
SELECT (SELECT name FROM doc).name;
Note: The following variants work as expected:
SELECT coalesce((SELECT name FROM doc)).name;
SELECT $temp.name LET $temp = (SELECT name FROM doc);