-
-
Notifications
You must be signed in to change notification settings - Fork 98
Closed
Labels
wontfixThis will not be worked onThis will not be worked on
Description
ArcadeDB Server v23.3.1 (build da609e4/1680693032550/main)
Running on Mac OS X 12.6.4 - OpenJDK 64-Bit Server VM Homebrew
Escaping double quotes in a single-quote string, or escaping single quotes in a double-quotes string produces an error.
Expected behavior
Either this yields the respective unescaped or escaped strings as it either has or hasn't special meaning, but raising an error seems inadequate, or am I overlooking a corner case?
Actual behavior
Lexical error at line 1, column 10. Encountered: " '" (39), after : " " "
Error on command execution (PostCommandHandler)
com.arcadedb.exception.CommandSQLParsingException: SELECT "\'" limit 25
at com.arcadedb.query.sql.parser.StatementCache.throwParsingException(StatementCache.java:130)
at com.arcadedb.query.sql.parser.StatementCache.parse(StatementCache.java:118)
at com.arcadedb.query.sql.parser.StatementCache.get(StatementCache.java:70)
at com.arcadedb.query.sql.SQLQueryEngine.parse(SQLQueryEngine.java:202)
at com.arcadedb.query.sql.SQLQueryEngine.command(SQLQueryEngine.java:95)
at com.arcadedb.database.EmbeddedDatabase.command(EmbeddedDatabase.java:1264)
at com.arcadedb.server.ServerDatabase.command(ServerDatabase.java:421)
at com.arcadedb.server.http.handler.PostCommandHandler.executeCommand(PostCommandHandler.java:127)
at com.arcadedb.server.http.handler.PostCommandHandler.execute(PostCommandHandler.java:88)
at com.arcadedb.server.http.handler.DatabaseAbstractHandler.execute(DatabaseAbstractHandler.java:92)
at com.arcadedb.server.http.handler.AbstractHandler.handleRequest(AbstractHandler.java:127)
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.TokenMgrError: Lexical error at line 1, column 10. Encountered: "\'" (39), after : "\"\\"
at com.arcadedb.query.sql.parser.SqlParserTokenManager.getNextToken(SqlParserTokenManager.java:5758)
at com.arcadedb.query.sql.parser.SqlParser.jj_scan_token(SqlParser.java:26804)
at com.arcadedb.query.sql.parser.SqlParser.jj_3R_ProjectionItem_1775_4_313(SqlParser.java:25587)
at com.arcadedb.query.sql.parser.SqlParser.jj_3R_ProjectionItem_1775_3_141(SqlParser.java:25595)
at com.arcadedb.query.sql.parser.SqlParser.jj_3R_Projection_1758_5_516(SqlParser.java:25652)
at com.arcadedb.query.sql.parser.SqlParser.jj_3R_Projection_1757_3_416(SqlParser.java:25665)
at com.arcadedb.query.sql.parser.SqlParser.jj_3R_SelectStatement_1143_7_282(SqlParser.java:20415)
at com.arcadedb.query.sql.parser.SqlParser.jj_3R_SelectStatement_1141_3_128(SqlParser.java:20454)
at com.arcadedb.query.sql.parser.SqlParser.jj_3R_QueryStatement_1106_5_354(SqlParser.java:20705)
at com.arcadedb.query.sql.parser.SqlParser.jj_3R_QueryStatement_1105_3_172(SqlParser.java:20731)
at com.arcadedb.query.sql.parser.SqlParser.jj_3R_StatementInternal_974_9_96(SqlParser.java:21596)
at com.arcadedb.query.sql.parser.SqlParser.jj_3_35(SqlParser.java:21636)
at com.arcadedb.query.sql.parser.SqlParser.jj_2_35(SqlParser.java:17519)
at com.arcadedb.query.sql.parser.SqlParser.StatementInternal(SqlParser.java:1263)
at com.arcadedb.query.sql.parser.SqlParser.Statement(SqlParser.java:1038)
at com.arcadedb.query.sql.parser.SqlParser.Parse(SqlParser.java:244)
at com.arcadedb.query.sql.parser.StatementCache.parse(StatementCache.java:111)
... 16 more
Steps to reproduce
SELECT "\""; -- works
SELECT '\''; -- works
SELECT "\'"; -- errors
SELECT '\"'; -- errors
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
wontfixThis will not be worked onThis will not be worked on