Description
Currently identifiers in N1QL are not "labeled", i.e. we don't know whether an identifier is a keyspace, or an alias, or others, this creates issues trying to determine whether a query is covered or not.
The current mechanism for covering determination for identifiers is more or less "treat everything as covered unless there is a reason not to". Several previous bug fixes have fixed various issues encountered, e.g. MB-22112, MB-25317, MB-25370, MB-25560, MB-25561, MB-30350. The first attempt has been to distinguish whether something is "covered" from something that should be "skipped" since it does not pertain to the current keyspace being considered, as well as something that is "equivalent" to the index key and thus "covered".
With regard to identifiers, we now have an indicator for whether an identifier is a keyspace identifier (see MB-26740, MB-27706, MB-28533). I'd like to use this indicator for more explicit checking for whether an identifier should be covered or not. (Currently we rely on whether an identifier is "single", i.e., not part of a field specification, for this purpose).
Attachments
Issue Links
For Gerrit Dashboard: MB-30495 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
96961,4 | MB-30495 Better identifier handling for index covering determination | master | query | Status: MERGED | +2 | +1 |
104398,2 | MB-32872 Projection alias not properly marked in ORDER BY clause for covering considerations | master | query | Status: MERGED | +2 | +1 |