For IDL commands which have command parameter NamespaceString of NamespaceStringOrUUID, the IDL generated constructor should init its _dbName with DatabaseName object instead of db name string of the nss or nssOrUUID parameter.
For example, for the find command in find_command.idl, the generated constructor is
FindCommandRequest::FindCommandRequest(const NamespaceStringOrUUID nssOrUUID) : _nssOrUUID(std::move(nssOrUUID)), _dbName(nssOrUUID.uuid() ? nssOrUUID.dbname() : nssOrUUID.nss()->db().toString()), _hasDbName(true)
We should change the IDL compiler to generate the following constructor:
FindCommandRequest::FindCommandRequest(const NamespaceStringOrUUID nssOrUUID) : _nssOrUUID(std::move(nssOrUUID)), _dbName(nssOrUUID.uuid() ? nssOrUUID.dbName() : nssOrUUID.nss()->dbName()), _hasDbName(true)
- is depended on by
-
SERVER-67423 Include tenantId in requests sent with DBDirectClient to have user management cmds work
- Closed