nickva commented on code in PR #4394:
URL: https://github.com/apache/couchdb/pull/4394#discussion_r1081579998
##########
src/mango/src/mango_cursor_view.erl:
##########
@@ -248,6 +266,19 @@ view_cb({row, Row}, #mrargs{extra = Options} = Acc) ->
key = couch_util:get_value(key, Row),
doc = couch_util:get_value(doc, Row)
},
+ % This supports receiving our "arguments" either as just the `selector`
+ % or in the new record in `callback_args`. This is to support mid-upgrade
+ % clusters where the non-upgraded coordinator nodes will send the older
style.
+ % TODO remove this in a couple of couchdb versions.
+ {Selector, Fields} =
+ case couch_util:get_value(callback_args, Options) of
+ % old style
+ undefined ->
+ {couch_util:get_value(selector, Options), undefined};
+ % new style - assume a viewcbargs
+ Args ->
Review Comment:
It's a balance, but I think it's slightly better to leak some of the
implementation for a stronger assert in the case. It also tells the reader what
the types are in that snippet right away ("we are dealing with a map or
undefined only") so serves as a shorthand reminder in a way.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]