Tim Nieradzik created CALCITE-6026:
--------------------------------------
Summary: MongoDB: Column is not quoted in "order by" clause and
throws JsonParseException
Key: CALCITE-6026
URL: https://issues.apache.org/jira/browse/CALCITE-6026
Project: Calcite
Issue Type: Bug
Components: mongodb-adapter
Reporter: Tim Nieradzik
Assignee: Tim Nieradzik
The following query fails with a JsonParseException:
{code:java}
select state as "STATE", avg(pop) as "AVG(pop)"
from zips
group by "STATE"
order by "AVG(pop)" {code}
Stack trace:
{code:java}
org.bson.json.JsonParseException: JSON reader was expecting ':' but found '('.
at org.bson.json.JsonReader.readBsonType(JsonReader.java:150)
at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:85)
at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:42)
at
org.bson.codecs.BsonDocumentCodec.readValue(BsonDocumentCodec.java:104)
at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:87)
at org.bson.BsonDocument.parse(BsonDocument.java:66)
at
org.apache.calcite.adapter.mongodb.MongoTable.aggregate(MongoTable.java:138)
at
org.apache.calcite.adapter.mongodb.MongoTable.access$200(MongoTable.java:53)
at
org.apache.calcite.adapter.mongodb.MongoTable$MongoQueryable.aggregate(MongoTable.java:189)
{code}
This is caused by the column name in the "ORDER BY" clause not being escaped.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)