Unknown/Inapplicable Attributes, Unsupported Operators, And Unknown Filter Values
Meta Integration (MM) may execute a MQL Query even if the query contains unknown/inapplicable attribute types, object types, model names, labels, data classes and/or usernames etc. However, the results of the query may not match your expectation. Be sure to validate the MQL Query before you execute it.
The following is a list of behaviors how MM would act when it encounters an unknown/inapplicable attribute or an unknown filter value:
- For any unknown/inapplicable profile attribute, custom attribute, custom relationship, UDP, system attribute, related object property or function with an unknown parameter used as a select field in the select list, the result object will not contain this attribute.
- For any unknown/inapplicable profile attribute, custom attribute, custom relationship, UDP, system attribute, related object property or function with an unknown parameter used as the filter type of a filter, that filter will evaluate to false unless the filter operator is NOT EXISTS.
- For any operator not supported for the filter type or attribute the filter will evaluate to false.
- For any unknown search property used in the text or semantic_search_text WITHIN clause, the search property will be ignored. If there is no valid search property in the WITHIN clause, the default search properties will be 'Name' and 'Physical Name'.
- Any empty text filter or semantic_search_text filter will be ignored.
- For any unknown type or name used as a filter value, the filter will be executed by the search index. The result of the search depends on the operator and other values in the filter.
Here are some examples that demonstrate the search behavior when an unknown type or name is used as a filter value.
- If an unknown model name, say "ETL Model 2", is used in a model system attribute filter "Model = ANY ('DB Model1', 'ETL Model 2')", the search will be limited to the model "DB Model1".
- The filter "\"Object Type\" = ANY ('Glosary', 'Term')" will return objects of type Term. The object type "Glosary" has a typo and will be ignored.
- If John does not exist in the list of users or John is not a workflow editor of any object, the filter "ExpandedMembersOfRole('Workflow Editor') = 'John'" will return no result; but the filter "ExpandedMembersOfRole('Workflow Editor') != 'John'" will return all objects in the search scope.
- If "Workflow Editor" is not a defined object role, the filter "ExpandedMembersOfRole('Workflow Editor') = 'John'" will evaluate to false.