[SERVER-57118] Unify query operators argument validation Created: 21/May/21  Updated: 06/Dec/22

Status: Backlog
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Nikita Lapkov (Inactive) Assignee: Backlog - Query Execution
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-26148 Commands should convert integers from... Backlog
Assigned Teams:
Query Execution
Participants:

 Description   

Currently, various MQL operators have different argument validation behaviour. For example:

  1. $bitsAllSet throws FailedToParse when non-integer argument is passed
  2. $mod truncates the argument to long long value

Various operators regularly cause fuzzer failures because of their parsing logic. For example:

  1. Special values like NaN and Infinity are not handled in $slice (see SERVER-56516)
  2. Rounding behaviour is inconsistent across various data types in $mod (see SERVER-32960)

We should unify argument validation strategy for various operators to create a consistent user experience.


Generated at Thu Feb 08 05:41:01 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.