Skip to content

Commit b9b3d9d

Browse files
committed
make code more concise
1 parent eda771a commit b9b3d9d

File tree

1 file changed

+26
-66
lines changed
  • native/core/src/execution/shuffle

1 file changed

+26
-66
lines changed

native/core/src/execution/shuffle/codec.rs

Lines changed: 26 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -169,139 +169,101 @@ impl<W: Write> BatchWriter<W> {
169169
match col.data_type() {
170170
DataType::Boolean => {
171171
let arr = col.as_any().downcast_ref::<BooleanArray>().unwrap();
172-
173172
// boolean array is the only type we write the array length because it cannot
174-
// be determined from the data buffer size
173+
// be determined from the data buffer size (length is in bits rather than bytes)
175174
self.write_all(&arr.len().to_le_bytes())?;
176-
177175
// write data buffer
178-
let buffer = arr.values();
179-
let buffer = buffer.inner();
180-
self.write_buffer(buffer)?;
181-
176+
self.write_buffer(arr.values().inner())?;
177+
// write null buffer
182178
self.write_null_buffer(arr.nulls())?;
183179
}
184180
DataType::Int8 => {
185181
let arr = col.as_any().downcast_ref::<Int8Array>().unwrap();
186-
187182
// write data buffer
188-
let buffer = arr.values();
189-
let buffer = buffer.inner();
190-
self.write_buffer(buffer)?;
191-
183+
self.write_buffer(arr.values().inner())?;
184+
// write null buffer
192185
self.write_null_buffer(arr.nulls())?;
193186
}
194187
DataType::Int16 => {
195188
let arr = col.as_any().downcast_ref::<Int16Array>().unwrap();
196-
197189
// write data buffer
198-
let buffer = arr.values();
199-
let buffer = buffer.inner();
200-
self.write_buffer(buffer)?;
201-
190+
self.write_buffer(arr.values().inner())?;
191+
// write null buffer
202192
self.write_null_buffer(arr.nulls())?;
203193
}
204194
DataType::Int32 => {
205195
let arr = col.as_any().downcast_ref::<Int32Array>().unwrap();
206-
207196
// write data buffer
208-
let buffer = arr.values();
209-
let buffer = buffer.inner();
210-
self.write_buffer(buffer)?;
211-
197+
self.write_buffer(arr.values().inner())?;
198+
// write null buffer
212199
self.write_null_buffer(arr.nulls())?;
213200
}
214201
DataType::Int64 => {
215202
let arr = col.as_any().downcast_ref::<Int64Array>().unwrap();
216-
217203
// write data buffer
218-
let buffer = arr.values();
219-
let buffer = buffer.inner();
220-
self.write_buffer(buffer)?;
221-
204+
self.write_buffer(arr.values().inner())?;
205+
// write null buffer
222206
self.write_null_buffer(arr.nulls())?;
223207
}
224208
DataType::Float32 => {
225209
let arr = col.as_any().downcast_ref::<Float32Array>().unwrap();
226-
227210
// write data buffer
228-
let buffer = arr.values();
229-
let buffer = buffer.inner();
230-
self.write_buffer(buffer)?;
231-
211+
self.write_buffer(arr.values().inner())?;
212+
// write null buffer
232213
self.write_null_buffer(arr.nulls())?;
233214
}
234215
DataType::Float64 => {
235216
let arr = col.as_any().downcast_ref::<Float64Array>().unwrap();
236-
237217
// write data buffer
238-
let buffer = arr.values();
239-
let buffer = buffer.inner();
240-
self.write_buffer(buffer)?;
241-
218+
self.write_buffer(arr.values().inner())?;
219+
// write null buffer
242220
self.write_null_buffer(arr.nulls())?;
243221
}
244222
DataType::Date32 => {
245223
let arr = col.as_any().downcast_ref::<Date32Array>().unwrap();
246-
247224
// write data buffer
248-
let buffer = arr.values();
249-
let buffer = buffer.inner();
250-
self.write_buffer(buffer)?;
251-
225+
self.write_buffer(arr.values().inner())?;
226+
// write null buffer
252227
self.write_null_buffer(arr.nulls())?;
253228
}
254229
DataType::Timestamp(TimeUnit::Microsecond, _) => {
255230
let arr = col
256231
.as_any()
257232
.downcast_ref::<TimestampMicrosecondArray>()
258233
.unwrap();
259-
260234
// write data buffer
261-
let buffer = arr.values();
262-
let buffer = buffer.inner();
263-
self.write_buffer(buffer)?;
264-
235+
self.write_buffer(arr.values().inner())?;
236+
// write null buffer
265237
self.write_null_buffer(arr.nulls())?;
266238
}
267239
DataType::Decimal128(_, _) => {
268240
let arr = col.as_any().downcast_ref::<Decimal128Array>().unwrap();
269-
270241
// write data buffer
271-
let buffer = arr.values();
272-
let buffer = buffer.inner();
273-
self.write_buffer(buffer)?;
274-
242+
self.write_buffer(arr.values().inner())?;
243+
// write null buffer
275244
self.write_null_buffer(arr.nulls())?;
276245
}
277246
DataType::Utf8 => {
278247
let arr = col.as_any().downcast_ref::<StringArray>().unwrap();
279-
280248
// write data buffer
281-
let buffer = arr.values();
282-
self.write_buffer(buffer)?;
283-
249+
self.write_buffer(arr.values())?;
284250
// write offset buffer
285251
let offsets = arr.offsets();
286252
let scalar_buffer = offsets.inner();
287-
let buffer = scalar_buffer.inner();
288-
self.write_buffer(buffer)?;
289-
253+
self.write_buffer(scalar_buffer.inner())?;
254+
// write null buffer
290255
self.write_null_buffer(arr.nulls())?;
291256
}
292257
DataType::Binary => {
293258
let arr = col.as_any().downcast_ref::<BinaryArray>().unwrap();
294-
295259
// write data buffer
296-
let buffer = arr.values();
297-
self.write_buffer(buffer)?;
298-
260+
self.write_buffer(arr.values())?;
299261
// write offset buffer
300262
let offsets = arr.offsets();
301263
let scalar_buffer = offsets.inner();
302264
let buffer = scalar_buffer.inner();
303265
self.write_buffer(buffer)?;
304-
266+
// write null buffer
305267
self.write_null_buffer(arr.nulls())?;
306268
}
307269
DataType::Dictionary(k, _) if **k == DataType::Int32 => {
@@ -327,10 +289,8 @@ impl<W: Write> BatchWriter<W> {
327289
) -> Result<(), DataFusionError> {
328290
if let Some(nulls) = null_buffer {
329291
let buffer = nulls.inner();
330-
331292
// write null buffer length in bits
332293
self.write_all(&buffer.len().to_le_bytes())?;
333-
334294
// write null buffer
335295
let buffer = buffer.inner();
336296
self.write_buffer(buffer)?;

0 commit comments

Comments
 (0)