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

Method WriteBinaryViewField

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

Source from the content-addressed store, hash-verified

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