MCPcopy Create free account
hub / github.com/apache/impala / TColumnByteSize

Function TColumnByteSize

be/src/service/query-result-set.cc:328–348  ·  view source on GitHub ↗

Returns the size, in bytes, of a Hive TColumn structure, only taking into account those values in the range [start_idx, end_idx).

Source from the content-addressed store, hash-verified

326// Returns the size, in bytes, of a Hive TColumn structure, only taking into account those
327// values in the range [start_idx, end_idx).
328uint32_t TColumnByteSize(const ThriftTColumn& col, uint32_t start_idx, uint32_t end_idx) {
329 DCHECK_LE(start_idx, end_idx);
330 uint32_t num_rows = end_idx - start_idx;
331 if (num_rows == 0) return 0L;
332
333 if (col.__isset.boolVal) return (num_rows * sizeof(bool)) + col.boolVal.nulls.size();
334 if (col.__isset.byteVal) return num_rows + col.byteVal.nulls.size();
335 if (col.__isset.i16Val) return (num_rows * sizeof(int16_t)) + col.i16Val.nulls.size();
336 if (col.__isset.i32Val) return (num_rows * sizeof(int32_t)) + col.i32Val.nulls.size();
337 if (col.__isset.i64Val) return (num_rows * sizeof(int64_t)) + col.i64Val.nulls.size();
338 if (col.__isset.doubleVal) {
339 return (num_rows * sizeof(double)) + col.doubleVal.nulls.size();
340 }
341 if (col.__isset.stringVal) {
342 uint32_t bytes = 0;
343 for (int i = start_idx; i < end_idx; ++i) bytes += col.stringVal.values[i].size();
344 return bytes + col.stringVal.nulls.size();
345 }
346
347 return 0;
348}
349}
350
351// Result set container for Hive protocol versions >= V6, where results are returned in

Callers 1

ByteSizeMethod · 0.85

Calls 1

sizeMethod · 0.45

Tested by

no test coverage detected