[
https://issues.apache.org/jira/browse/CALCITE-6026?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tim Nieradzik updated CALCITE-6026:
-----------------------------------
Description:
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.
was:
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.
> 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
> Priority: Major
>
> 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)