ParseException when querying collection with especial characters

16 views
Skip to first unread message

Ivan Montilla

unread,
Jan 27, 2020, 7:49:50 AM1/27/20
to RavenDB - 2nd generation document database
await session.Query<Order>(collectionName: "Core/Order")
   
.Where(order => order.Steps.Any(step => step.State == StepState.Launched))
   
.ToArrayAsync(cancellationToken);

When running this query, I get this exception:

Raven.Client.Exceptions.RavenException
  HResult=0x80131500
  Message=Raven.Server.Documents.Queries.Parser.QueryParser+ParseException: 1:10 Expected end of query but got: /Order
Query: 
from Core/Order where Steps[].State = $p0
   at Raven.Server.Documents.Queries.Parser.QueryParser.ThrowParseException(String msg) in C:\Builds\RavenDB-Stable-4.2\42021\src\Raven.Server\Documents\Queries\Parser\QueryParser.cs:line 1930
   at Raven.Server.Documents.Queries.QueryMetadata.ParseQuery(String q, QueryType queryType, DocumentDatabase database) in C:\Builds\RavenDB-Stable-4.2\42021\src\Raven.Server\Documents\Queries\QueryMetadata.cs:line 49
   at Raven.Server.Documents.Queries.IndexQueryServerSide.Create(HttpContext httpContext, BlittableJsonReaderObject json, QueryMetadataCache cache, RequestTimeTracker tracker, DocumentDatabase database, QueryType queryType) in C:\Builds\RavenDB-Stable-4.2\42021\src\Raven.Server\Documents\Queries\IndexQueryServerSide.cs:line 102
   at Raven.Server.Documents.Handlers.QueriesHandler.GetIndexQuery(JsonOperationContext context, HttpMethod method, RequestTimeTracker tracker)
   at Raven.Server.Documents.Handlers.QueriesHandler.Query(DocumentsOperationContext context, OperationCancelToken token, RequestTimeTracker tracker, HttpMethod method, Boolean diagnostics) in C:\Builds\RavenDB-Stable-4.2\42021\src\Raven.Server\Documents\Handlers\QueriesHandler.cs:line 115
   at Raven.Server.Documents.Handlers.QueriesHandler.HandleQuery(HttpMethod httpMethod) in C:\Builds\RavenDB-Stable-4.2\42021\src\Raven.Server\Documents\Handlers\QueriesHandler.cs:line 62
   at Raven.Server.Routing.RequestRouter.HandlePath(RequestHandlerContext reqCtx) in C:\Builds\RavenDB-Stable-4.2\42021\src\Raven.Server\Routing\RequestRouter.cs:line 169
   at Raven.Server.RavenServerStartup.RequestHandler(HttpContext context) in C:\Builds\RavenDB-Stable-4.2\42021\src\Raven.Server\RavenServerStartup.cs:line 173. Response: {"Url":"/databases/vadavo_vicim/queries?queryHash=16471309408474900613","Type":"Raven.Server.Documents.Queries.Parser.QueryParser+ParseException","Message":"1:10 Expected end of query but got: /Order\r\nQuery: \r\nfrom Core/Order where Steps[].State = $p0","Error":"Raven.Server.Documents.Queries.Parser.QueryParser+ParseException: 1:10 Expected end of query but got: /Order\r\nQuery: \r\nfrom Core/Order where Steps[].State = $p0\r\n   at Raven.Server.Documents.Queries.Parser.QueryParser.ThrowParseException(String msg) in C:\\Builds\\RavenDB-Stable-4.2\\42021\\src\\Raven.Server\\Documents\\Queries\\Parser\\QueryParser.cs:line 1930\r\n   at Raven.Server.Documents.Queries.QueryMetadata.ParseQuery(String q, QueryType queryType, DocumentDatabase database) in C:\\Builds\\RavenDB-Stable-4.2\\42021\\src\\Raven.Server\\Documents\\Queries\\QueryMetadata.cs:line 49\r\n   at Raven.Server.Documents.Queries.IndexQueryServerSide.Create(HttpContext httpContext, BlittableJsonReaderObject json, QueryMetadataCache cache, RequestTimeTracker tracker, DocumentDatabase database, QueryType queryType) in C:\\Builds\\RavenDB-Stable-4.2\\42021\\src\\Raven.Server\\Documents\\Queries\\IndexQueryServerSide.cs:line 102\r\n   at Raven.Server.Documents.Handlers.QueriesHandler.GetIndexQuery(JsonOperationContext context, HttpMethod method, RequestTimeTracker tracker)\r\n   at Raven.Server.Documents.Handlers.QueriesHandler.Query(DocumentsOperationContext context, OperationCancelToken token, RequestTimeTracker tracker, HttpMethod method, Boolean diagnostics) in C:\\Builds\\RavenDB-Stable-4.2\\42021\\src\\Raven.Server\\Documents\\Handlers\\QueriesHandler.cs:line 115\r\n   at Raven.Server.Documents.Handlers.QueriesHandler.HandleQuery(HttpMethod httpMethod) in C:\\Builds\\RavenDB-Stable-4.2\\42021\\src\\Raven.Server\\Documents\\Handlers\\QueriesHandler.cs:line 62\r\n   at Raven.Server.Routing.RequestRouter.HandlePath(RequestHandlerContext reqCtx) in C:\\Builds\\RavenDB-Stable-4.2\\42021\\src\\Raven.Server\\Routing\\RequestRouter.cs:line 169\r\n   at Raven.Server.RavenServerStartup.RequestHandler(HttpContext context) in C:\\Builds\\RavenDB-Stable-4.2\\42021\\src\\Raven.Server\\RavenServerStartup.cs:line 173"}
  Source=Raven.Client
  StackTrace:
   at Raven.Client.Exceptions.ExceptionDispatcher.<Throw>d__2.MoveNext() in C:\Builds\RavenDB-Stable-4.2\42028\src\Raven.Client\Exceptions\ExceptionDispatcher.cs:line 84
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()
   at Raven.Client.Http.RequestExecutor.<HandleUnsuccessfulResponse>d__109`1.MoveNext() in C:\Builds\RavenDB-Stable-4.2\42028\src\Raven.Client\Http\RequestExecutor.cs:line 1271
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   at Raven.Client.Http.RequestExecutor.<ExecuteAsync>d__92`1.MoveNext() in C:\Builds\RavenDB-Stable-4.2\42028\src\Raven.Client\Http\RequestExecutor.cs:line 960
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Raven.Client.Http.RequestExecutor.<ExecuteAsync>d__92`1.MoveNext() in C:\Builds\RavenDB-Stable-4.2\42028\src\Raven.Client\Http\RequestExecutor.cs:line 1000
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()
   at Raven.Client.Documents.Session.AsyncDocumentQuery`1.<ExecuteActualQueryAsync>d__135.MoveNext() in C:\Builds\RavenDB-Stable-4.2\42028\src\Raven.Client\Documents\Session\AsyncDocumentQuery.cs:line 1020
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()
   at Raven.Client.Documents.Session.AsyncDocumentQuery`1.<InitAsync>d__134.MoveNext() in C:\Builds\RavenDB-Stable-4.2\42028\src\Raven.Client\Documents\Session\AsyncDocumentQuery.cs:line 1009
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()
   at Raven.Client.Documents.Session.AsyncDocumentQuery`1.<ExecuteQueryOperationInternal>d__130.MoveNext() in C:\Builds\RavenDB-Stable-4.2\42028\src\Raven.Client\Documents\Session\AsyncDocumentQuery.cs:line 969
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()
   at Raven.Client.Documents.Session.AsyncDocumentQuery`1.<ExecuteQueryOperationAsArray>d__129.MoveNext() in C:\Builds\RavenDB-Stable-4.2\42028\src\Raven.Client\Documents\Session\AsyncDocumentQuery.cs:line 960
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Vadavo.Vicim.Areas.Orders.HostedServices.OrderWorker.<ExecuteByTimerAsync>d__7.MoveNext() in C:\Users\monty\RiderProjects\Vadavo.Vicim\Vadavo.Vicim.Extension\Areas\Orders\HostedServices\OrderWorker.cs:line 53

  This exception was originally thrown at this call stack:
    Raven.Client.Exceptions.ExceptionDispatcher.Throw(Sparrow.Json.JsonOperationContext, System.Net.Http.HttpResponseMessage, System.Action<System.Text.StringBuilder>) in ExceptionDispatcher.cs
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
    ...
    [Call Stack Truncated]


As I can see, the generated query is 

from Core/Order where Steps[].State = $p0

But when I try to query "Core/Order" collection in studio, I notice that the collection name in RQL is wrapped with single quotes (because the / character in collectio name).

Should the client wrap collection name with quotes when generating RQL? Is this a bug?

Oren Eini (Ayende Rahien)

unread,
Jan 27, 2020, 10:57:05 AM1/27/20
to ravendb

--
You received this message because you are subscribed to the Google Groups "RavenDB - 2nd generation document database" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ravendb+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ravendb/e2406cc6-09eb-4458-819b-dc5e79bb3e15%40googlegroups.com.


--
Oren Eini
CEO   /   Hibernating Rhinos LTD
Skype:  ayenderahien
Support:  sup...@ravendb.net
Reply all
Reply to author
Forward
0 new messages