fix(DQL): ignore ordering of indexes in schema with eq function #7034
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously, the following schema:
name: string @index(trigram, term) .
with some added data, and the following query:
query {
q(func: eq(name, "Alice", "Bob")) {
uid
name
}
}
would error out saying it doesn't have a valid tokenizer:
{
"errors": [
{
"message": ": Attribute name does not have a valid tokenizer.",
"extensions": {
"code": "ErrorInvalidRequest"
}
}
],
"data": null
}
even though term index is present on the predicate.
On the other hand, if you reversed the order of indexes:
name: string @index(term, trigram) .
It would give correct results:
{
"data": {
"q": [
{
"uid": "0x2",
"name": "Alice",
"age": 20
},
{
"uid": "0x3",
"name": "Bob",
"age": 25
}
]
}
}
This PR fixes the above issue.
(cherry picked from commit 0b11439)
This change is