summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/document_source_add_fields.cpp
diff options
context:
space:
mode:
authorGeorge Wangensteen <george.wangensteen@10gen.com>2019-07-08 13:19:22 -0400
committerGeorge Wangensteen <george.wangensteen@10gen.com>2019-07-24 17:44:23 -0400
commitf4399fceab41c4dfaad6b846b94e1366f67d93cd (patch)
tree11f0fd253c9fd9cc1670725bb037e160efc47017 /src/mongo/db/pipeline/document_source_add_fields.cpp
parente09a81707daf75e8965cc10d909282db158bc809 (diff)
downloadmongo-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.cpp15
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;
}