[COMPASS-3366] Explain Plan not using Collation Created: 20/Dec/18  Updated: 29/Oct/23  Resolved: 23/Jan/19

Status: Closed
Project: Compass
Component/s: Compass
Affects Version/s: None
Fix Version/s: 1.18.0

Type: Bug Priority: Major - P3
Reporter: Mark Garrett Assignee: Durran Jordan
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

macOS 10.14.2
mongodb 4.0.4


Attachments: PNG File ScreenShot 2018-12-20 at 1.54.12 PM.png    
Sprint: Iteration Vol au Vent

 Description   

It would seem that the Explain Plan is not taking the Collation arguments into account when performing the query. When doing explain() on a shell, it shows me using the index, Compass does not (see attached image).

db.users.find({username:'mark.garrett@allcarepharmacy.com', isActive: true}).collation({locale:'en', strength: 2}).explain()
{
	"queryPlanner" : {
		"plannerVersion" : 1,
		"namespace" : "spp.users",
		"indexFilterSet" : false,
		"parsedQuery" : {
			"$and" : [
				{
					"isActive" : {
						"$eq" : true
					}
				},
				{
					"username" : {
						"$eq" : "mark.garrett@allcarepharmacy.com"
					}
				}
			]
		},
		"collation" : {
			"locale" : "en",
			"caseLevel" : false,
			"caseFirst" : "off",
			"strength" : 2,
			"numericOrdering" : false,
			"alternate" : "non-ignorable",
			"maxVariable" : "punct",
			"normalization" : false,
			"backwards" : false,
			"version" : "57.1"
		},
		"winningPlan" : {
			"stage" : "FETCH",
			"inputStage" : {
				"stage" : "IXSCAN",
				"keyPattern" : {
					"username" : 1,
					"isActive" : 1
				},
				"indexName" : "username_1_isActive_1",
				"collation" : {
					"locale" : "en",
					"caseLevel" : false,
					"caseFirst" : "off",
					"strength" : 2,
					"numericOrdering" : false,
					"alternate" : "non-ignorable",
					"maxVariable" : "punct",
					"normalization" : false,
					"backwards" : false,
					"version" : "57.1"
				},
				"isMultiKey" : false,
				"multiKeyPaths" : {
					"username" : [ ],
					"isActive" : [ ]
				},
				"isUnique" : true,
				"isSparse" : false,
				"isPartial" : false,
				"indexVersion" : 2,
				"direction" : "forward",
				"indexBounds" : {
					"username" : [
						"[\"A)K=\b5)KK1OO\nz)??-)K1G7)KA)-Y\b-EA\u0001$\", \"A)K=\b5)KK1OO\nz)??-)K1G7)KA)-Y\b-EA\u0001$\"]"
					],
					"isActive" : [
						"[true, true]"
					]
				}
			}
		},
		"rejectedPlans" : [ ]
	},
	"serverInfo" : {
		"host" : "xxxxxxxxxxxxxxxx",
		"port" : 27017,
		"version" : "4.0.4-1",
		"gitVersion" : "8664823baee70273f47949a8cde68bde37c69930"
	},
	"ok" : 1
}


Generated at Wed Feb 07 22:32:58 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.