-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Query Execution
-
Fully Compatible
Currently Classic and SBE stage builders differ on the assertion severities when encountering missing index descriptors.
Classic uses a invariant() which is process fatal:
auto descriptor = collectionPtr->getIndexCatalog()->findIndexByName( _opCtx, ixn->index.identifier.catalogName); invariant(descriptor, str::stream() << "Namespace: " << collectionPtr->ns().toStringForErrorMsg() << ", CanonicalQuery: " << _cq.toStringShortForErrorMsg() << ", IndexEntry: " << ixn->index.toString());
while SBE uses a tassert() which just kills the operation in non-test environments:
auto desc = collection->getIndexCatalog()->findIndexByName(opCtx, indexName); tassert(5432209, str::stream() << "index descriptor not found for index named '" << indexName << "' in collection '" << collection->ns().toStringForErrorMsg() << "'", desc);
- depends on
-
SERVER-88969 Add tests for parsing 'NumberLongs' as arguments to bitwise expressions
- Closed
- related to
-
SERVER-88070 Throw ErrorCode::QueryPlanKilled for stale index views during stale cached replans
- Closed