2525import org .elasticsearch .compute .data .BytesRefBlock ;
2626import org .elasticsearch .compute .data .BytesRefVector ;
2727import org .elasticsearch .compute .data .ElementType ;
28+ import org .elasticsearch .compute .data .IntArrayBlock ;
29+ import org .elasticsearch .compute .data .IntBigArrayBlock ;
2830import org .elasticsearch .compute .data .IntBlock ;
2931import org .elasticsearch .compute .data .IntVector ;
3032import org .elasticsearch .compute .data .LongBlock ;
@@ -99,8 +101,7 @@ public void testCategorizeRaw() {
99101 try (var hash = new CategorizeBlockHash (blockFactory , 0 , AggregatorMode .SINGLE , analysisRegistry )) {
100102 for (int i = randomInt (2 ); i < 3 ; i ++) {
101103 hash .add (page , new GroupingAggregatorFunction .AddInput () {
102- @ Override
103- public void add (int positionOffset , IntBlock groupIds ) {
104+ private void addBlock (int positionOffset , IntBlock groupIds ) {
104105 assertEquals (groupIds .getPositionCount (), positions );
105106
106107 assertEquals (1 , groupIds .getInt (0 ));
@@ -115,9 +116,19 @@ public void add(int positionOffset, IntBlock groupIds) {
115116 }
116117 }
117118
119+ @ Override
120+ public void add (int positionOffset , IntArrayBlock groupIds ) {
121+ addBlock (positionOffset , groupIds );
122+ }
123+
124+ @ Override
125+ public void add (int positionOffset , IntBigArrayBlock groupIds ) {
126+ addBlock (positionOffset , groupIds );
127+ }
128+
118129 @ Override
119130 public void add (int positionOffset , IntVector groupIds ) {
120- add (positionOffset , groupIds .asBlock ());
131+ addBlock (positionOffset , groupIds .asBlock ());
121132 }
122133
123134 @ Override
@@ -162,8 +173,7 @@ public void testCategorizeRawMultivalue() {
162173 try (var hash = new CategorizeBlockHash (blockFactory , 0 , AggregatorMode .SINGLE , analysisRegistry )) {
163174 for (int i = randomInt (2 ); i < 3 ; i ++) {
164175 hash .add (page , new GroupingAggregatorFunction .AddInput () {
165- @ Override
166- public void add (int positionOffset , IntBlock groupIds ) {
176+ private void addBlock (int positionOffset , IntBlock groupIds ) {
167177 assertEquals (groupIds .getPositionCount (), positions );
168178
169179 assertThat (groupIds .getFirstValueIndex (0 ), equalTo (0 ));
@@ -185,9 +195,19 @@ public void add(int positionOffset, IntBlock groupIds) {
185195 }
186196 }
187197
198+ @ Override
199+ public void add (int positionOffset , IntArrayBlock groupIds ) {
200+ addBlock (positionOffset , groupIds );
201+ }
202+
203+ @ Override
204+ public void add (int positionOffset , IntBigArrayBlock groupIds ) {
205+ addBlock (positionOffset , groupIds );
206+ }
207+
188208 @ Override
189209 public void add (int positionOffset , IntVector groupIds ) {
190- add (positionOffset , groupIds .asBlock ());
210+ addBlock (positionOffset , groupIds .asBlock ());
191211 }
192212
193213 @ Override
@@ -243,8 +263,7 @@ public void testCategorizeIntermediate() {
243263 BlockHash rawHash2 = new CategorizeBlockHash (blockFactory , 0 , AggregatorMode .INITIAL , analysisRegistry );
244264 ) {
245265 rawHash1 .add (page1 , new GroupingAggregatorFunction .AddInput () {
246- @ Override
247- public void add (int positionOffset , IntBlock groupIds ) {
266+ private void addBlock (int positionOffset , IntBlock groupIds ) {
248267 assertEquals (groupIds .getPositionCount (), positions1 );
249268 assertEquals (1 , groupIds .getInt (0 ));
250269 assertEquals (2 , groupIds .getInt (1 ));
@@ -258,9 +277,19 @@ public void add(int positionOffset, IntBlock groupIds) {
258277 }
259278 }
260279
280+ @ Override
281+ public void add (int positionOffset , IntArrayBlock groupIds ) {
282+ addBlock (positionOffset , groupIds );
283+ }
284+
285+ @ Override
286+ public void add (int positionOffset , IntBigArrayBlock groupIds ) {
287+ addBlock (positionOffset , groupIds );
288+ }
289+
261290 @ Override
262291 public void add (int positionOffset , IntVector groupIds ) {
263- add (positionOffset , groupIds .asBlock ());
292+ addBlock (positionOffset , groupIds .asBlock ());
264293 }
265294
266295 @ Override
@@ -271,8 +300,7 @@ public void close() {
271300 intermediatePage1 = new Page (rawHash1 .getKeys ()[0 ]);
272301
273302 rawHash2 .add (page2 , new GroupingAggregatorFunction .AddInput () {
274- @ Override
275- public void add (int positionOffset , IntBlock groupIds ) {
303+ private void addBlock (int positionOffset , IntBlock groupIds ) {
276304 assertEquals (groupIds .getPositionCount (), positions2 );
277305 assertEquals (1 , groupIds .getInt (0 ));
278306 assertEquals (2 , groupIds .getInt (1 ));
@@ -281,9 +309,19 @@ public void add(int positionOffset, IntBlock groupIds) {
281309 assertEquals (3 , groupIds .getInt (4 ));
282310 }
283311
312+ @ Override
313+ public void add (int positionOffset , IntArrayBlock groupIds ) {
314+ addBlock (positionOffset , groupIds );
315+ }
316+
317+ @ Override
318+ public void add (int positionOffset , IntBigArrayBlock groupIds ) {
319+ addBlock (positionOffset , groupIds );
320+ }
321+
284322 @ Override
285323 public void add (int positionOffset , IntVector groupIds ) {
286- add (positionOffset , groupIds .asBlock ());
324+ addBlock (positionOffset , groupIds .asBlock ());
287325 }
288326
289327 @ Override
@@ -299,8 +337,7 @@ public void close() {
299337
300338 try (var intermediateHash = new CategorizeBlockHash (blockFactory , 0 , AggregatorMode .FINAL , null )) {
301339 intermediateHash .add (intermediatePage1 , new GroupingAggregatorFunction .AddInput () {
302- @ Override
303- public void add (int positionOffset , IntBlock groupIds ) {
340+ private void addBlock (int positionOffset , IntBlock groupIds ) {
304341 List <Integer > values = IntStream .range (0 , groupIds .getPositionCount ())
305342 .map (groupIds ::getInt )
306343 .boxed ()
@@ -312,9 +349,19 @@ public void add(int positionOffset, IntBlock groupIds) {
312349 }
313350 }
314351
352+ @ Override
353+ public void add (int positionOffset , IntArrayBlock groupIds ) {
354+ addBlock (positionOffset , groupIds );
355+ }
356+
357+ @ Override
358+ public void add (int positionOffset , IntBigArrayBlock groupIds ) {
359+ addBlock (positionOffset , groupIds );
360+ }
361+
315362 @ Override
316363 public void add (int positionOffset , IntVector groupIds ) {
317- add (positionOffset , groupIds .asBlock ());
364+ addBlock (positionOffset , groupIds .asBlock ());
318365 }
319366
320367 @ Override
@@ -325,8 +372,7 @@ public void close() {
325372
326373 for (int i = randomInt (2 ); i < 3 ; i ++) {
327374 intermediateHash .add (intermediatePage2 , new GroupingAggregatorFunction .AddInput () {
328- @ Override
329- public void add (int positionOffset , IntBlock groupIds ) {
375+ private void addBlock (int positionOffset , IntBlock groupIds ) {
330376 List <Integer > values = IntStream .range (0 , groupIds .getPositionCount ())
331377 .map (groupIds ::getInt )
332378 .boxed ()
@@ -336,9 +382,19 @@ public void add(int positionOffset, IntBlock groupIds) {
336382 assertEquals (List .of (3 , 1 , 4 ), values );
337383 }
338384
385+ @ Override
386+ public void add (int positionOffset , IntArrayBlock groupIds ) {
387+ addBlock (positionOffset , groupIds );
388+ }
389+
390+ @ Override
391+ public void add (int positionOffset , IntBigArrayBlock groupIds ) {
392+ addBlock (positionOffset , groupIds );
393+ }
394+
339395 @ Override
340396 public void add (int positionOffset , IntVector groupIds ) {
341- add (positionOffset , groupIds .asBlock ());
397+ addBlock (positionOffset , groupIds .asBlock ());
342398 }
343399
344400 @ Override
0 commit comments