diff options
author | Jan Lehnardt <jan@apache.org> | 2019-05-07 12:01:06 +0200 |
---|---|---|
committer | Jan Lehnardt <jan@apache.org> | 2019-05-07 12:01:06 +0200 |
commit | f1e765c6d236e653df6e4283367daa9128da51bf (patch) | |
tree | ae85e38832bfe438e223885980dbfaf40d1b31e4 | |
parent | 3872ed7ec0a72d475046be4821141ff6e54e468f (diff) | |
download | couchdb-f1e765c6d236e653df6e4283367daa9128da51bf.tar.gz |
wip
-rw-r--r-- | src/couch/src/couch_doc.erl | 12 | ||||
-rwxr-xr-x | t.sh | 90 |
2 files changed, 52 insertions, 50 deletions
diff --git a/src/couch/src/couch_doc.erl b/src/couch/src/couch_doc.erl index 802cc71ff..500a5c76f 100644 --- a/src/couch/src/couch_doc.erl +++ b/src/couch/src/couch_doc.erl @@ -127,13 +127,15 @@ to_json_obj(Doc, Options) -> doc_to_json_obj(#doc{id=Id,deleted=Del,body=Body,revs={Start, RevIds}, meta=Meta,access=Access}=Doc,Options)-> - {[{<<"_id">>, Id}] + R={[{<<"_id">>, Id}] ++ to_json_rev(Start, RevIds) ++ to_json_body(Del, Body, Access) ++ to_json_revisions(Options, Start, RevIds) ++ to_json_meta(Meta) ++ to_json_attachments(Doc#doc.atts, Options) - }. + }, + couch_log:info("~n~n loading this from disk: Doc: ~p ~n~n", [R]), + R. from_json_obj_validate(EJson) -> from_json_obj_validate(EJson, undefined). @@ -141,6 +143,7 @@ from_json_obj_validate(EJson) -> from_json_obj_validate(EJson, DbName) -> MaxSize = config:get_integer("couchdb", "max_document_size", 4294967296), Doc = from_json_obj(EJson, DbName), + couch_log:info("~n~n writing this to disk: Doc: ~p ~n~n", [Doc]), case couch_ejson_size:encoded_size(Doc#doc.body) =< MaxSize of true -> validate_attachment_sizes(Doc#doc.atts), @@ -260,10 +263,9 @@ transfer_fields([{<<"_id">>, Id} | Rest], Doc, DbName) -> validate_docid(Id, DbName), transfer_fields(Rest, Doc#doc{id=Id}, DbName); -transfer_fields([{<<"_access">>, Access} = Field | Rest], - #doc{body=Fields} = Doc, DbName) -> +transfer_fields([{<<"_access">>, Access} = Field | Rest], Doc, DbName) -> % TODO: validate access as array strings, and optional arrays of strings - transfer_fields(Rest, Doc#doc{body=[Field|Fields],access=Access}, DbName); + transfer_fields(Rest, Doc#doc{body=Rest,access=Access}, DbName); transfer_fields([{<<"_rev">>, Rev} | Rest], #doc{revs={0, []}}=Doc, DbName) -> {Pos, RevId} = parse_rev(Rev), @@ -10,50 +10,50 @@ curl -sX PUT $DB/_users/org.couchdb.user:y -d @user2.json > /dev/null curl -sX DELETE $DB/db curl -sX PUT $DB/db?q=1'&access=true' -curl -sX PUT $DB/db/a -d '{"a":1,"_access":["x"]}' +# curl -sX PUT $DB/db/a -d '{"a":1,"_access":["x"]}' curl -sX PUT $DB/db/b -d '{"b":2,"_access":["x"]}' -curl -sX PUT $DB/db/c -d '{"c":3,"_access":["y"]}' -curl -sX PUT $XDB/db/c?rev="1-0865d643568aa9be6bcdc15d88b25912" -d '{"c":6,"_access":["y"]}' - -curl -sX PUT $DB/db/d -d '{"d":4,"_access":["y"]}' - -curl -sX DELETE $DB/db/a?rev="1-79b9365c8c21f839b206c730ec3d4fc3" - -curl -s $DB/db/_all_docs?include_docs=true -curl -s $XDB/db/_all_docs?include_docs=true -curl -s $YDB/db/_all_docs?include_docs=true - -curl -s $DB/db/_changes?include_docs=true -curl -s $XDB/db/_changes?include_docs=true -curl -s $YDB/db/_changes?include_docs=true - -curl -s $DB/db/a +# curl -sX PUT $DB/db/c -d '{"c":3,"_access":["y"]}' +# curl -sX PUT $XDB/db/c?rev="1-0865d643568aa9be6bcdc15d88b25912" -d '{"c":6,"_access":["y"]}' +# +# curl -sX PUT $DB/db/d -d '{"d":4,"_access":["y"]}' +# +# curl -sX DELETE $DB/db/a?rev="1-79b9365c8c21f839b206c730ec3d4fc3" +# +# curl -s $DB/db/_all_docs?include_docs=true +# curl -s $XDB/db/_all_docs?include_docs=true +# curl -s $YDB/db/_all_docs?include_docs=true +# +# curl -s $DB/db/_changes?include_docs=true +# curl -s $XDB/db/_changes?include_docs=true +# curl -s $YDB/db/_changes?include_docs=true +# +# curl -s $DB/db/a curl -s $DB/db/b -curl -s $DB/db/c -curl -s $DB/db/d - -curl -s $XDB/db/a -curl -s $XDB/db/b -curl -s $XDB/db/c -curl -s $XDB/db/d - -curl -s $YDB/db/a -curl -s $YDB/db/b -curl -s $YDB/db/c -curl -s $YDB/db/d - -curl -sX PUT $XDB/db/b?rev="1-809cfddb59a4f02dc1009785fad978b4" -d '{"b":5,"_access":["x"]}' -curl -sX PUT $XDB/db/c?rev="1-0865d643568aa9be6bcdc15d88b25912" -d '{"c":6,"_access":["y"]}' -curl -sX PUT $XDB/db/d?rev="1-87adddda059e643409c43bea87c37bfe" -d '{"d":7,"_access":["y"]}' - -curl -sX PUT $YDB/db/b?rev="1-809cfddb59a4f02dc1009785fad978b4" -d '{"b":5,"_access":["x"]}' -curl -sX PUT $YDB/db/c?rev="1-0865d643568aa9be6bcdc15d88b25912" -d '{"c":6,"_access":["y"]}' -curl -sX PUT $YDB/db/d?rev="1-87adddda059e643409c43bea87c37bfe" -d '{"d":7,"_access":["y"]}' - -curl -sX DELETE $XDB/db/b?rev="2-384262a5168d1187dff405530046666" -curl -sX DELETE $XDB/db/c?rev="2-4cdae6f0a7539ea92dc79f3d3b0379b" -curl -sX DELETE $XDB/db/d?rev="2-868c18641965cfae831be1114b49a66b" - -curl -sX DELETE $YDB/db/b?rev="2-384262a5168d1187dff405530046666" -curl -sX DELETE $YDB/db/c?rev="2-4cdae6f0a7539ea92dc79f3d3b0379b" -curl -sX DELETE $YDB/db/d?rev="2-868c18641965cfae831be1114b49a66b" +# curl -s $DB/db/c +# curl -s $DB/db/d +# +# curl -s $XDB/db/a +# curl -s $XDB/db/b +# curl -s $XDB/db/c +# curl -s $XDB/db/d +# +# curl -s $YDB/db/a +# curl -s $YDB/db/b +# curl -s $YDB/db/c +# curl -s $YDB/db/d +# +# curl -sX PUT $XDB/db/b?rev="1-809cfddb59a4f02dc1009785fad978b4" -d '{"b":5,"_access":["x"]}' +# curl -sX PUT $XDB/db/c?rev="1-0865d643568aa9be6bcdc15d88b25912" -d '{"c":6,"_access":["y"]}' +# curl -sX PUT $XDB/db/d?rev="1-87adddda059e643409c43bea87c37bfe" -d '{"d":7,"_access":["y"]}' +# +# curl -sX PUT $YDB/db/b?rev="1-809cfddb59a4f02dc1009785fad978b4" -d '{"b":5,"_access":["x"]}' +# curl -sX PUT $YDB/db/c?rev="1-0865d643568aa9be6bcdc15d88b25912" -d '{"c":6,"_access":["y"]}' +# curl -sX PUT $YDB/db/d?rev="1-87adddda059e643409c43bea87c37bfe" -d '{"d":7,"_access":["y"]}' +# +# curl -sX DELETE $XDB/db/b?rev="2-384262a5168d1187dff405530046666" +# curl -sX DELETE $XDB/db/c?rev="2-4cdae6f0a7539ea92dc79f3d3b0379b" +# curl -sX DELETE $XDB/db/d?rev="2-868c18641965cfae831be1114b49a66b" +# +# curl -sX DELETE $YDB/db/b?rev="2-384262a5168d1187dff405530046666" +# curl -sX DELETE $YDB/db/c?rev="2-4cdae6f0a7539ea92dc79f3d3b0379b" +# curl -sX DELETE $YDB/db/d?rev="2-868c18641965cfae831be1114b49a66b" |