Hm..it works for me on CouchDB 1.5, but as Robert said, using native query server is dangerous and since it's completely undocumented and may use internal CouchDB API there is no any warranties that code will work correctly in future releases. -- ,,,^..^,,,
On Sat, Nov 9, 2013 at 1:02 PM, [email protected] <[email protected]> wrote: > It is very good! > But, i create validation function and see error: > > Error: EXIT > > {{badmatch,[]}, > [{couch_query_servers,new_process,3, > [{file,"couch_query_servers.erl"},{line,472}]}, > {couch_query_servers,lang_proc,3, > [{file,"couch_query_servers.erl"},{line,462}]}, > {couch_query_servers,handle_call,3, > [{file,"couch_query_servers.erl"},{line,322}]}, > {gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,585}]}, > {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]} > > I am not understand Erlang code, and not see error details. > You have it working? > > In /etc/couchdb/local.ini i added > [native_query_servers] > erlang = {couch_native_process, start_link, []} > > >> Currently, this is possible only via native Erlang query server: >> >> fun(NewDoc, OldDoc, {UserCtx}, SecObj) -> >> DbName = couch_util:get_value(<<"db">>, UserCtx), >> {ok, Db} = couch_db:open_int(DbName, [{user_ctx, UserCtx}]), >> {ok, Info} = couch_db:get_db_info(Db), >> DiskSize = couch_util:get_value(disk_size, Info), >> case DiskSize < 100000 of %% ~100KB >> true -> >> ok; >> false -> >> throw({[{<<"forbidden">>, <<"quota limit reached">>}]}) >> end, >> 1 >> end. >> >> >> >> -- >> ,,,^..^,,, >> >> >> On Sat, Nov 9, 2013 at 7:56 AM, [email protected] >> <[email protected]> wrote: >>> >>> Hello. >>> >>> Can I get information about the database as a function of >>> validate_doc_update? For example, to find out the size of the database or >>> the number of documents. >>> >>> Example: >>> function(newDoc, oldDoc, userCtx) { >>> if ( thisDb.disk_size > 1000 ) throw({forbidden : 'you have exceeded >>> the >>> limit'}); >>> } >>> >>> It is possible? >>> >>> Thanks. > >
