diff options
author | Adam Kocoloski <kocolosk@apache.org> | 2009-04-05 20:34:35 +0000 |
---|---|---|
committer | Adam Kocoloski <kocolosk@apache.org> | 2009-04-05 20:34:35 +0000 |
commit | 0d608a8ea9658780bdcfe36ae700accaf006690b (patch) | |
tree | 27151118c9a7a4fc4c40341c34996f332c8c854c /src/couchdb/couch_httpd_db.erl | |
parent | 05838650cfd06fa27f07d0a13b80617879b381e3 (diff) |
added compaction for view indexes. See COUCHDB-92
No tests or Futon interface for this feature yet.
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@762153 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/couchdb/couch_httpd_db.erl')
-rw-r--r-- | src/couchdb/couch_httpd_db.erl | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/couchdb/couch_httpd_db.erl b/src/couchdb/couch_httpd_db.erl index 07815bda..209dc75e 100644 --- a/src/couchdb/couch_httpd_db.erl +++ b/src/couchdb/couch_httpd_db.erl @@ -13,7 +13,8 @@ -module(couch_httpd_db). -include("couch_db.hrl"). --export([handle_request/1, handle_design_req/2, db_req/2, couch_doc_open/4]). +-export([handle_request/1, handle_compact_req/2, handle_design_req/2, + db_req/2, couch_doc_open/4]). -import(couch_httpd, [send_json/2,send_json/3,send_json/4,send_method_not_allowed/2, @@ -41,6 +42,17 @@ handle_request(#httpd{path_parts=[DbName|RestParts],method=Method, do_db_req(Req, Handler) end. +handle_compact_req(#httpd{method='POST',path_parts=[DbName,_,Id|_]}=Req, _Db) -> + ok = couch_view_compactor:start_compact(DbName, Id), + send_json(Req, 202, {[{ok, true}]}); + +handle_compact_req(#httpd{method='POST'}=Req, Db) -> + ok = couch_db:start_compact(Db), + send_json(Req, 202, {[{ok, true}]}); + +handle_compact_req(Req, _Db) -> + send_method_not_allowed(Req, "POST"). + handle_design_req(#httpd{ path_parts=[_DbName,_Design,_DesName, <<"_",_/binary>> = Action | _Rest], design_url_handlers = DesignUrlHandlers @@ -189,13 +201,6 @@ db_req(#httpd{method='POST',path_parts=[_,<<"_bulk_docs">>]}=Req, Db) -> db_req(#httpd{path_parts=[_,<<"_bulk_docs">>]}=Req, _Db) -> send_method_not_allowed(Req, "POST"); -db_req(#httpd{method='POST',path_parts=[_,<<"_compact">>]}=Req, Db) -> - ok = couch_db:start_compact(Db), - send_json(Req, 202, {[{ok, true}]}); - -db_req(#httpd{path_parts=[_,<<"_compact">>]}=Req, _Db) -> - send_method_not_allowed(Req, "POST"); - db_req(#httpd{method='POST',path_parts=[_,<<"_purge">>]}=Req, Db) -> {IdsRevs} = couch_httpd:json_body(Req), IdsRevs2 = [{Id, couch_doc:parse_revs(Revs)} || {Id, Revs} <- IdsRevs], |