Details
Description
We have come across a problem that was introduced with this change: SERVER-34012. The exact line causing this is https://github.com/mongodb/mongo/blame/master/src/mongo/db/matcher/expression_tree.cpp#L250.
This problem can only be seen on MongoDB v5, earlier versions work properly.
Steps to reproduce:
Create "some" collection and then run:
db.getCollection("some").aggregate({$match: { "$or" : [ { "x" : "a" }, { "x" : "b" }, { "x" : /c/ }] } }) |
Expected output: No failure.
Output:
uncaught exception: Error: command failed: {
|
"ok" : 0,
|
"errmsg" : "Failed to optimize pipeline :: caused by :: Failed to optimize expression :: caused by :: Incorrect number of non-equivalent expressions",
|
"code" : 3401204,
|
"codeName" : "Location3401204"
|
} with original command request: {
|
"aggregate" : "FileNodeVersions",
|
"pipeline" : [
|
{
|
"$match" : {
|
"$or" : [
|
{
|
"x" : "a"
|
},
|
{
|
"x" : "b"
|
},
|
{
|
"x" : /c/
|
}
|
]
|
}
|
}
|
],
|
"cursor" : {
|
|
},
|
"lsid" : {
|
"id" : UUID("af1c7696-912f-4ad8-a53b-8eb9db5c0162")
|
}
|
Attachments
Issue Links
- is related to
-
SERVER-34012 Planner's logic for taking union of index bounds intervals is slow for large $or queries
-
- Closed
-