incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "first-leon@yandex.ru" <first-l...@yandex.ru>
Subject Re: Database information from validate_doc_update
Date Sat, 09 Nov 2013 15:36:41 GMT
Yes! It work for me on CouchDB 1.3.
But on CouchDB 1.4 not worked :(
Thanks!

> 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, first-leon@yandex.ru
> <first-leon@yandex.ru> 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, first-leon@yandex.ru
>>> <first-leon@yandex.ru> 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.
>>


Mime
View raw message