Documentation ¶
Index ¶
- func SizeOfMany[T any](cnt int) int
- func Sizeof[T any]() int
- type Bytes
- func (bs *Bytes) GetVarValueAt(i int) []byte
- func (bs *Bytes) HeaderBuf() (buf []byte)
- func (bs *Bytes) HeaderSize() int
- func (bs *Bytes) IsFixedType() bool
- func (bs *Bytes) IsWindow() bool
- func (bs *Bytes) Length() int
- func (bs *Bytes) SetHeaderBuf(buf []byte)
- func (bs *Bytes) SetStorageBuf(buf []byte)
- func (bs *Bytes) Size() int
- func (bs *Bytes) StorageBuf() []byte
- func (bs *Bytes) StorageSize() int
- func (bs *Bytes) ToWindow(offset, length int)
- func (bs *Bytes) Window(offset, length int) *Bytes
- type Callers
- type Vector
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SizeOfMany ¶
Types ¶
type Bytes ¶
type Bytes struct { // Specify type size // Positive if it is fixed type // Negtive if it is varlen type TypeSize int // Specify whether it retains a window AsWindow bool // Window offset and length WinOffset int WinLength int // Used only when IsFixedType is false // Header store data if the size is less than VarlenaSize Header []types.Varlena // When IsFixedType is true, here is the data storage // When IsFixedType is false, here is the data storage for big data // When AsWindow is true, here stores all big data Storage []byte }
func NewBytesWithTypeSize ¶ added in v0.6.0
func NewFixedTypeBytes ¶ added in v0.6.0
func (*Bytes) GetVarValueAt ¶ added in v0.6.0
func (*Bytes) HeaderSize ¶ added in v0.6.0
func (*Bytes) IsFixedType ¶ added in v0.6.0
func (*Bytes) SetHeaderBuf ¶ added in v0.6.0
func (*Bytes) SetStorageBuf ¶ added in v0.6.0
func (*Bytes) StorageBuf ¶ added in v0.6.0
func (*Bytes) StorageSize ¶ added in v0.6.0
type Vector ¶
type Vector[T any] interface { // Close free the vector allocated memory // Caller must call Close() or a memory leak will occur Close() // Clone deep copy data from offset to offset+length and create a new vector Clone(offset, length int, allocator ...*mpool.MPool) Vector[T] // If share is true, vector release allocated memory and use the buf and its data storage // If share is false, vector will copy the data from buf to its own data storage ReadBytes(data *Bytes, share bool) // Reset resets the buffer to be empty // but it retains the underlying storage for use by future writes Reset() // IsView returns true if the vector shares the data storage with external buffer IsView() bool // TODO Bytes() *Bytes WindowAsBytes(offset, length int) *Bytes // Data returns the underlying data storage buffer // For Vector[[]byte], it only returns the data buffer Data() []byte // DataWindow returns a data window [offset, offset+length) DataWindow(offset, length int) []byte // Slice returns the underlying data storage of type T Slice() []T SliceWindow(offset, length int) []T // Get returns the specified element at i // Note: If T is []byte, make sure not to use v after the vector is closed Get(i int) (v T) // Append appends a element into the vector // If the prediction length is large than Capacity, it will cause the underlying memory reallocation. // Reallocation: // 1. Apply a new memory node from allocator // 2. Copy existing data into new buffer // 3. Swap owned memory node // 4. Free old memory node Append(v T) // Append appends many elements into the vector AppendMany(vals ...T) // Append updates a element at i to a new value // For T=[]byte, Update may introduce a underlying memory reallocation Update(i int, v T) // Delete deletes a element at i Delete(i int) (deleted T) // BatchDelete delete rows from rowGen // cnt specifies the total delete count BatchDelete(rowGen common.RowGen, cnt int) BatchDeleteInts(sels ...int) BatchDeleteUint32s(sels ...uint32) // Returns the underlying memory allocator GetAllocator() *mpool.MPool // Returns the capacity, which is always >= Length(). // It is related to the number of elements. Same as C++ std::vector::capacity Capacity() int // Returns the number of elements in the vertor Length() int // Return the space allocted Allocated() int String() string Desc() string // WriteTo writes data to w until the buffer is drained or an error occurs WriteTo(io.Writer) (int64, error) // ReadFrom reads data from r until EOF and appends it to the buffer, growing // the buffer as needed. ReadFrom(io.Reader) (int64, error) }
Click to show internal directories.
Click to hide internal directories.