You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by "Jan Lehnardt (Closed) (JIRA)" <ji...@apache.org> on 2011/10/30 22:12:32 UTC

[jira] [Closed] (COUCHDB-729) View Generation: emit() not instantaneous

     [ https://issues.apache.org/jira/browse/COUCHDB-729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jan Lehnardt closed COUCHDB-729.
--------------------------------

    Resolution: Won't Fix

emit() will append to a buffer inside the query server, tmp will point to the same object. I don't think making a deep copy is a good idea. This is a leaky abstraction we are unlikely to close (unless somebody has a fabulous patch that does not introduce any performance or memory issues.
                
> View Generation: emit() not instantaneous
> -----------------------------------------
>
>                 Key: COUCHDB-729
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-729
>             Project: CouchDB
>          Issue Type: Bug
>          Components: JavaScript View Server
>         Environment: Using Win7
>            Reporter: Walt W
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> Try the following view function:
> function(doc) {
>   var tmp = { result: 'a' };
>   emit(null, tmp);
>   tmp.result = 'b';
>   emit(null, tmp);
> }
> The unfortunate happening is that (null, { result: 'b' }) is emitted twice per document, rather than one 'a' and one 'b'.  I would think that the emit function should grab and copy the values passed immediately; it does not make sense or seem useful (to me anyway) to allow them to change after the fact.

--
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