You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@couchdb.apache.org by GitBox <gi...@apache.org> on 2018/02/14 16:22:04 UTC

[GitHub] AlexanderKaraberov opened a new pull request #1165: Fix: validate_doc_update behaviour for Erlang functions

AlexanderKaraberov opened a new pull request #1165: Fix: validate_doc_update behaviour for Erlang functions
URL: https://github.com/apache/couchdb/pull/1165
 
 
   ## Overview
   
   When you implement `validate_doc_update` as an Erlang function it doesn't work because of a missing case clause, namely: when `couch_query_servers:try_compile()` calls `proc_prompt_raw()` which in turn calls `erlang:apply(Fun)` for a native function the return value of it is an atom `ok` or `true` but in case of JS function we have response code `1`. I added an additional guard check for all these situations in the `validate_doc_update` and now it works for Erlang functions as well. This was crucial in our case because JS functions are much slower and in our production system we are going to use validation functions implemented in Erlang.
   
   ## Testing recommendations
   
   Implement `validate_doc_update` as Erlang function in the design doc (`"language": "erlang"`), run CouchDB with `--enable-erlang-views` and update some docs in the db in order to trigger this call.
   
   ## Checklist
   
   - [ ] Code is written and works correctly;
   - [ ] Changes are covered by tests;
   - [ ] Documentation reflects the changes;
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services