Hi everyone,
While running PouchDB replication unit tests against the CouchDB 4
replicator PR branch (thanks to Garren Smith, who helped set up the
tests), we had noticed a doc update API incompatibility between
CouchDB 3.x/PouchDB and the prototype/fdb-layer branch: CouchDB
3.x/PouchDB allow creating new deleted documents and
prototype/fdb-layer branch doesn't.
For example:
$ http put $DB1/mydb/doc1 _deleted:='true' a=b
HTTP/1.1 200 OK
{
"id": "doc1",
"ok": true,
"rev": "1-ad7eb689fcae75e7a7edb57dc1f30939"
}
$ http $DB1/mydb/doc1?deleted=true
HTTP/1.1 200 OK
{
"_deleted": true,
"_id": "doc1",
"_rev": "1-ad7eb689fcae75e7a7edb57dc1f30939",
"a": "b"
}
On prototype/fdb-layer it returns a 409 conflict error
I opened a PR to make the prototype/fdb-layer branch behave the same
and keep the API compatibility, but also wanted to see what the
community thinks.
https://github.com/apache/couchdb/pull/3123
Would we want to keep compatibility with CouchDB 3.x/PouchDB or,
return a conflict (409), like the prototype/fdb-layer branch does?
My vote is for compatibility.
Thanks,
-Nick