Alexandre Paulo created COUCHDB-1469:
----------------------------------------

             Summary: Filtered replication dies with criteria values not "root"
                 Key: COUCHDB-1469
                 URL: https://issues.apache.org/jira/browse/COUCHDB-1469
             Project: CouchDB
          Issue Type: Question
          Components: Replication
    Affects Versions: 1.2
            Reporter: Alexandre Paulo
            Priority: Minor


<< Excuse my english... I am portuguese >>

I have a document structure that goes like this:
{
   "Location": {
       "City": ...,
       "Region": ...,
       "Country": ...
   }
}

I'd like to replicate my documents based on "Region", so, I wrote a filter 
function with

if (doc.Location.Region && doc.Location.Region == ...) {
   return true;
} else {
   return false;
}

But the replication dies with  {"error":"changes_reader_died"}

I tested my function as a Map function on a view, just replacion "return true" 
with "emit (true)" and "return false" with "emit (false)" and it works fine.

After some testing I came to the conclusion that the replication filter 
function works fine with first-level fields (e.g. "doc.field") but dies with 
multi-level fields (e.g. "doc.parent.field")

In other words it does not compute "doc.Location.Region" on my filter function. 
I had to change my document structure to have "doc.Region".

Now my questions:
- is this a bug or is it intended to work this way?
- if it is intended why is it allowed on Map functions, but not on filter 
functions?


Thanks a lot!

<< Excuse my english... I am portuguese >>

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to