Details
-
Improvement
-
Resolution: Fixed
-
Critical
-
4.5.0
-
4.5.0-1848
Description
Index created:
CREATE INDEX `idxcover` ON `default`((meta(`default`).`type`),`name`)
select query:
explain SELECT count(meta(default).type) FROM default where meta(default).type = "json" ;'
this uses the right index:
[
{
"plan": {
"#operator": "Sequence",
"~children": [
{
"#operator": "IndexScan",
"covers": [
"cover ((meta(`default`).`type`))",
"cover ((`default`.`name`))",
"cover ((meta(`default`).`id`))"
],
"index": "idxcover",
"keyspace": "default",
"namespace": "default",
"spans": [
{
"Range":
}
],
"using": "gsi"
},
{
"#operator": "Parallel",
"~child": {
"#operator": "Sequence",
"~children": [
,
{ "#operator": "InitialGroup", "aggregates": [ "count(cover ((meta(`default`).`type`)))" ], "group_keys": [] } ]
}
},
,
,
{
"#operator": "Parallel",
"~child": {
"#operator": "Sequence",
"~children": [
{
"#operator": "InitialProject",
"result_terms": [
]
},
]
}
}
]
},
"text": "SELECT count(meta(default).type) FROM default where meta(default).type = \"json\""
}
]
Result of
SELECT count(meta(default).type) FROM default where meta(default).type = "json" ;
[
{ "$1": 0 }]
Though same query gives correct result with primary index:
SELECT meta(default).type FROM default use index(`#primary`) where meta(default).type = "json" ;
gives 1680 documents.