'startkey_docid' should function like 'startkey'
------------------------------------------------

                 Key: COUCHDB-485
                 URL: https://issues.apache.org/jira/browse/COUCHDB-485
             Project: CouchDB
          Issue Type: Improvement
          Components: HTTP Interface
    Affects Versions: 0.10
         Environment: N/A
            Reporter: Christopher Groskopf
            Priority: Minor


The 'startkey_docid' and 'endkey_docid' parameters provide a way of 
sub-selecting rows for pagination when a view emits many rows with identical 
key values.  However, it seems both confusing and unintentionally limiting that 
'startkey_docid' does not function the same as 'startkey' with regard to how 
included documents are identified.

By this I mean, that if a a group of data is emitted with ISO 8601 timestamps 
as keys (e.g. "2009-08-25T12:00:00Z") then its possible to specify 
'startkey="2009-08"' and include that example data, because it is collated 
after 'startkey'.  However, it those timestamps were emitted as doc ids instead 
of keys, 'startkey_docid'  will only act to filter the data if it _exactly_ 
matches a doc id.  Specifying 'startkey_docid="2009-08"' would not filter the 
data at all, even if every selected row has the same key.

The benefit of implementing this change is that views which emit many identical 
keys could be sub-filtered based on document id.  In the case of my 
application, the first portion of a document's id is a timestamp, so I would be 
able to select a chronological subset of rows after they had been filtered by 
key.  Another possible use case is where doc ids are slugs--this would make it 
possible to select an alphabetical range after specifying a category as a key 
parameter.

I haven't looked under the hood and I have never written Erlang, so I have no 
way of accurately estimating how significant this change would be.  Unless I'm 
misunderstanding something, this change should not break existing code.

Looking forward to reading any feedback/comments/alternatives.

Thanks,
Chris

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to