Return-Path: X-Original-To: apmail-couchdb-commits-archive@www.apache.org Delivered-To: apmail-couchdb-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5A54F18D59 for ; Tue, 25 Aug 2015 16:59:42 +0000 (UTC) Received: (qmail 24994 invoked by uid 500); 25 Aug 2015 16:59:42 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 24940 invoked by uid 500); 25 Aug 2015 16:59:42 -0000 Mailing-List: contact commits-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list commits@couchdb.apache.org Received: (qmail 24931 invoked by uid 99); 25 Aug 2015 16:59:42 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 25 Aug 2015 16:59:42 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 071B6E01F4; Tue, 25 Aug 2015 16:59:42 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: rnewson@apache.org To: commits@couchdb.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: chttpd commit: updated refs/heads/master to 129cdf9 Date: Tue, 25 Aug 2015 16:59:42 +0000 (UTC) Repository: couchdb-chttpd Updated Branches: refs/heads/master 932f1154f -> 129cdf934 Actually send an ETag for _view and _all_docs We were previously sending ETag: undefined in both cases. It would be better to not bother with Etag at all for these as the odds of caching are low in a sharded system. Project: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/commit/129cdf93 Tree: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/tree/129cdf93 Diff: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/diff/129cdf93 Branch: refs/heads/master Commit: 129cdf934804169b705695d208878631397dcbf3 Parents: 932f115 Author: Robert Newson Authored: Tue Aug 25 17:57:52 2015 +0100 Committer: Robert Newson Committed: Tue Aug 25 17:58:44 2015 +0100 ---------------------------------------------------------------------- src/chttpd_db.erl | 10 ++++------ src/chttpd_view.erl | 12 +++++------- 2 files changed, 9 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/blob/129cdf93/src/chttpd_db.erl ---------------------------------------------------------------------- diff --git a/src/chttpd_db.erl b/src/chttpd_db.erl index a8fdc16..89e3a88 100644 --- a/src/chttpd_db.erl +++ b/src/chttpd_db.erl @@ -579,15 +579,13 @@ all_docs_view(Req, Db, Keys, OP) -> Args1 = Args0#mrargs{view_type=map}, Args2 = couch_mrview_util:validate_args(Args1), Args3 = set_namespace(OP, Args2), - ETagFun = fun(Sig, Acc0) -> - couch_mrview_http:check_view_etag(Sig, Acc0, Req) - end, - Args = Args3#mrargs{preflight_fun=ETagFun}, + %% TODO: proper calculation of etag + Etag = [$", couch_uuids:new(), $"], Options = [{user_ctx, Req#httpd.user_ctx}], {ok, Resp} = couch_httpd:etag_maybe(Req, fun() -> Max = chttpd:chunked_response_buffer_size(), - VAcc0 = #vacc{db=Db, req=Req, threshold=Max}, - fabric:all_docs(Db, Options, fun couch_mrview_http:view_cb/2, VAcc0, Args) + VAcc0 = #vacc{db=Db, req=Req, threshold=Max, etag=Etag}, + fabric:all_docs(Db, Options, fun couch_mrview_http:view_cb/2, VAcc0, Args3) end), case is_record(Resp, vacc) of true -> {ok, Resp#vacc.resp}; http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/blob/129cdf93/src/chttpd_view.erl ---------------------------------------------------------------------- diff --git a/src/chttpd_view.erl b/src/chttpd_view.erl index ea1301c..a427eb1 100644 --- a/src/chttpd_view.erl +++ b/src/chttpd_view.erl @@ -31,7 +31,7 @@ multi_query_view(Req, Db, DDoc, ViewName, Queries) -> Headers = [{"ETag", Etag}], FirstChunk = "{\"results\":[", {ok, Resp0} = chttpd:start_delayed_json_response(VAcc0#vacc.req, 200, Headers, FirstChunk), - VAcc1 = VAcc0#vacc{resp=Resp0}, + VAcc1 = VAcc0#vacc{resp=Resp0, etag=Etag}, VAcc2 = lists:foldl(fun(Args, Acc0) -> {ok, Acc1} = fabric:query_view(Db, DDoc, ViewName, fun couch_mrview_http:view_cb/2, Acc0, Args), Acc1 @@ -47,14 +47,12 @@ multi_query_view(Req, Db, DDoc, ViewName, Queries) -> design_doc_view(Req, Db, DDoc, ViewName, Keys) -> - Args0 = couch_mrview_http:parse_params(Req, Keys), - ETagFun = fun(Sig, Acc0) -> - couch_mrview_http:check_view_etag(Sig, Acc0, Req) - end, - Args = Args0#mrargs{preflight_fun=ETagFun}, + Args = couch_mrview_http:parse_params(Req, Keys), + %% TODO: proper calculation of etag + Etag = [$", couch_uuids:new(), $"], {ok, Resp} = couch_httpd:etag_maybe(Req, fun() -> Max = chttpd:chunked_response_buffer_size(), - VAcc0 = #vacc{db=Db, req=Req, threshold=Max}, + VAcc0 = #vacc{db=Db, req=Req, threshold=Max, etag=Etag}, fabric:query_view(Db, DDoc, ViewName, fun couch_mrview_http:view_cb/2, VAcc0, Args) end), case is_record(Resp, vacc) of