Support for revisions in Find, AddOrUpdate #170
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Revisions are essential feature for MVCC in CouchDB. Passing a revision to PUT request makes you aware of the conflict (if happen) via response 409 Conflict from CouchDB HTTP API. That's why we need to support passing revisions to
AddOrUpdate
method.To avoid breaking changes with my addition and while more request options might be introduced in future, I contributed to
DatabaseApiMethodOptions
namespace and:FindOptions
+ICouchDatabase<TSource>.FindAsync
paired methodAddOrUpdateOptions
+ICouchDatabase<TSource>.AddOrUpdateAsync
paired methodAddOptions
+ICouchDatabase<TSource>.AddAsync
paired methodI suppose in the future another contributors whould't extend method parameters, instead add properties to
DatabaseApiMethodOptions.*Options
objects.Unit-tests covering new options are added.
I checked and see that for attachements revisions are already supported by
CouchAttachment
class which is passingDocumentRev
toDownloadAttachmentAsync(..)
andDownloadAttachmentAsStreamAsync(..)
.Added "Revisions" section to README.