1717import io .trino .annotation .UsedByGeneratedCode ;
1818import io .trino .spi .block .Block ;
1919import io .trino .spi .block .BlockBuilder ;
20- import io .trino .spi .block .ValueBlock ;
2120import io .trino .spi .type .Type ;
2221
2322public final class ArrayConcatUtils
@@ -28,10 +27,7 @@ private ArrayConcatUtils() {}
2827 public static Block appendElement (Type elementType , Block block , long value )
2928 {
3029 BlockBuilder blockBuilder = elementType .createBlockBuilder (null , block .getPositionCount () + 1 );
31- ValueBlock valueBlock = block .getUnderlyingValueBlock ();
32- for (int i = 0 ; i < block .getPositionCount (); i ++) {
33- blockBuilder .append (valueBlock , block .getUnderlyingValuePosition (i ));
34- }
30+ blockBuilder .appendBlockRange (block , 0 , block .getPositionCount ());
3531
3632 elementType .writeLong (blockBuilder , value );
3733
@@ -42,10 +38,7 @@ public static Block appendElement(Type elementType, Block block, long value)
4238 public static Block appendElement (Type elementType , Block block , boolean value )
4339 {
4440 BlockBuilder blockBuilder = elementType .createBlockBuilder (null , block .getPositionCount () + 1 );
45- ValueBlock valueBlock = block .getUnderlyingValueBlock ();
46- for (int i = 0 ; i < block .getPositionCount (); i ++) {
47- blockBuilder .append (valueBlock , block .getUnderlyingValuePosition (i ));
48- }
41+ blockBuilder .appendBlockRange (block , 0 , block .getPositionCount ());
4942
5043 elementType .writeBoolean (blockBuilder , value );
5144
@@ -56,10 +49,7 @@ public static Block appendElement(Type elementType, Block block, boolean value)
5649 public static Block appendElement (Type elementType , Block block , double value )
5750 {
5851 BlockBuilder blockBuilder = elementType .createBlockBuilder (null , block .getPositionCount () + 1 );
59- ValueBlock valueBlock = block .getUnderlyingValueBlock ();
60- for (int i = 0 ; i < block .getPositionCount (); i ++) {
61- blockBuilder .append (valueBlock , block .getUnderlyingValuePosition (i ));
62- }
52+ blockBuilder .appendBlockRange (block , 0 , block .getPositionCount ());
6353
6454 elementType .writeDouble (blockBuilder , value );
6555
@@ -70,10 +60,7 @@ public static Block appendElement(Type elementType, Block block, double value)
7060 public static Block appendElement (Type elementType , Block block , Slice value )
7161 {
7262 BlockBuilder blockBuilder = elementType .createBlockBuilder (null , block .getPositionCount () + 1 );
73- ValueBlock valueBlock = block .getUnderlyingValueBlock ();
74- for (int i = 0 ; i < block .getPositionCount (); i ++) {
75- blockBuilder .append (valueBlock , block .getUnderlyingValuePosition (i ));
76- }
63+ blockBuilder .appendBlockRange (block , 0 , block .getPositionCount ());
7764
7865 elementType .writeSlice (blockBuilder , value );
7966
@@ -84,10 +71,7 @@ public static Block appendElement(Type elementType, Block block, Slice value)
8471 public static Block appendElement (Type elementType , Block block , Object value )
8572 {
8673 BlockBuilder blockBuilder = elementType .createBlockBuilder (null , block .getPositionCount () + 1 );
87- ValueBlock valueBlock = block .getUnderlyingValueBlock ();
88- for (int i = 0 ; i < block .getPositionCount (); i ++) {
89- blockBuilder .append (valueBlock , block .getUnderlyingValuePosition (i ));
90- }
74+ blockBuilder .appendBlockRange (block , 0 , block .getPositionCount ());
9175
9276 elementType .writeObject (blockBuilder , value );
9377
@@ -101,10 +85,7 @@ public static Block prependElement(Type elementType, Slice value, Block block)
10185 BlockBuilder blockBuilder = elementType .createBlockBuilder (null , block .getPositionCount () + 1 );
10286
10387 elementType .writeSlice (blockBuilder , value );
104- ValueBlock valueBlock = block .getUnderlyingValueBlock ();
105- for (int i = 0 ; i < block .getPositionCount (); i ++) {
106- blockBuilder .append (valueBlock , block .getUnderlyingValuePosition (i ));
107- }
88+ blockBuilder .appendBlockRange (block , 0 , block .getPositionCount ());
10889
10990 return blockBuilder .build ();
11091 }
@@ -115,10 +96,7 @@ public static Block prependElement(Type elementType, Object value, Block block)
11596 BlockBuilder blockBuilder = elementType .createBlockBuilder (null , block .getPositionCount () + 1 );
11697
11798 elementType .writeObject (blockBuilder , value );
118- ValueBlock valueBlock = block .getUnderlyingValueBlock ();
119- for (int i = 0 ; i < block .getPositionCount (); i ++) {
120- blockBuilder .append (valueBlock , block .getUnderlyingValuePosition (i ));
121- }
99+ blockBuilder .appendBlockRange (block , 0 , block .getPositionCount ());
122100
123101 return blockBuilder .build ();
124102 }
@@ -129,10 +107,7 @@ public static Block prependElement(Type elementType, long value, Block block)
129107 BlockBuilder blockBuilder = elementType .createBlockBuilder (null , block .getPositionCount () + 1 );
130108
131109 elementType .writeLong (blockBuilder , value );
132- ValueBlock valueBlock = block .getUnderlyingValueBlock ();
133- for (int i = 0 ; i < block .getPositionCount (); i ++) {
134- blockBuilder .append (valueBlock , block .getUnderlyingValuePosition (i ));
135- }
110+ blockBuilder .appendBlockRange (block , 0 , block .getPositionCount ());
136111
137112 return blockBuilder .build ();
138113 }
@@ -143,10 +118,7 @@ public static Block prependElement(Type elementType, boolean value, Block block)
143118 BlockBuilder blockBuilder = elementType .createBlockBuilder (null , block .getPositionCount () + 1 );
144119
145120 elementType .writeBoolean (blockBuilder , value );
146- ValueBlock valueBlock = block .getUnderlyingValueBlock ();
147- for (int i = 0 ; i < block .getPositionCount (); i ++) {
148- blockBuilder .append (valueBlock , block .getUnderlyingValuePosition (i ));
149- }
121+ blockBuilder .appendBlockRange (block , 0 , block .getPositionCount ());
150122
151123 return blockBuilder .build ();
152124 }
@@ -157,10 +129,7 @@ public static Block prependElement(Type elementType, double value, Block block)
157129 BlockBuilder blockBuilder = elementType .createBlockBuilder (null , block .getPositionCount () + 1 );
158130
159131 elementType .writeDouble (blockBuilder , value );
160- ValueBlock valueBlock = block .getUnderlyingValueBlock ();
161- for (int i = 0 ; i < block .getPositionCount (); i ++) {
162- blockBuilder .append (valueBlock , block .getUnderlyingValuePosition (i ));
163- }
132+ blockBuilder .appendBlockRange (block , 0 , block .getPositionCount ());
164133
165134 return blockBuilder .build ();
166135 }
0 commit comments