12
12
import org .opensearch .action .index .IndexResponse ;
13
13
import org .opensearch .action .search .SearchResponse ;
14
14
import org .opensearch .action .support .master .AcknowledgedResponse ;
15
- import org .opensearch .common .Rounding ;
16
15
import org .opensearch .common .settings .Settings ;
17
16
import org .opensearch .common .util .FeatureFlags ;
18
17
import org .opensearch .core .common .unit .ByteSizeUnit ;
23
22
import org .opensearch .index .IndexService ;
24
23
import org .opensearch .index .IndexSettings ;
25
24
import org .opensearch .index .compositeindex .CompositeIndexSettings ;
26
- import org .opensearch .index .compositeindex .datacube .DateDimension ;
27
25
import org .opensearch .index .compositeindex .datacube .MetricStat ;
28
26
import org .opensearch .index .compositeindex .datacube .startree .StarTreeFieldConfiguration ;
29
27
import org .opensearch .index .compositeindex .datacube .startree .StarTreeIndexSettings ;
@@ -62,7 +60,10 @@ private static XContentBuilder createMinimalTestMapping(boolean invalidDim, bool
62
60
.startObject ("config" )
63
61
.startArray ("ordered_dimensions" )
64
62
.startObject ()
65
- .field ("name" , "timestamp" )
63
+ .field ("name" , "numeric_dv_1" )
64
+ .endObject ()
65
+ .startObject ()
66
+ .field ("name" , "numeric_dv_2" )
66
67
.endObject ()
67
68
.startObject ()
68
69
.field ("name" , getDim (invalidDim , keywordDim ))
@@ -84,6 +85,14 @@ private static XContentBuilder createMinimalTestMapping(boolean invalidDim, bool
84
85
.field ("type" , "integer" )
85
86
.field ("doc_values" , true )
86
87
.endObject ()
88
+ .startObject ("numeric_dv_1" )
89
+ .field ("type" , "integer" )
90
+ .field ("doc_values" , true )
91
+ .endObject ()
92
+ .startObject ("numeric_dv_2" )
93
+ .field ("type" , "integer" )
94
+ .field ("doc_values" , true )
95
+ .endObject ()
87
96
.startObject ("numeric" )
88
97
.field ("type" , "integer" )
89
98
.field ("doc_values" , false )
@@ -112,11 +121,7 @@ private static XContentBuilder createMaxDimTestMapping() {
112
121
.startObject ("config" )
113
122
.startArray ("ordered_dimensions" )
114
123
.startObject ()
115
- .field ("name" , "timestamp" )
116
- .startArray ("calendar_intervals" )
117
- .value ("day" )
118
- .value ("month" )
119
- .endArray ()
124
+ .field ("name" , "dim4" )
120
125
.endObject ()
121
126
.startObject ()
122
127
.field ("name" , "dim2" )
@@ -201,7 +206,7 @@ private static XContentBuilder createUpdateTestMapping(boolean changeDim, boolea
201
206
.startObject ("config" )
202
207
.startArray ("ordered_dimensions" )
203
208
.startObject ()
204
- .field ("name" , "timestamp " )
209
+ .field ("name" , "numeric_dv1 " )
205
210
.endObject ()
206
211
.startObject ()
207
212
.field ("name" , changeDim ? "numeric_new" : getDim (false , false ))
@@ -223,6 +228,10 @@ private static XContentBuilder createUpdateTestMapping(boolean changeDim, boolea
223
228
.field ("type" , "integer" )
224
229
.field ("doc_values" , true )
225
230
.endObject ()
231
+ .startObject ("numeric_dv1" )
232
+ .field ("type" , "integer" )
233
+ .field ("doc_values" , true )
234
+ .endObject ()
226
235
.startObject ("numeric" )
227
236
.field ("type" , "integer" )
228
237
.field ("doc_values" , false )
@@ -256,7 +265,7 @@ private XContentBuilder getMappingWithDuplicateFields(boolean isDuplicateDim, bo
256
265
.startObject ("config" )
257
266
.startArray ("ordered_dimensions" )
258
267
.startObject ()
259
- .field ("name" , "timestamp " )
268
+ .field ("name" , "numeric_dv2 " )
260
269
.endObject ()
261
270
.startObject ()
262
271
.field ("name" , "numeric_dv" )
@@ -284,6 +293,10 @@ private XContentBuilder getMappingWithDuplicateFields(boolean isDuplicateDim, bo
284
293
.field ("type" , "integer" )
285
294
.field ("doc_values" , true )
286
295
.endObject ()
296
+ .startObject ("numeric_dv2" )
297
+ .field ("type" , "integer" )
298
+ .field ("doc_values" , true )
299
+ .endObject ()
287
300
.startObject ("numeric_dv1" )
288
301
.field ("type" , "integer" )
289
302
.field ("doc_values" , true )
@@ -328,15 +341,8 @@ public void testValidCompositeIndex() {
328
341
for (CompositeMappedFieldType ft : fts ) {
329
342
assertTrue (ft instanceof StarTreeMapper .StarTreeFieldType );
330
343
StarTreeMapper .StarTreeFieldType starTreeFieldType = (StarTreeMapper .StarTreeFieldType ) ft ;
331
- assertEquals ("timestamp" , starTreeFieldType .getDimensions ().get (0 ).getField ());
332
- assertTrue (starTreeFieldType .getDimensions ().get (0 ) instanceof DateDimension );
333
- DateDimension dateDim = (DateDimension ) starTreeFieldType .getDimensions ().get (0 );
334
- List <Rounding .DateTimeUnit > expectedTimeUnits = Arrays .asList (
335
- Rounding .DateTimeUnit .MINUTES_OF_HOUR ,
336
- Rounding .DateTimeUnit .HOUR_OF_DAY
337
- );
338
- assertEquals (expectedTimeUnits , dateDim .getIntervals ());
339
- assertEquals ("numeric_dv" , starTreeFieldType .getDimensions ().get (1 ).getField ());
344
+ assertEquals ("numeric_dv_1" , starTreeFieldType .getDimensions ().get (0 ).getField ());
345
+ assertEquals ("numeric_dv_2" , starTreeFieldType .getDimensions ().get (1 ).getField ());
340
346
assertEquals (2 , starTreeFieldType .getMetrics ().size ());
341
347
assertEquals ("numeric_dv" , starTreeFieldType .getMetrics ().get (0 ).getField ());
342
348
@@ -496,15 +502,8 @@ public void testUpdateIndexWhenMappingIsSame() {
496
502
for (CompositeMappedFieldType ft : fts ) {
497
503
assertTrue (ft instanceof StarTreeMapper .StarTreeFieldType );
498
504
StarTreeMapper .StarTreeFieldType starTreeFieldType = (StarTreeMapper .StarTreeFieldType ) ft ;
499
- assertEquals ("timestamp" , starTreeFieldType .getDimensions ().get (0 ).getField ());
500
- assertTrue (starTreeFieldType .getDimensions ().get (0 ) instanceof DateDimension );
501
- DateDimension dateDim = (DateDimension ) starTreeFieldType .getDimensions ().get (0 );
502
- List <Rounding .DateTimeUnit > expectedTimeUnits = Arrays .asList (
503
- Rounding .DateTimeUnit .MINUTES_OF_HOUR ,
504
- Rounding .DateTimeUnit .HOUR_OF_DAY
505
- );
506
- assertEquals (expectedTimeUnits , dateDim .getIntervals ());
507
- assertEquals ("numeric_dv" , starTreeFieldType .getDimensions ().get (1 ).getField ());
505
+ assertEquals ("numeric_dv_1" , starTreeFieldType .getDimensions ().get (0 ).getField ());
506
+ assertEquals ("numeric_dv_2" , starTreeFieldType .getDimensions ().get (1 ).getField ());
508
507
assertEquals ("numeric_dv" , starTreeFieldType .getMetrics ().get (0 ).getField ());
509
508
510
509
// Assert default metrics
@@ -570,24 +569,6 @@ public void testMaxMetricsCompositeIndex() {
570
569
);
571
570
}
572
571
573
- public void testMaxCalendarIntervalsCompositeIndex () {
574
- MapperParsingException ex = expectThrows (
575
- MapperParsingException .class ,
576
- () -> prepareCreate (TEST_INDEX ).setMapping (createMaxDimTestMapping ())
577
- .setSettings (
578
- Settings .builder ()
579
- .put (StarTreeIndexSettings .STAR_TREE_MAX_DATE_INTERVALS_SETTING .getKey (), 1 )
580
- .put (StarTreeIndexSettings .IS_COMPOSITE_INDEX_SETTING .getKey (), true )
581
- .put (IndexSettings .INDEX_TRANSLOG_FLUSH_THRESHOLD_SIZE_SETTING .getKey (), new ByteSizeValue (512 , ByteSizeUnit .MB ))
582
- )
583
- .get ()
584
- );
585
- assertEquals (
586
- "Failed to parse mapping [_doc]: At most [1] calendar intervals are allowed in dimension [timestamp]" ,
587
- ex .getMessage ()
588
- );
589
- }
590
-
591
572
public void testUnsupportedDim () {
592
573
MapperParsingException ex = expectThrows (
593
574
MapperParsingException .class ,
0 commit comments