Apache Arrow (C++)
A columnar in-memory analytics layer designed to accelerate big data.
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
arrow::BinaryBuilder Class Reference

Builder class for variable-length binary data. More...

#include <arrow/builder.h>

Inheritance diagram for arrow::BinaryBuilder:
arrow::ArrayBuilder arrow::StringBuilder

Public Member Functions

 BinaryBuilder (MemoryPool *pool ARROW_MEMORY_POOL_DEFAULT)
 BinaryBuilder (const std::shared_ptr< DataType > &type, MemoryPool *pool)
Status Append (const uint8_t *value, int32_t length)
Status Append (const char *value, int32_t length)
Status Append (const std::string &value)
Status AppendNull ()
Status Init (int64_t elements) override
 Allocates initial capacity requirements for the builder. More...
Status Resize (int64_t capacity) override
 Resizes the null_bitmap array. More...
Status FinishInternal (std::shared_ptr< ArrayData > *out) override
 Return result of builder as an internal generic ArrayData object. More...
int64_t value_data_length () const
const uint8_t * GetValue (int64_t i, int32_t *out_length) const
 Temporary access to a value. More...
- Public Member Functions inherited from arrow::ArrayBuilder
 ArrayBuilder (const std::shared_ptr< DataType > &type, MemoryPool *pool)
virtual ~ArrayBuilder ()=default
ArrayBuilderchild (int i)
 For nested types. More...
int num_children () const
int64_t length () const
int64_t null_count () const
int64_t capacity () const
Status AppendToBitmap (bool is_valid)
 Append to null bitmap. More...
Status AppendToBitmap (const uint8_t *valid_bytes, int64_t length)
 Vector append. More...
Status SetNotNull (int64_t length)
 Set the next length bits to not null (i.e. valid). More...
Status Reserve (int64_t elements)
 Ensures there is enough space for adding the number of elements by checking capacity and calling Resize if necessary. More...
Status Advance (int64_t elements)
 For cases where raw data was memcpy'd into the internal buffers, allows us to advance the length of the builder. More...
std::shared_ptr< PoolBuffernull_bitmap () const
Status Finish (std::shared_ptr< Array > *out)
 Return result of builder as an Array object. More...
std::shared_ptr< DataTypetype () const
void UnsafeAppendToBitmap (bool is_valid)

Protected Member Functions

Status AppendNextOffset ()
void Reset ()
- Protected Member Functions inherited from arrow::ArrayBuilder
 ArrayBuilder ()
void Reset ()
void UnsafeAppendToBitmap (const uint8_t *valid_bytes, int64_t length)
void UnsafeAppendToBitmap (const std::vector< bool > &is_valid)
void UnsafeSetNotNull (int64_t length)

Protected Attributes

TypedBufferBuilder< int32_t > offsets_builder_
TypedBufferBuilder< uint8_t > value_data_builder_
- Protected Attributes inherited from arrow::ArrayBuilder
std::shared_ptr< DataTypetype_
std::shared_ptr< PoolBuffernull_bitmap_
int64_t null_count_
uint8_t * null_bitmap_data_
int64_t length_
int64_t capacity_
std::vector< std::unique_ptr< ArrayBuilder > > children_

Static Protected Attributes

static constexpr int64_t kMaximumCapacity = std::numeric_limits<int32_t>::max() - 1

Detailed Description

Builder class for variable-length binary data.

Constructor & Destructor Documentation

◆ BinaryBuilder() [1/2]

arrow::BinaryBuilder::BinaryBuilder ( MemoryPool *pool  ARROW_MEMORY_POOL_DEFAULT)

◆ BinaryBuilder() [2/2]

arrow::BinaryBuilder::BinaryBuilder ( const std::shared_ptr< DataType > &  type,
MemoryPool pool 

Member Function Documentation

◆ Append() [1/3]

Status arrow::BinaryBuilder::Append ( const uint8_t *  value,
int32_t  length 

◆ Append() [2/3]

Status arrow::BinaryBuilder::Append ( const char *  value,
int32_t  length 

◆ Append() [3/3]

Status arrow::BinaryBuilder::Append ( const std::string &  value)

◆ AppendNextOffset()

Status arrow::BinaryBuilder::AppendNextOffset ( )

◆ AppendNull()

Status arrow::BinaryBuilder::AppendNull ( )

◆ FinishInternal()

Status arrow::BinaryBuilder::FinishInternal ( std::shared_ptr< ArrayData > *  out)

Return result of builder as an internal generic ArrayData object.

Resets builder

[out]outthe finalized ArrayData object

Implements arrow::ArrayBuilder.

◆ GetValue()

const uint8_t* arrow::BinaryBuilder::GetValue ( int64_t  i,
int32_t *  out_length 
) const

Temporary access to a value.

This pointer becomes invalid on the next modifying operation.

◆ Init()

Status arrow::BinaryBuilder::Init ( int64_t  capacity)

Allocates initial capacity requirements for the builder.

In most cases subclasses should override and call their parent class's method as well.

Reimplemented from arrow::ArrayBuilder.

◆ Reset()

void arrow::BinaryBuilder::Reset ( )

◆ Resize()

Status arrow::BinaryBuilder::Resize ( int64_t  new_bits)

Resizes the null_bitmap array.

In most cases subclasses should override and call their parent class's method as well.

Reimplemented from arrow::ArrayBuilder.

◆ value_data_length()

int64_t arrow::BinaryBuilder::value_data_length ( ) const
size of values buffer so far

Member Data Documentation

◆ kMaximumCapacity

constexpr int64_t arrow::BinaryBuilder::kMaximumCapacity = std::numeric_limits<int32_t>::max() - 1

◆ offsets_builder_

TypedBufferBuilder<int32_t> arrow::BinaryBuilder::offsets_builder_

◆ value_data_builder_

TypedBufferBuilder<uint8_t> arrow::BinaryBuilder::value_data_builder_

The documentation for this class was generated from the following file: