Check "like" argument applied to keyed fields

Check if queries that have a 'like' argument are applied to keyed
fields. If not, log that the user is trying to use 'like' on an
unsupported field type (as opposed to reporting that there
are no results.)
This commit is contained in:
Samir Patel 2022-02-24 11:54:58 -06:00
parent 872eb99b9d
commit 05e98ee678

View file

@ -6731,6 +6731,17 @@ func (e *executor) translateCall(c *pql.Call, index string, columnKeys map[strin
}
}
}
// Check if "like" argument is applied to keyed fields.
if _, found := c.Args["like"].(string); found {
fieldName, err := c.FirstStringArg("_field", "field")
if err != nil || fieldName == "" {
return nil, fmt.Errorf("cannot read field name for Rows call")
}
if !idx.Field(fieldName).options.Keys {
return nil, fmt.Errorf("'%s' is not a set/mutex/time field with a string key", fieldName)
}
}
}
// Translate child calls.