Return-Path: Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: (qmail 23653 invoked from network); 18 Aug 2010 13:50:45 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 18 Aug 2010 13:50:45 -0000 Received: (qmail 15198 invoked by uid 500); 18 Aug 2010 13:50:45 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 14758 invoked by uid 500); 18 Aug 2010 13:50:42 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 14750 invoked by uid 99); 18 Aug 2010 13:50:40 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Aug 2010 13:50:40 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED,NORMAL_HTTP_TO_IP,WEIRD_PORT X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Aug 2010 13:50:38 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id o7IDoHam017298 for ; Wed, 18 Aug 2010 13:50:17 GMT Message-ID: <17417552.420071282139417461.JavaMail.jira@thor> Date: Wed, 18 Aug 2010 09:50:17 -0400 (EDT) From: "Klaus Trainer (JIRA)" To: dev@couchdb.apache.org Subject: [jira] Commented: (COUCHDB-642) Support rev in PUT URL In-Reply-To: <1162170003.123021265646387919.JavaMail.jira@brutus.apache.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/COUCHDB-642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12899848#action_12899848 ] Klaus Trainer commented on COUCHDB-642: --------------------------------------- We need to consider that the ETag in the If-Match header doesn't override the _rev field in the body either. In fact, if they are not equal, status code 400 Bad Request is returned. I'm certainly not the one who can and wants to decide whether this behaviour should better be changed or not. The only opinion I have about the issue is that things should be consistent. That's the actual reason why I wrote the patch: if the rev query parameter works with DELETE requests, it should work with PUT requests as well. In that sense, your argument that the _id field in the document is overridden and hence the _rev field should be as well, sounds reasonable. Consequently, the ETag should also override the body's _rev field in that case. I can change the current behaviour, so that the rev query parameter and the ETag override the _rev field in the body. However, I won't do anything in that direction, as long as I haven't heard any opinion of some core developers. > Support rev in PUT URL > ---------------------- > > Key: COUCHDB-642 > URL: https://issues.apache.org/jira/browse/COUCHDB-642 > Project: CouchDB > Issue Type: New Feature > Components: HTTP Interface > Environment: trunk 08 Feb 2010 > Reporter: Brian Candler > Priority: Minor > Attachments: 0001-Allow-for-the-current-revision-number-to-be.patch > > > A DELETE request lets you append ?rev=xxxx to the URL. But this doesn't work with a PUT request; you have to put the _rev in the body instead (even though the _id is taken from the URL path) > $ curl -X PUT -d "{}" http://brianadmin:brianadmin@127.0.0.1:5984/briantest/foo > {"ok":true,"id":"foo","rev":"1-967a00dff5e02add41819138abb3284d"} > $ curl -X PUT -d "{}" http://brianadmin:brianadmin@127.0.0.1:5984/briantest/foo?rev=1-967a00dff5e02add41819138abb3284d > {"error":"conflict","reason":"Document update conflict."} > $ curl -X PUT -d '{"_rev":"1-967a00dff5e02add41819138abb3284d"}' http://brianadmin:brianadmin@127.0.0.1:5984/briantest/foo > {"ok":true,"id":"foo","rev":"2-7051cbe5c8faecd085a3fa619e6e6337"} > Allowing ?rev in the URL would make PUT and DELETE more consistent, and would allow you to replace an existing JSON doc with another one without having to merge the _rev into it first. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.