diff options
author | George Wangensteen <george.wangensteen@10gen.com> | 2019-07-08 13:19:22 -0400 |
---|---|---|
committer | George Wangensteen <george.wangensteen@10gen.com> | 2019-07-24 17:44:23 -0400 |
commit | f4399fceab41c4dfaad6b846b94e1366f67d93cd (patch) | |
tree | 11f0fd253c9fd9cc1670725bb037e160efc47017 /src/mongo/db/pipeline/document_source_add_fields.cpp | |
parent | e09a81707daf75e8965cc10d909282db158bc809 (diff) | |
download | mongo-f4399fceab41c4dfaad6b846b94e1366f67d93cd.tar.gz |
SERVER-42017 make stage names in error messages match name used
Diffstat (limited to 'src/mongo/db/pipeline/document_source_add_fields.cpp')
-rw-r--r-- | src/mongo/db/pipeline/document_source_add_fields.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/mongo/db/pipeline/document_source_add_fields.cpp b/src/mongo/db/pipeline/document_source_add_fields.cpp index 319ef9776c6..8784a5ebf16 100644 --- a/src/mongo/db/pipeline/document_source_add_fields.cpp +++ b/src/mongo/db/pipeline/document_source_add_fields.cpp @@ -50,14 +50,23 @@ REGISTER_DOCUMENT_SOURCE(set, DocumentSourceAddFields::createFromBson); intrusive_ptr<DocumentSource> DocumentSourceAddFields::create( - BSONObj addFieldsSpec, const intrusive_ptr<ExpressionContext>& expCtx, StringData stageName) { + BSONObj addFieldsSpec, + const intrusive_ptr<ExpressionContext>& expCtx, + StringData userSpecifiedName) { const bool isIndependentOfAnyCollection = false; intrusive_ptr<DocumentSourceSingleDocumentTransformation> addFields( new DocumentSourceSingleDocumentTransformation( expCtx, - ParsedAddFields::create(expCtx, addFieldsSpec), - stageName.toString(), + [&]() { + try { + return ParsedAddFields::create(expCtx, addFieldsSpec); + } catch (DBException& ex) { + ex.addContext("Invalid " + userSpecifiedName.toString()); + throw; + } + }(), + userSpecifiedName.toString(), isIndependentOfAnyCollection)); return addFields; } |