summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Lehnardt <jan@apache.org>2019-05-07 12:01:06 +0200
committerJan Lehnardt <jan@apache.org>2019-05-07 12:01:06 +0200
commitf1e765c6d236e653df6e4283367daa9128da51bf (patch)
treeae85e38832bfe438e223885980dbfaf40d1b31e4
parent3872ed7ec0a72d475046be4821141ff6e54e468f (diff)
downloadcouchdb-f1e765c6d236e653df6e4283367daa9128da51bf.tar.gz
wip
-rw-r--r--src/couch/src/couch_doc.erl12
-rwxr-xr-xt.sh90
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),
diff --git a/t.sh b/t.sh
index a9cd5a5ec..7b9b5e250 100755
--- a/t.sh
+++ b/t.sh
@@ -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"