MCPcopy Create free account
hub / github.com/apache/arrow / WriteBinaryViewField

Method WriteBinaryViewField

cpp/src/arrow/integration/json_internal.cc:684–712  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

682
683 template <typename ArrayType>
684 void WriteBinaryViewField(const ArrayType& array) {
685 writer_->Key("VIEWS");
686 writer_->StartArray();
687 for (int64_t i = 0; i < array.length(); ++i) {
688 auto s = array.raw_values()[i];
689 writer_->StartObject();
690 writer_->Key("SIZE");
691 writer_->Int64(s.size());
692 if (s.is_inline()) {
693 writer_->Key("INLINED");
694 if constexpr (ArrayType::TypeClass::is_utf8) {
695 writer_->String(reinterpret_cast<const char*>(s.inline_data()), s.size());
696 } else {
697 writer_->String(HexEncode(s.inline_data(), s.size()));
698 }
699 } else {
700 // Prefix is always 4 bytes so it may not be utf-8 even if the whole
701 // string view is
702 writer_->Key("PREFIX_HEX");
703 writer_->String(HexEncode(s.inline_data(), BinaryViewType::kPrefixSize));
704 writer_->Key("BUFFER_INDEX");
705 writer_->Int64(s.ref.buffer_index);
706 writer_->Key("OFFSET");
707 writer_->Int64(s.ref.offset);
708 }
709 writer_->EndObject();
710 }
711 writer_->EndArray();
712 }
713
714 void WriteVariadicBuffersField(const BinaryViewArray& arr) {
715 writer_->Key("VARIADIC_DATA_BUFFERS");

Callers

nothing calls this directly

Calls 11

HexEncodeFunction · 0.85
KeyMethod · 0.45
StartArrayMethod · 0.45
lengthMethod · 0.45
raw_valuesMethod · 0.45
StartObjectMethod · 0.45
Int64Method · 0.45
sizeMethod · 0.45
StringMethod · 0.45
EndObjectMethod · 0.45
EndArrayMethod · 0.45

Tested by

no test coverage detected