|
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)
|
|