diff options
author | Tor Egge <Tor.Egge@online.no> | 2023-11-01 15:00:20 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2023-11-01 15:00:20 +0100 |
commit | e78c6270cf0ee726fb27f267e75f18e536979862 (patch) | |
tree | 4a82a9c6c941d8c783b9b3216197c7d196cc714f /config-model/src/test/java/com/yahoo/schema | |
parent | 6192b332c6ab2d015c71eb7b8834e01581cf7a9f (diff) |
Use "copy" summary transform when field is only defined as summary field.
Diffstat (limited to 'config-model/src/test/java/com/yahoo/schema')
-rw-r--r-- | config-model/src/test/java/com/yahoo/schema/derived/SummaryTestCase.java | 2 | ||||
-rw-r--r-- | config-model/src/test/java/com/yahoo/schema/processing/AddExtraFieldsToDocumentTest.java | 65 |
2 files changed, 66 insertions, 1 deletions
diff --git a/config-model/src/test/java/com/yahoo/schema/derived/SummaryTestCase.java b/config-model/src/test/java/com/yahoo/schema/derived/SummaryTestCase.java index 5e02f63ec39..a27bc824b45 100644 --- a/config-model/src/test/java/com/yahoo/schema/derived/SummaryTestCase.java +++ b/config-model/src/test/java/com/yahoo/schema/derived/SummaryTestCase.java @@ -80,7 +80,7 @@ public class SummaryTestCase extends AbstractSchemaTestCase { assertSummaryField("description", SummaryClassField.Type.LONGSTRING, fields.next()); assertSummaryField("dyndesc", SummaryClassField.Type.LONGSTRING, "dynamicteaser", "description", fields.next()); assertSummaryField("longdesc", SummaryClassField.Type.LONGSTRING, fields.next()); - assertSummaryField("longstat", SummaryClassField.Type.LONGSTRING, fields.next()); + assertSummaryField("longstat", SummaryClassField.Type.LONGSTRING, "copy", "longdesc", fields.next()); assertSummaryField("dynlong", SummaryClassField.Type.LONGSTRING, "dynamicteaser", "longdesc", fields.next()); assertSummaryField("dyndesc2", SummaryClassField.Type.LONGSTRING, "dynamicteaser", "longdesc", fields.next()); assertSummaryField("measurement", SummaryClassField.Type.INTEGER, "attribute", "measurement", fields.next()); diff --git a/config-model/src/test/java/com/yahoo/schema/processing/AddExtraFieldsToDocumentTest.java b/config-model/src/test/java/com/yahoo/schema/processing/AddExtraFieldsToDocumentTest.java new file mode 100644 index 00000000000..43b403c42c6 --- /dev/null +++ b/config-model/src/test/java/com/yahoo/schema/processing/AddExtraFieldsToDocumentTest.java @@ -0,0 +1,65 @@ +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.schema.processing; + +import com.yahoo.document.DataType; +import com.yahoo.schema.ApplicationBuilder; +import com.yahoo.schema.Schema; +import com.yahoo.schema.parser.ParseException; +import com.yahoo.vespa.documentmodel.SummaryTransform; +import com.yahoo.vespa.model.test.utils.DeployLoggerStub; +import org.junit.jupiter.api.Test; + +import static com.yahoo.config.model.test.TestUtil.joinLines; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +/* + * Test AddExtraFieldsToDocument processor. + */ +public class AddExtraFieldsToDocumentTest { + + @Test + public void testCopyTransformForExtraSummaryFields() throws ParseException { + String sd = joinLines("schema test {", + " document test {", + " field a type string { indexing: index }", + " field b type int { }", + " field c type long { indexing: attribute }", + " }", + " document-summary foo {", + " summary my_a { source: a }", + " summary my_b { source: b }", + " summary my_c { source: c }", + " from-disk", + " }", + "}"); + DeployLoggerStub logger = new DeployLoggerStub(); + var builder = ApplicationBuilder.createFromStrings(logger, sd); + var schema = builder.getSchema(); + assertTrue(logger.entries.isEmpty()); + // Don't use extra fields when generating summary. + assertSummary(schema, "foo", "my_a", SummaryTransform.COPY, "a"); + assertSummary(schema, "foo", "my_b", SummaryTransform.COPY, "b"); + assertSummary(schema, "foo", "my_c", SummaryTransform.ATTRIBUTE, "c"); + // Extra fields should still be created + assertField(schema, "my_a", DataType.STRING); + assertField(schema,"my_b", DataType.INT); + assertNull(schema.getDocument().getField("my_c")); + } + + private void assertSummary(Schema schema, String dsName, String name, SummaryTransform transform, String source) { + var docsum = schema.getSummary(dsName); + var field = docsum.getSummaryField(name); + assertEquals(transform, field.getTransform()); + assertEquals(source, field.getSingleSource()); + } + + private void assertField(Schema schema, String name, DataType type) { + var field = schema.getDocument().getField(name); + assertNotNull(field); + assertEquals(field.getDataType(), type); + } + +} |