-
Type: New Feature
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Query Optimization
-
(copied to CRM)
In the server documentation, we have a list of supported/not supported commands, but there’s no easy way to determine if the driver methods are using those commands in the drivers.
Mapping between server commands and methods is straightforward, but the stable API is more than about methods. It also encompasses the entire query and update language. So for example, the aggregate command is certainly part of the stable API, but a subset of stages and expressions are not part of the stable API, and when they become part of it changes from release to release. So in practice, static analysis of an application to determine whether it's valid with the stable API is not feasible, and you just have to run the application to determine whether there are any problems. But setting strict: true will result in errors.
If there was a way to run the application with strict: false and collect warnings in the log for further analysis, this would allow preparing an application for switching to strict:true.