We appear to leave createIndexes command object checking to deep down in the MultiIndexBlock, as well as scattering it around in higher level locations. There is redundancy, as well as annoyingly backwards – in the sense that requests should be validated at a higher level – and difficult to discover user error handling and checking.
For example, create_indexes.cpp calls prepareSpecForCreate, which is also done in MultiIndexBlock::init and in the IndexCatalog::removeExistingIndexes.
This ticket is to explore and eliminate redundancy if possible, add documentation to prepareSpecForCreate (what it does, precisely), raise error checking to a higher level such that lower level code invariants because it was given a bad request, and fundamentally create an actual story for index build request error checking and handling.
This will improve the IndexBuildCoordinator's ability to find/match build requests for its operations, because the specs will all be correct before they arrive in the coordinator.
- is related to
-
SERVER-38872 Move createIndexes command object validation up into the command code from down in the index builder code
- Closed
-
SERVER-38873 Set up the create_indexes.idl in the createIndexes command for parsing
- Closed