aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne H Juul <arnej27959@users.noreply.github.com>2022-02-15 18:10:26 +0100
committerGitHub <noreply@github.com>2022-02-15 18:10:26 +0100
commitf21d76a13a8c569897643293a984374ae08e3a3e (patch)
treef764681a2db9ff455be8db3f4e87cedc2124126e
parentc9d77e82dc48cdc772fe95f720d3f772993093c8 (diff)
parentf83e44760a72cc7d0226352b1114ffc3a8f97dee (diff)
Merge pull request #21205 from vespa-engine/arnej/prepare-for-document-fields
add special DocumentOnly fieldset in Java as well
-rw-r--r--document/abi-spec.json18
-rw-r--r--document/src/main/java/com/yahoo/document/fieldset/DocumentOnly.java18
-rw-r--r--document/src/main/java/com/yahoo/document/fieldset/FieldSetRepo.java32
-rw-r--r--document/src/test/java/com/yahoo/document/DocumentTestCaseBase.java4
-rw-r--r--document/src/test/java/com/yahoo/document/fieldset/FieldSetTestCase.java14
-rw-r--r--document/src/tests/fieldsettest.cpp21
-rw-r--r--document/src/vespa/document/base/testdocrepo.cpp5
-rw-r--r--documentapi/src/main/java/com/yahoo/documentapi/VisitorParameters.java2
-rw-r--r--documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java2
-rwxr-xr-xdocumentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusSyncSession.java2
-rw-r--r--documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/CreateVisitorMessage.java2
-rwxr-xr-xdocumentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/GetDocumentMessage.java2
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java3
-rw-r--r--vespaclient-java/src/main/java/com/yahoo/vespaget/CommandLineOptions.java7
-rw-r--r--vespaclient-java/src/test/java/com/yahoo/vespaget/CommandLineOptionsTest.java2
15 files changed, 130 insertions, 4 deletions
diff --git a/document/abi-spec.json b/document/abi-spec.json
index d5ad686cd1f..83a56d4fb5e 100644
--- a/document/abi-spec.json
+++ b/document/abi-spec.json
@@ -2576,6 +2576,24 @@
"public static final java.lang.String NAME"
]
},
+ "com.yahoo.document.fieldset.DocumentOnly": {
+ "superClass": "java.lang.Object",
+ "interfaces": [
+ "com.yahoo.document.fieldset.FieldSet"
+ ],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public void <init>()",
+ "public boolean contains(com.yahoo.document.fieldset.FieldSet)",
+ "public com.yahoo.document.fieldset.FieldSet clone()",
+ "public bridge synthetic java.lang.Object clone()"
+ ],
+ "fields": [
+ "public static final java.lang.String NAME"
+ ]
+ },
"com.yahoo.document.fieldset.FieldCollection": {
"superClass": "java.util.ArrayList",
"interfaces": [
diff --git a/document/src/main/java/com/yahoo/document/fieldset/DocumentOnly.java b/document/src/main/java/com/yahoo/document/fieldset/DocumentOnly.java
new file mode 100644
index 00000000000..7ddfad13dfc
--- /dev/null
+++ b/document/src/main/java/com/yahoo/document/fieldset/DocumentOnly.java
@@ -0,0 +1,18 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.document.fieldset;
+
+/**
+ * @author arnej27959
+ */
+public class DocumentOnly implements FieldSet {
+ public static final String NAME = "[document]";
+ @Override
+ public boolean contains(FieldSet o) {
+ return (o instanceof DocumentOnly || o instanceof DocIdOnly || o instanceof NoFields);
+ }
+
+ @Override
+ public FieldSet clone() {
+ return new DocumentOnly();
+ }
+}
diff --git a/document/src/main/java/com/yahoo/document/fieldset/FieldSetRepo.java b/document/src/main/java/com/yahoo/document/fieldset/FieldSetRepo.java
index 41a1b898867..9b6507d171a 100644
--- a/document/src/main/java/com/yahoo/document/fieldset/FieldSetRepo.java
+++ b/document/src/main/java/com/yahoo/document/fieldset/FieldSetRepo.java
@@ -21,13 +21,14 @@ public class FieldSetRepo {
FieldSet parseSpecialValues(String name)
{
if (name.equals(DocIdOnly.NAME)) { return new DocIdOnly(); }
+ else if (name.equals(DocumentOnly.NAME)) { return (new DocumentOnly()); }
else if (name.equals(AllFields.NAME)) { return (new AllFields()); }
else if (name.equals(NoFields.NAME)) { return (new NoFields()); }
else if (name.equals("[docid]")) { return (new DocIdOnly()); }
else {
throw new IllegalArgumentException(
"The only special names (enclosed in '[]') allowed are " +
- "id, all, none");
+ "id, all, document, none");
}
}
@@ -101,6 +102,8 @@ public class FieldSetRepo {
return NoFields.NAME;
} else if (fieldSet instanceof DocIdOnly) {
return DocIdOnly.NAME;
+ } else if (fieldSet instanceof DocumentOnly) {
+ return DocumentOnly.NAME;
} else {
throw new IllegalArgumentException("Unknown field set type " + fieldSet);
}
@@ -112,6 +115,18 @@ public class FieldSetRepo {
* fieldset.
*/
public void copyFields(Document source, Document target, FieldSet fieldSet) {
+ if (fieldSet instanceof DocumentOnly) {
+ var actual = source.getDataType().fieldSet(DocumentOnly.NAME);
+ if (actual != null) {
+ for (Iterator<Map.Entry<Field, FieldValue>> i = source.iterator(); i.hasNext();) {
+ Map.Entry<Field, FieldValue> v = i.next();
+ if (actual.contains(v.getKey())) {
+ target.setFieldValue(v.getKey(), v.getValue());
+ }
+ }
+ return;
+ }
+ }
for (Iterator<Map.Entry<Field, FieldValue>> i = source.iterator(); i.hasNext();) {
Map.Entry<Field, FieldValue> v = i.next();
@@ -126,6 +141,21 @@ public class FieldSetRepo {
*/
public void stripFields(Document target, FieldSet fieldSet) {
List<Field> toStrip = new ArrayList<>();
+ if (fieldSet instanceof DocumentOnly) {
+ var actual = target.getDataType().fieldSet(DocumentOnly.NAME);
+ if (actual != null) {
+ for (Iterator<Map.Entry<Field, FieldValue>> i = target.iterator(); i.hasNext();) {
+ Map.Entry<Field, FieldValue> v = i.next();
+ if (! actual.contains(v.getKey())) {
+ toStrip.add(v.getKey());
+ }
+ }
+ for (Field f : toStrip) {
+ target.removeFieldValue(f);
+ }
+ return;
+ }
+ }
for (Iterator<Map.Entry<Field, FieldValue>> i = target.iterator(); i.hasNext();) {
Map.Entry<Field, FieldValue> v = i.next();
diff --git a/document/src/test/java/com/yahoo/document/DocumentTestCaseBase.java b/document/src/test/java/com/yahoo/document/DocumentTestCaseBase.java
index bf9960c3ca3..871e54ca46c 100644
--- a/document/src/test/java/com/yahoo/document/DocumentTestCaseBase.java
+++ b/document/src/test/java/com/yahoo/document/DocumentTestCaseBase.java
@@ -5,6 +5,8 @@ import com.yahoo.document.datatypes.FloatFieldValue;
import com.yahoo.document.datatypes.Raw;
import java.nio.ByteBuffer;
+import java.util.List;
+import java.util.Map;
import static org.junit.Assert.assertNotNull;
@@ -61,6 +63,8 @@ public class DocumentTestCaseBase {
stringField = testDocType.getField("stringattr");
minField = testDocType.getField("Minattr");
+ testDocType.addFieldSets(Map.of("[document]", List.of("stringattr", "intattr")));
+
docMan.registerDocumentType(testDocType);
}
diff --git a/document/src/test/java/com/yahoo/document/fieldset/FieldSetTestCase.java b/document/src/test/java/com/yahoo/document/fieldset/FieldSetTestCase.java
index e1e93adfb6d..b6dff63ac7b 100644
--- a/document/src/test/java/com/yahoo/document/fieldset/FieldSetTestCase.java
+++ b/document/src/test/java/com/yahoo/document/fieldset/FieldSetTestCase.java
@@ -23,6 +23,7 @@ public class FieldSetTestCase extends DocumentTestCaseBase {
@Test
public void testClone() throws Exception {
assertTrue(new AllFields().clone() instanceof AllFields);
+ assertTrue(new DocumentOnly().clone() instanceof DocumentOnly);
assertTrue(new NoFields().clone() instanceof NoFields);
assertTrue(new DocIdOnly().clone() instanceof DocIdOnly);
}
@@ -32,6 +33,7 @@ public class FieldSetTestCase extends DocumentTestCaseBase {
FieldSetRepo repo = new FieldSetRepo();
assertTrue(repo.parse(docMan, AllFields.NAME) instanceof AllFields);
+ assertTrue(repo.parse(docMan, DocumentOnly.NAME) instanceof DocumentOnly);
assertTrue(repo.parse(docMan, NoFields.NAME) instanceof NoFields);
assertTrue(repo.parse(docMan, DocIdOnly.NAME) instanceof DocIdOnly);
@@ -72,21 +74,30 @@ public class FieldSetTestCase extends DocumentTestCaseBase {
assertTrue(intAttr.contains(new DocIdOnly()));
assertTrue(intAttr.contains(new NoFields()));
assertFalse(intAttr.contains(new AllFields()));
+ assertFalse(intAttr.contains(new DocumentOnly()));
assertFalse(new NoFields().contains(intAttr));
assertFalse(new NoFields().contains(new AllFields()));
assertFalse(new NoFields().contains(new DocIdOnly()));
+ assertFalse(new NoFields().contains(new DocumentOnly()));
assertTrue(new AllFields().contains(intAttr));
assertTrue(new AllFields().contains(rawAttr));
assertTrue(new AllFields().contains(new DocIdOnly()));
+ assertTrue(new AllFields().contains(new DocumentOnly()));
assertTrue(new AllFields().contains(new NoFields()));
assertTrue(new AllFields().contains(new AllFields()));
assertTrue(new DocIdOnly().contains(new NoFields()));
assertTrue(new DocIdOnly().contains(new DocIdOnly()));
+ assertFalse(new DocIdOnly().contains(new DocumentOnly()));
assertFalse(new DocIdOnly().contains(intAttr));
+ assertTrue(new DocumentOnly().contains(new NoFields()));
+ assertTrue(new DocumentOnly().contains(new DocIdOnly()));
+ assertTrue(new DocumentOnly().contains(new DocumentOnly()));
+ assertFalse(new DocumentOnly().contains(intAttr));
+
assertContains("testdoc:rawattr,intattr", "testdoc:intattr");
assertNotContains("testdoc:intattr", "testdoc:rawattr,intattr");
assertContains("testdoc:intattr,rawattr", "testdoc:rawattr,intattr");
@@ -124,6 +135,7 @@ public class FieldSetTestCase extends DocumentTestCaseBase {
doc.removeFieldValue("rawattr");
assertEquals("floatattr:3.56,stringattr:tjohei,intattr:50,byteattr:30", doCopyFields(doc, AllFields.NAME));
+ assertEquals("stringattr:tjohei,intattr:50", doCopyFields(doc, DocumentOnly.NAME));
assertEquals("floatattr:3.56,byteattr:30", doCopyFields(doc, "testdoc:floatattr,byteattr"));
}
@@ -140,6 +152,7 @@ public class FieldSetTestCase extends DocumentTestCaseBase {
doc.removeFieldValue("rawattr");
assertEquals("floatattr:3.56,stringattr:tjohei,intattr:50,byteattr:30", doStripFields(doc, AllFields.NAME));
+ assertEquals("stringattr:tjohei,intattr:50", doStripFields(doc, DocumentOnly.NAME));
assertEquals("floatattr:3.56,byteattr:30", doStripFields(doc, "testdoc:floatattr,byteattr"));
}
@@ -150,6 +163,7 @@ public class FieldSetTestCase extends DocumentTestCaseBase {
AllFields.NAME,
NoFields.NAME,
DocIdOnly.NAME,
+ DocumentOnly.NAME,
"testdoc:rawattr",
"testdoc:rawattr,intattr"
};
diff --git a/document/src/tests/fieldsettest.cpp b/document/src/tests/fieldsettest.cpp
index b4ee7713613..9f00fdd8c0d 100644
--- a/document/src/tests/fieldsettest.cpp
+++ b/document/src/tests/fieldsettest.cpp
@@ -28,6 +28,7 @@ TEST_F(FieldSetTest, testParsing)
const DocumentTypeRepo& docRepo = testDocMan.getTypeRepo();
(void) dynamic_cast<AllFields&>(*FieldSetRepo::parse(docRepo, AllFields::NAME));
+ (void) dynamic_cast<DocumentOnly&>(*FieldSetRepo::parse(docRepo, DocumentOnly::NAME));
(void) dynamic_cast<NoFields&>(*FieldSetRepo::parse(docRepo, NoFields::NAME));
(void) dynamic_cast<DocIdOnly&>(*FieldSetRepo::parse(docRepo, DocIdOnly::NAME));
@@ -73,6 +74,7 @@ TEST_F(FieldSetTest, testContains)
NoFields none;
AllFields all;
+ DocumentOnly doconly;
DocIdOnly id;
EXPECT_EQ(false, headerField.contains(type.getField("headerlongval")));
@@ -87,6 +89,8 @@ TEST_F(FieldSetTest, testContains)
EXPECT_EQ(true, all.contains(id));
EXPECT_EQ(false, none.contains(id));
EXPECT_EQ(true, id.contains(none));
+ EXPECT_EQ(true, doconly.contains(none));
+ EXPECT_EQ(true, doconly.contains(id));
EXPECT_EQ(true, checkContains(repo,
"testdoctype1:content,headerval",
@@ -181,6 +185,9 @@ TEST_F(FieldSetTest, testCopyDocumentFields)
"headerval: 5678\n"
"hstringval: hello fantastic world\n"),
doCopyFields(*src, repo, AllFields::NAME));
+ EXPECT_EQ(std::string("headerval: 5678\n"
+ "hstringval: hello fantastic world\n"),
+ doCopyFields(*src, repo, DocumentOnly::NAME));
EXPECT_EQ(std::string("content: megafoo megabar\n"
"hstringval: hello fantastic world\n"),
doCopyFields(*src, repo, "testdoctype1:hstringval,content"));
@@ -219,9 +226,19 @@ TEST_F(FieldSetTest, testDocumentSubsetCopy)
EXPECT_EQ(doCopyFields(*src, repo, AllFields::NAME),
stringifyFields(*doc));
}
+ {
+ Document::UP doc(FieldSet::createDocumentSubsetCopy(*src, DocumentOnly()));
+ // Test that document id and type are copied correctly.
+ EXPECT_TRUE(doc.get());
+ EXPECT_EQ(src->getId(), doc->getId());
+ EXPECT_EQ(src->getType(), doc->getType());
+ EXPECT_EQ(doCopyFields(*src, repo, DocumentOnly::NAME),
+ stringifyFields(*doc));
+ }
const char* fieldSets[] = {
AllFields::NAME,
+ DocumentOnly::NAME,
NoFields::NAME,
"testdoctype1:hstringval,content"
};
@@ -239,6 +256,7 @@ TEST_F(FieldSetTest, testSerialize)
const char* fieldSets[] = {
AllFields::NAME,
NoFields::NAME,
+ DocumentOnly::NAME,
DocIdOnly::NAME,
"testdoctype1:content",
"testdoctype1:content,hstringval"
@@ -264,6 +282,9 @@ TEST_F(FieldSetTest, testStripFields)
"headerval: 5678\n"
"hstringval: hello fantastic world\n"),
doStripFields(*src, repo, AllFields::NAME));
+ EXPECT_EQ(std::string("headerval: 5678\n"
+ "hstringval: hello fantastic world\n"),
+ doStripFields(*src, repo, DocumentOnly::NAME));
EXPECT_EQ(std::string("content: megafoo megabar\n"
"hstringval: hello fantastic world\n"),
doStripFields(*src, repo, "testdoctype1:hstringval,content"));
diff --git a/document/src/vespa/document/base/testdocrepo.cpp b/document/src/vespa/document/base/testdocrepo.cpp
index fed14eef792..c1930de8551 100644
--- a/document/src/vespa/document/base/testdocrepo.cpp
+++ b/document/src/vespa/document/base/testdocrepo.cpp
@@ -27,6 +27,7 @@ DocumenttypesConfig TestDocRepo::getDefaultConfig() {
const int mystruct_id = -2092985851;
const int structarray_id = 759956026;
config_builder::DocumenttypesConfigBuilderHelper builder;
+ ::config::StringVector documentfields = { "headerval", "hstringval", "title" };
builder.document(type1_id, "testdoctype1",
Struct("testdoctype1.header")
.addField("headerval", DataType::T_INT)
@@ -55,7 +56,9 @@ DocumenttypesConfig TestDocRepo::getDefaultConfig() {
.addTensorField("sparse_tensor", "tensor(x{})")
.addTensorField("sparse_xy_tensor", "tensor(x{},y{})")
.addTensorField("sparse_float_tensor", "tensor<float>(x{})")
- .addTensorField("dense_tensor", "tensor(x[2])"));
+ .addTensorField("dense_tensor", "tensor(x[2])"))
+ .doc_type.fieldsets["[document]"].fields.swap(documentfields);
+
builder.document(type2_id, "testdoctype2",
Struct("testdoctype2.header")
.addField("onlyinchild", DataType::T_INT),
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/VisitorParameters.java b/documentapi/src/main/java/com/yahoo/documentapi/VisitorParameters.java
index 605bb95ba24..a9dfe0128e0 100644
--- a/documentapi/src/main/java/com/yahoo/documentapi/VisitorParameters.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/VisitorParameters.java
@@ -4,6 +4,7 @@ package com.yahoo.documentapi;
import com.yahoo.document.BucketId;
import com.yahoo.document.FixedBucketSpaces;
import com.yahoo.document.fieldset.AllFields;
+import com.yahoo.document.fieldset.DocumentOnly;
import com.yahoo.documentapi.messagebus.loadtypes.LoadType;
import com.yahoo.documentapi.messagebus.protocol.DocumentProtocol;
import com.yahoo.messagebus.ThrottlePolicy;
@@ -30,6 +31,7 @@ public class VisitorParameters extends Parameters {
private long fromTimestamp = 0;
private long toTimestamp = 0;
boolean visitRemoves = false;
+ // TODO Vespa 8: change to DocumentOnly.NAME;
private String fieldSet = AllFields.NAME;
boolean visitInconsistentBuckets = false;
private ProgressToken resumeToken = null;
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java
index 259b598dbf5..a39f8e81757 100644
--- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java
@@ -7,6 +7,7 @@ import com.yahoo.document.DocumentPut;
import com.yahoo.document.DocumentRemove;
import com.yahoo.document.DocumentUpdate;
import com.yahoo.document.fieldset.AllFields;
+import com.yahoo.document.fieldset.DocumentOnly;
import com.yahoo.documentapi.AsyncParameters;
import com.yahoo.documentapi.AsyncSession;
import com.yahoo.documentapi.DocumentIdResponse;
@@ -127,6 +128,7 @@ public class MessageBusAsyncSession implements MessageBusSession, AsyncSession {
@Override
public Result get(DocumentId id, DocumentOperationParameters parameters) {
+ // TODO Vespa 8: change to DocumentOnly.NAME
GetDocumentMessage msg = new GetDocumentMessage(id, parameters.fieldSet().orElse(AllFields.NAME));
msg.setPriority(parameters.priority().orElse(DocumentProtocol.Priority.NORMAL_1));
return send(msg, parameters);
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusSyncSession.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusSyncSession.java
index 4bc96ed1d22..5537d122e16 100755
--- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusSyncSession.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusSyncSession.java
@@ -7,6 +7,7 @@ import com.yahoo.document.DocumentPut;
import com.yahoo.document.DocumentRemove;
import com.yahoo.document.DocumentUpdate;
import com.yahoo.document.fieldset.AllFields;
+import com.yahoo.document.fieldset.DocumentOnly;
import com.yahoo.documentapi.AsyncParameters;
import com.yahoo.documentapi.DocumentAccessException;
import com.yahoo.documentapi.DocumentOperationParameters;
@@ -152,6 +153,7 @@ public class MessageBusSyncSession implements MessageBusSession, SyncSession, Re
@Override
public Document get(DocumentId id, DocumentOperationParameters parameters, Duration timeout) {
+ // TODO Vespa 8: change to DocumentOnly.NAME
GetDocumentMessage msg = new GetDocumentMessage(id, parameters.fieldSet().orElse(AllFields.NAME));
msg.setPriority(parameters.priority().orElse(DocumentProtocol.Priority.NORMAL_1));
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/CreateVisitorMessage.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/CreateVisitorMessage.java
index cae0587ae39..097632f609f 100644
--- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/CreateVisitorMessage.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/CreateVisitorMessage.java
@@ -4,6 +4,7 @@ package com.yahoo.documentapi.messagebus.protocol;
import com.yahoo.document.BucketId;
import com.yahoo.document.FixedBucketSpaces;
import com.yahoo.document.fieldset.AllFields;
+import com.yahoo.document.fieldset.DocumentOnly;
import java.util.ArrayList;
import java.util.Iterator;
@@ -24,6 +25,7 @@ public class CreateVisitorMessage extends DocumentMessage {
private long fromTime = 0;
private long toTime = 0;
private boolean visitRemoves = false;
+ // TODO Vespa 8: change to DocumentOnly.NAME
private String fieldSet = AllFields.NAME;
private boolean visitInconsistentBuckets = false;
private Map<String, byte[]> params = new TreeMap<>();
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/GetDocumentMessage.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/GetDocumentMessage.java
index 669c355b2d8..0f6e738cb86 100755
--- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/GetDocumentMessage.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/GetDocumentMessage.java
@@ -3,6 +3,7 @@ package com.yahoo.documentapi.messagebus.protocol;
import com.yahoo.document.DocumentId;
import com.yahoo.document.fieldset.AllFields;
+import com.yahoo.document.fieldset.DocumentOnly;
import java.util.Arrays;
@@ -11,6 +12,7 @@ import java.util.Arrays;
*/
public class GetDocumentMessage extends DocumentMessage {
+ // TODO Vespa 8: change to DocumentOnly.NAME
final static String DEFAULT_FIELD_SET = AllFields.NAME;
private DocumentId documentId = null;
private String fieldSet = DEFAULT_FIELD_SET;
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
index 180ddca2ca5..4d7c2f1cc14 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
@@ -20,6 +20,7 @@ import com.yahoo.document.FixedBucketSpaces;
import com.yahoo.document.TestAndSetCondition;
import com.yahoo.document.config.DocumentmanagerConfig;
import com.yahoo.document.fieldset.AllFields;
+import com.yahoo.document.fieldset.DocumentOnly;
import com.yahoo.document.fieldset.DocIdOnly;
import com.yahoo.document.idstring.IdIdString;
import com.yahoo.document.json.DocumentOperationType;
@@ -379,6 +380,7 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler {
StorageCluster destination = resolveCluster(Optional.of(requireProperty(request, DESTINATION_CLUSTER)), clusters);
VisitorParameters parameters = parseParameters(request, path);
parameters.setRemoteDataHandler("[Content:cluster=" + destination.name() + "]"); // Bypass indexing.
+ // TODO Vespa 8: change to DocumentOnly.NAME
parameters.setFieldSet(AllFields.NAME);
return () -> {
visitWithRemote(request, parameters, handler);
@@ -1088,6 +1090,7 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler {
throw new IllegalArgumentException("Must set 'cluster' parameter to a valid content cluster id when visiting at a root /document/v1/ level");
VisitorParameters parameters = parseCommonParameters(request, path, cluster);
+ // TODO Vespa 8: change to DocumentOnly.NAME
parameters.setFieldSet(getProperty(request, FIELD_SET).orElse(path.documentType().map(type -> type + ":[document]").orElse(AllFields.NAME)));
parameters.setMaxTotalHits(wantedDocumentCount);
parameters.visitInconsistentBuckets(true);
diff --git a/vespaclient-java/src/main/java/com/yahoo/vespaget/CommandLineOptions.java b/vespaclient-java/src/main/java/com/yahoo/vespaget/CommandLineOptions.java
index 0eef559da3f..da9f48f44b1 100644
--- a/vespaclient-java/src/main/java/com/yahoo/vespaget/CommandLineOptions.java
+++ b/vespaclient-java/src/main/java/com/yahoo/vespaget/CommandLineOptions.java
@@ -2,6 +2,7 @@
package com.yahoo.vespaget;
import com.yahoo.document.fieldset.AllFields;
+import com.yahoo.document.fieldset.DocumentOnly;
import com.yahoo.document.fieldset.DocIdOnly;
import com.yahoo.documentapi.messagebus.protocol.DocumentProtocol;
import org.apache.commons.cli.CommandLine;
@@ -67,6 +68,7 @@ public class CommandLineOptions {
.longOpt(PRINTIDS_OPTION)
.build());
+ // TODO Vespa 8: change to DocumentOnly.NAME
options.addOption(Option.builder("f")
.hasArg(true)
.desc("Retrieve the specified fields only (see https://docs.vespa.ai/en/documents.html#fieldsets) (default '" + AllFields.NAME + "')")
@@ -181,8 +183,9 @@ public class CommandLineOptions {
if (printIdsOnly) {
fieldSet = DocIdOnly.NAME;
- } else if (fieldSet.isEmpty()) {
- fieldSet = AllFields.NAME;
+ } else if (fieldSet.isEmpty()) {
+ // TODO Vespa 8: change to DocumentOnly.NAME
+ fieldSet = AllFields.NAME;
}
if (!cluster.isEmpty() && !route.isEmpty()) {
diff --git a/vespaclient-java/src/test/java/com/yahoo/vespaget/CommandLineOptionsTest.java b/vespaclient-java/src/test/java/com/yahoo/vespaget/CommandLineOptionsTest.java
index 6af2344e36e..b634e899b74 100644
--- a/vespaclient-java/src/test/java/com/yahoo/vespaget/CommandLineOptionsTest.java
+++ b/vespaclient-java/src/test/java/com/yahoo/vespaget/CommandLineOptionsTest.java
@@ -2,6 +2,7 @@
package com.yahoo.vespaget;
import com.yahoo.document.fieldset.AllFields;
+import com.yahoo.document.fieldset.DocumentOnly;
import com.yahoo.document.fieldset.DocIdOnly;
import com.yahoo.documentapi.messagebus.protocol.DocumentProtocol;
import org.junit.Rule;
@@ -55,6 +56,7 @@ public class CommandLineOptionsTest {
assertFalse(params.help);
assertFalse(params.documentIds.hasNext());
assertFalse(params.printIdsOnly);
+ // TODO Vespa 8: change to DocumentOnly.NAME
assertEquals(AllFields.NAME, params.fieldSet);
assertEquals("default-get", params.route);
assertTrue(params.cluster.isEmpty());