From 289ba7d82a7a9ef05dba5cba87a3d084e68377b2 Mon Sep 17 00:00:00 2001 From: Preston Vasquez Date: Thu, 28 Jul 2022 14:43:08 -0600 Subject: [PATCH 1/2] GODRIVER-2489 createPipelineOptionsDoc: return err --- mongo/change_stream.go | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/mongo/change_stream.go b/mongo/change_stream.go index d5aae4cebc..cd3cf1089e 100644 --- a/mongo/change_stream.go +++ b/mongo/change_stream.go @@ -256,8 +256,8 @@ func (cs *ChangeStream) executeOperation(ctx context.Context, resuming bool) err if resuming { cs.replaceOptions(cs.wireVersion) - csOptDoc := cs.createPipelineOptionsDoc() - if cs.err != nil { + csOptDoc, err := cs.createPipelineOptionsDoc() + if err != nil { return cs.Err() } pipIdx, pipDoc := bsoncore.AppendDocumentStart(nil) @@ -386,8 +386,9 @@ func (cs *ChangeStream) buildPipelineSlice(pipeline interface{}) error { cs.pipelineSlice = make([]bsoncore.Document, 0, val.Len()+1) csIdx, csDoc := bsoncore.AppendDocumentStart(nil) - csDocTemp := cs.createPipelineOptionsDoc() - if cs.err != nil { + + csDocTemp, err := cs.createPipelineOptionsDoc() + if err != nil { return cs.err } csDoc = bsoncore.AppendDocumentElement(csDoc, "$changeStream", csDocTemp) @@ -410,7 +411,7 @@ func (cs *ChangeStream) buildPipelineSlice(pipeline interface{}) error { return cs.err } -func (cs *ChangeStream) createPipelineOptionsDoc() bsoncore.Document { +func (cs *ChangeStream) createPipelineOptionsDoc() (bsoncore.Document, error) { plDocIdx, plDoc := bsoncore.AppendDocumentStart(nil) if cs.streamType == ClientStream { @@ -434,7 +435,7 @@ func (cs *ChangeStream) createPipelineOptionsDoc() bsoncore.Document { var raDoc bsoncore.Document raDoc, cs.err = transformBsoncoreDocument(cs.registry, cs.options.ResumeAfter, true, "resumeAfter") if cs.err != nil { - return nil + return nil, cs.err } plDoc = bsoncore.AppendDocumentElement(plDoc, "resumeAfter", raDoc) @@ -448,7 +449,7 @@ func (cs *ChangeStream) createPipelineOptionsDoc() bsoncore.Document { var saDoc bsoncore.Document saDoc, cs.err = transformBsoncoreDocument(cs.registry, cs.options.StartAfter, true, "startAfter") if cs.err != nil { - return nil + return nil, cs.err } plDoc = bsoncore.AppendDocumentElement(plDoc, "startAfter", saDoc) @@ -464,10 +465,10 @@ func (cs *ChangeStream) createPipelineOptionsDoc() bsoncore.Document { } if plDoc, cs.err = bsoncore.AppendDocumentEnd(plDoc, plDocIdx); cs.err != nil { - return nil + return nil, cs.err } - return plDoc + return plDoc, nil } func (cs *ChangeStream) pipelineToBSON() (bsoncore.Document, error) { From 7c58ac41c3b4484710f27f146e53229f192b4745 Mon Sep 17 00:00:00 2001 From: Preston Vasquez Date: Tue, 2 Aug 2022 12:24:01 -0600 Subject: [PATCH 2/2] GODRIVER-2489 return checked errors --- mongo/change_stream.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mongo/change_stream.go b/mongo/change_stream.go index cd3cf1089e..01da999c02 100644 --- a/mongo/change_stream.go +++ b/mongo/change_stream.go @@ -258,7 +258,7 @@ func (cs *ChangeStream) executeOperation(ctx context.Context, resuming bool) err csOptDoc, err := cs.createPipelineOptionsDoc() if err != nil { - return cs.Err() + return err } pipIdx, pipDoc := bsoncore.AppendDocumentStart(nil) pipDoc = bsoncore.AppendDocumentElement(pipDoc, "$changeStream", csOptDoc) @@ -389,7 +389,7 @@ func (cs *ChangeStream) buildPipelineSlice(pipeline interface{}) error { csDocTemp, err := cs.createPipelineOptionsDoc() if err != nil { - return cs.err + return err } csDoc = bsoncore.AppendDocumentElement(csDoc, "$changeStream", csDocTemp) csDoc, cs.err = bsoncore.AppendDocumentEnd(csDoc, csIdx)