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

Function EncodeDecimal

be/src/exec/parquet/parquet-plain-test.cc:48–62  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

46// When parquet_type is INT32 or INT64, we simply write the unscaled value to the buffer.
47template <typename DecimalType>
48int EncodeDecimal(const DecimalType& v, int encoded_byte_size, uint8_t* buffer,
49 parquet::Type::type parquet_type) {
50 if (parquet_type == parquet::Type::FIXED_LEN_BYTE_ARRAY) {
51 return ParquetPlainEncoder::Encode(v, encoded_byte_size, buffer);
52 } else if (parquet_type == parquet::Type::BYTE_ARRAY) {
53 int decimal_size = encoded_byte_size - sizeof(int32_t);
54 memcpy(buffer, &decimal_size, sizeof(int32_t));
55 DecimalUtil::EncodeToFixedLenByteArray(buffer + sizeof(int32_t), decimal_size, v);
56 return encoded_byte_size;
57 } else if (parquet_type == parquet::Type::INT32 ||
58 parquet_type == parquet::Type::INT64) {
59 return ParquetPlainEncoder::Encode(v.value(), encoded_byte_size, buffer);
60 }
61 return -1;
62}
63
64template<>
65int Encode(const Decimal4Value& v, int encoded_byte_size, uint8_t* buffer,

Callers 1

EncodeFunction · 0.70

Calls 2

EncodeFunction · 0.85
valueMethod · 0.45

Tested by

no test coverage detected