12
12
import org .opensearch .action .index .IndexResponse ;
13
13
import org .opensearch .action .search .SearchResponse ;
14
14
import org .opensearch .action .support .clustermanager .AcknowledgedResponse ;
15
+ import org .opensearch .cluster .metadata .IndexMetadata ;
15
16
import org .opensearch .common .Rounding ;
16
17
import org .opensearch .common .settings .Settings ;
17
18
import org .opensearch .common .util .FeatureFlags ;
@@ -56,6 +57,7 @@ public class StarTreeMapperIT extends OpenSearchIntegTestCase {
56
57
private static final String TEST_INDEX = "test" ;
57
58
Settings settings = Settings .builder ()
58
59
.put (StarTreeIndexSettings .IS_COMPOSITE_INDEX_SETTING .getKey (), true )
60
+ .put (IndexMetadata .INDEX_APPEND_ONLY_ENABLED_SETTING .getKey (), true )
59
61
.put (IndexSettings .INDEX_TRANSLOG_FLUSH_THRESHOLD_SIZE_SETTING .getKey (), new ByteSizeValue (512 , ByteSizeUnit .MB ))
60
62
.build ();
61
63
@@ -756,6 +758,7 @@ public void testValidCompositeIndexWithDuplicateDates() {
756
758
public void testCompositeIndexWithIndexNotSpecified () {
757
759
Settings settings = Settings .builder ()
758
760
.put (IndexSettings .INDEX_TRANSLOG_FLUSH_THRESHOLD_SIZE_SETTING .getKey (), new ByteSizeValue (512 , ByteSizeUnit .MB ))
761
+ .put (IndexMetadata .INDEX_APPEND_ONLY_ENABLED_SETTING .getKey (), true )
759
762
.build ();
760
763
MapperParsingException ex = expectThrows (
761
764
MapperParsingException .class ,
@@ -767,9 +770,25 @@ public void testCompositeIndexWithIndexNotSpecified() {
767
770
);
768
771
}
769
772
773
+ public void testAppendOnlyInCompositeIndexNotSpecified () {
774
+ Settings settings = Settings .builder ()
775
+ .put (IndexSettings .INDEX_TRANSLOG_FLUSH_THRESHOLD_SIZE_SETTING .getKey (), new ByteSizeValue (512 , ByteSizeUnit .MB ))
776
+ .put (StarTreeIndexSettings .IS_COMPOSITE_INDEX_SETTING .getKey (), true )
777
+ .build ();
778
+ MapperParsingException ex = expectThrows (
779
+ MapperParsingException .class ,
780
+ () -> prepareCreate (TEST_INDEX ).setSettings (settings ).setMapping (createMinimalTestMapping (false , false , false )).get ()
781
+ );
782
+ assertEquals (
783
+ "Failed to parse mapping [_doc]: Set 'index.append_only.enabled' as true as part of index settings to use star tree index" ,
784
+ ex .getMessage ()
785
+ );
786
+ }
787
+
770
788
public void testCompositeIndexWithHigherTranslogFlushSize () {
771
789
Settings settings = Settings .builder ()
772
790
.put (StarTreeIndexSettings .IS_COMPOSITE_INDEX_SETTING .getKey (), true )
791
+ .put (IndexMetadata .INDEX_APPEND_ONLY_ENABLED_SETTING .getKey (), true )
773
792
.put (IndexSettings .INDEX_TRANSLOG_FLUSH_THRESHOLD_SIZE_SETTING .getKey (), new ByteSizeValue (513 , ByteSizeUnit .MB ))
774
793
.build ();
775
794
IllegalArgumentException ex = expectThrows (
@@ -1082,6 +1101,7 @@ public void testMaxDimsCompositeIndex() {
1082
1101
Settings .builder ()
1083
1102
.put (StarTreeIndexSettings .STAR_TREE_MAX_DIMENSIONS_SETTING .getKey (), 2 )
1084
1103
.put (StarTreeIndexSettings .IS_COMPOSITE_INDEX_SETTING .getKey (), true )
1104
+ .put (IndexMetadata .INDEX_APPEND_ONLY_ENABLED_SETTING .getKey (), true )
1085
1105
.put (IndexSettings .INDEX_TRANSLOG_FLUSH_THRESHOLD_SIZE_SETTING .getKey (), new ByteSizeValue (512 , ByteSizeUnit .MB ))
1086
1106
)
1087
1107
.get ()
@@ -1101,6 +1121,7 @@ public void testMaxMetricsCompositeIndex() {
1101
1121
Settings .builder ()
1102
1122
.put (StarTreeIndexSettings .STAR_TREE_MAX_BASE_METRICS_SETTING .getKey (), 4 )
1103
1123
.put (StarTreeIndexSettings .IS_COMPOSITE_INDEX_SETTING .getKey (), true )
1124
+ .put (IndexMetadata .INDEX_APPEND_ONLY_ENABLED_SETTING .getKey (), true )
1104
1125
.put (IndexSettings .INDEX_TRANSLOG_FLUSH_THRESHOLD_SIZE_SETTING .getKey (), new ByteSizeValue (512 , ByteSizeUnit .MB ))
1105
1126
)
1106
1127
.get ()
@@ -1119,6 +1140,7 @@ public void testMaxCalendarIntervalsCompositeIndex() {
1119
1140
Settings .builder ()
1120
1141
.put (StarTreeIndexSettings .STAR_TREE_MAX_DATE_INTERVALS_SETTING .getKey (), 1 )
1121
1142
.put (StarTreeIndexSettings .IS_COMPOSITE_INDEX_SETTING .getKey (), true )
1143
+ .put (IndexMetadata .INDEX_APPEND_ONLY_ENABLED_SETTING .getKey (), true )
1122
1144
.put (IndexSettings .INDEX_TRANSLOG_FLUSH_THRESHOLD_SIZE_SETTING .getKey (), new ByteSizeValue (512 , ByteSizeUnit .MB ))
1123
1145
)
1124
1146
.get ()
0 commit comments