package extensions
Import Path
github.com/apache/arrow-go/v18/arrow/extensions (on go.dev)
Dependency Relation
imports 21 packages, and imported by one package
Involved Source Files
bool8.go
Package extensions provides implementations of Arrow canonical extension
types as defined in the Arrow specification.
https://arrow.apache.org/docs/format/CanonicalExtensions.html
extensions.go
json.go
opaque.go
uuid.go
variant.go
Package-Level Type Names (total 13)
Bool8Array is logically an array of boolean values but uses
8 bits to store values instead of 1 bit as in the native BooleanArray.
ExtensionArrayBase array.ExtensionArrayBase
(*Bool8Array) BoolValues() []bool
(*Bool8Array) Data() arrow.ArrayData
DataType returns the type metadata for this instance.
ExtensionType returns the same thing as DataType, just already casted
to an ExtensionType interface for convenience.
(*Bool8Array) GetOneForMarshal(i int) interface{}
IsNull returns true if value at index is null.
NOTE: IsNull will panic if NullBitmapBytes is not empty and 0 > i ≥ Len.
IsValid returns true if value at index is not null.
NOTE: IsValid will panic if NullBitmapBytes is not empty and 0 > i ≥ Len.
Len returns the number of elements in the array.
(*Bool8Array) MarshalJSON() ([]byte, error)
NullBitmapBytes returns a byte slice of the validity bitmap.
NullN returns the number of null values in the array.
(*Bool8Array) Offset() int
Release decreases the reference count by 1.
Release may be called simultaneously from multiple goroutines.
When the reference count goes to zero, the memory is freed.
Retain increases the reference count by 1.
Retain may be called simultaneously from multiple goroutines.
Storage returns the underlying storage array
(*Bool8Array) String() string
(*Bool8Array) Value(i int) bool
(*Bool8Array) ValueStr(i int) string
*Bool8Array : github.com/apache/arrow-go/v18/arrow.Array[T]
*Bool8Array : github.com/apache/arrow-go/v18/arrow/array.ExtensionArray
*Bool8Array : github.com/apache/arrow-go/v18/arrow/scalar.Releasable
*Bool8Array : github.com/goccy/go-json.Marshaler
*Bool8Array : encoding/json.Marshaler
*Bool8Array : expvar.Var
*Bool8Array : fmt.Stringer
Bool8Builder is a convenience builder for the Bool8 extension type,
allowing arrays to be built with boolean values rather than the underlying storage type.
ExtensionBuilder *array.ExtensionBuilder
ExtensionBuilder.Builder array.Builder
(*Bool8Builder) Append(v bool)
AppendEmptyValue adds a new zero value of the appropriate type
AppendEmptyValues adds new n zero values of the appropriate type
AppendNull adds a new null value to the array being built.
AppendNulls adds new n null values to the array being built.
(*Bool8Builder) AppendValueFromString(s string) error
(*Bool8Builder) AppendValues(v []bool, valid []bool)
Cap returns the total number of elements that can be stored
without allocating additional memory.
IsNull returns if a previously appended value at a given index is null or not.
Len returns the number of elements in the array builder.
NewArray creates a new array from the memory buffers used by the builder
and resets the builder so it can be used to build a new array.
NewExtensionArray creates an Extension array from the memory buffers used
by the builder and resets the ExtensionBuilder so it can be used to build
a new ExtensionArray of the same type.
NullN returns the number of null values in the array builder.
Release decreases the reference count by 1.
Reserve ensures there is enough space for appending n elements
by checking the capacity and calling Resize if necessary.
Resize adjusts the space allocated by b to n elements. If n is greater than b.Cap(),
additional memory will be allocated. If n is smaller, the allocated memory may reduced.
Retain increases the reference count by 1.
Retain may be called simultaneously from multiple goroutines.
SetNull sets the value at index i to null.
StorageBuilder returns the builder for the underlying storage type.
( Bool8Builder) Type() arrow.DataType
(*Bool8Builder) Unmarshal(dec *json.Decoder) error
( Bool8Builder) UnmarshalJSON([]byte) error
(*Bool8Builder) UnmarshalOne(dec *json.Decoder) error
(*Bool8Builder) UnsafeAppend(v bool)
( Bool8Builder) UnsafeAppendBoolToBitmap(bool)
*Bool8Builder : github.com/apache/arrow-go/v18/arrow/array.Builder
Bool8Builder : github.com/apache/arrow-go/v18/arrow/scalar.Releasable
Bool8Builder : github.com/goccy/go-json.Unmarshaler
Bool8Builder : github.com/polarsignals/frostdb/pqarrow/builder.ColumnBuilder
*Bool8Builder : github.com/polarsignals/frostdb/pqarrow/builder.ListLikeBuilder
Bool8Builder : encoding/json.Unmarshaler
func NewBool8Builder(mem memory.Allocator) *Bool8Builder
Bool8Type represents a logical boolean that is stored using 8 bits.
ExtensionBase arrow.ExtensionBase
Storage is the underlying storage type
(*Bool8Type) ArrayType() reflect.Type
(*Bool8Type) Deserialize(storageType arrow.DataType, data string) (arrow.ExtensionType, error)
(*Bool8Type) ExtensionEquals(other arrow.ExtensionType) bool
(*Bool8Type) ExtensionName() string
(*Bool8Type) Fields() []arrow.Field
(*Bool8Type) Fingerprint() string
ID always returns arrow.EXTENSION and should not be overridden
(*Bool8Type) Layout() arrow.DataTypeLayout
Name should always return "extension" and should not be overridden
(*Bool8Type) NewBuilder(mem memory.Allocator) array.Builder
(*Bool8Type) NumFields() int
(*Bool8Type) Serialize() string
StorageType returns the underlying storage type and exists so that functions
written against the ExtensionType interface can access the storage type.
(*Bool8Type) String() string
*Bool8Type : github.com/apache/arrow-go/v18/arrow.DataType
*Bool8Type : github.com/apache/arrow-go/v18/arrow.ExtensionType
*Bool8Type : github.com/apache/arrow-go/v18/arrow.NestedType
*Bool8Type : github.com/apache/arrow-go/v18/arrow/array.CustomExtensionBuilder
*Bool8Type : github.com/polarsignals/frostdb/query/logicalplan.Named
*Bool8Type : expvar.Var
*Bool8Type : fmt.Stringer
func NewBool8Type() *Bool8Type
JSONArray is logically an array of UTF-8 encoded JSON strings.
Its values are unmarshaled to native Go values.
ExtensionArrayBase array.ExtensionArrayBase
(*JSONArray) Data() arrow.ArrayData
DataType returns the type metadata for this instance.
ExtensionType returns the same thing as DataType, just already casted
to an ExtensionType interface for convenience.
GetOneForMarshal implements arrow.Array.
IsNull returns true if value at index is null.
NOTE: IsNull will panic if NullBitmapBytes is not empty and 0 > i ≥ Len.
IsValid returns true if value at index is not null.
NOTE: IsValid will panic if NullBitmapBytes is not empty and 0 > i ≥ Len.
Len returns the number of elements in the array.
MarshalJSON implements json.Marshaler.
Marshaling json.RawMessage is a no-op, except that nil values will
be marshaled as a JSON null.
NullBitmapBytes returns a byte slice of the validity bitmap.
NullN returns the number of null values in the array.
(*JSONArray) Offset() int
Release decreases the reference count by 1.
Release may be called simultaneously from multiple goroutines.
When the reference count goes to zero, the memory is freed.
Retain increases the reference count by 1.
Retain may be called simultaneously from multiple goroutines.
Storage returns the underlying storage array
(*JSONArray) String() string
(*JSONArray) Value(i int) any
(*JSONArray) ValueBytes(i int) []byte
ValueJSON wraps the underlying string value as a json.RawMessage,
or returns nil if the array value is null.
(*JSONArray) ValueStr(i int) string
*JSONArray : github.com/apache/arrow-go/v18/arrow.Array[T]
*JSONArray : github.com/apache/arrow-go/v18/arrow/array.ExtensionArray
*JSONArray : github.com/apache/arrow-go/v18/arrow/scalar.Releasable
*JSONArray : github.com/goccy/go-json.Marshaler
*JSONArray : encoding/json.Marshaler
*JSONArray : expvar.Var
*JSONArray : fmt.Stringer
JSONType represents a UTF-8 encoded JSON string as specified in RFC8259.
ExtensionBase arrow.ExtensionBase
Storage is the underlying storage type
(*JSONType) ArrayType() reflect.Type
(*JSONType) Deserialize(storageType arrow.DataType, data string) (arrow.ExtensionType, error)
(*JSONType) ExtensionEquals(other arrow.ExtensionType) bool
(*JSONType) ExtensionName() string
(*JSONType) Fields() []arrow.Field
(*JSONType) Fingerprint() string
ID always returns arrow.EXTENSION and should not be overridden
(*JSONType) Layout() arrow.DataTypeLayout
Name should always return "extension" and should not be overridden
(*JSONType) NumFields() int
ParquetLogicalType implements pqarrow.ExtensionCustomParquetType.
(*JSONType) Serialize() string
StorageType returns the underlying storage type and exists so that functions
written against the ExtensionType interface can access the storage type.
(*JSONType) String() string
*JSONType : github.com/apache/arrow-go/v18/arrow.DataType
*JSONType : github.com/apache/arrow-go/v18/arrow.ExtensionType
*JSONType : github.com/apache/arrow-go/v18/arrow.NestedType
*JSONType : github.com/polarsignals/frostdb/query/logicalplan.Named
*JSONType : expvar.Var
*JSONType : fmt.Stringer
func NewJSONType(storageType arrow.DataType) (*JSONType, error)
OpaqueArray is a placeholder for data from an external (usually
non-Arrow) system that could not be interpreted.
ExtensionArrayBase array.ExtensionArrayBase
(*OpaqueArray) Data() arrow.ArrayData
DataType returns the type metadata for this instance.
ExtensionType returns the same thing as DataType, just already casted
to an ExtensionType interface for convenience.
(*OpaqueArray) GetOneForMarshal(i int) interface{}
IsNull returns true if value at index is null.
NOTE: IsNull will panic if NullBitmapBytes is not empty and 0 > i ≥ Len.
IsValid returns true if value at index is not null.
NOTE: IsValid will panic if NullBitmapBytes is not empty and 0 > i ≥ Len.
Len returns the number of elements in the array.
(*OpaqueArray) MarshalJSON() ([]byte, error)
NullBitmapBytes returns a byte slice of the validity bitmap.
NullN returns the number of null values in the array.
(*OpaqueArray) Offset() int
Release decreases the reference count by 1.
Release may be called simultaneously from multiple goroutines.
When the reference count goes to zero, the memory is freed.
Retain increases the reference count by 1.
Retain may be called simultaneously from multiple goroutines.
Storage returns the underlying storage array
(*OpaqueArray) String() string
ValueStr returns the value at index i as a string.
This needs to be implemented by the extension array type.
*OpaqueArray : github.com/apache/arrow-go/v18/arrow.Array[T]
*OpaqueArray : github.com/apache/arrow-go/v18/arrow/array.ExtensionArray
*OpaqueArray : github.com/apache/arrow-go/v18/arrow/scalar.Releasable
*OpaqueArray : github.com/goccy/go-json.Marshaler
*OpaqueArray : encoding/json.Marshaler
*OpaqueArray : expvar.Var
*OpaqueArray : fmt.Stringer
OpaqueType is a placeholder for a type from an external (usually
non-Arrow) system that could not be interpreted.
ExtensionBase arrow.ExtensionBase
Storage is the underlying storage type
TypeName string
VendorName string
(*OpaqueType) ArrayType() reflect.Type
(*OpaqueType) Deserialize(storageType arrow.DataType, data string) (arrow.ExtensionType, error)
(*OpaqueType) ExtensionEquals(other arrow.ExtensionType) bool
(*OpaqueType) ExtensionName() string
(*OpaqueType) Fields() []arrow.Field
(*OpaqueType) Fingerprint() string
ID always returns arrow.EXTENSION and should not be overridden
(*OpaqueType) Layout() arrow.DataTypeLayout
Name should always return "extension" and should not be overridden
(*OpaqueType) NumFields() int
(*OpaqueType) Serialize() string
StorageType returns the underlying storage type and exists so that functions
written against the ExtensionType interface can access the storage type.
(*OpaqueType) String() string
*OpaqueType : github.com/apache/arrow-go/v18/arrow.DataType
*OpaqueType : github.com/apache/arrow-go/v18/arrow.ExtensionType
*OpaqueType : github.com/apache/arrow-go/v18/arrow.NestedType
*OpaqueType : github.com/polarsignals/frostdb/query/logicalplan.Named
*OpaqueType : expvar.Var
*OpaqueType : fmt.Stringer
func NewOpaqueType(storageType arrow.DataType, name, vendorName string) *OpaqueType
UUIDArray is a simple array which is a FixedSizeBinary(16)
ExtensionArrayBase array.ExtensionArrayBase
(*UUIDArray) Data() arrow.ArrayData
DataType returns the type metadata for this instance.
ExtensionType returns the same thing as DataType, just already casted
to an ExtensionType interface for convenience.
(*UUIDArray) GetOneForMarshal(i int) interface{}
IsNull returns true if value at index is null.
NOTE: IsNull will panic if NullBitmapBytes is not empty and 0 > i ≥ Len.
IsValid returns true if value at index is not null.
NOTE: IsValid will panic if NullBitmapBytes is not empty and 0 > i ≥ Len.
Len returns the number of elements in the array.
(*UUIDArray) MarshalJSON() ([]byte, error)
NullBitmapBytes returns a byte slice of the validity bitmap.
NullN returns the number of null values in the array.
(*UUIDArray) Offset() int
Release decreases the reference count by 1.
Release may be called simultaneously from multiple goroutines.
When the reference count goes to zero, the memory is freed.
Retain increases the reference count by 1.
Retain may be called simultaneously from multiple goroutines.
Storage returns the underlying storage array
(*UUIDArray) String() string
(*UUIDArray) Value(i int) uuid.UUID
(*UUIDArray) ValueStr(i int) string
(*UUIDArray) Values() []uuid.UUID
*UUIDArray : github.com/apache/arrow-go/v18/arrow.Array[T]
*UUIDArray : github.com/apache/arrow-go/v18/arrow/array.ExtensionArray
*UUIDArray : github.com/apache/arrow-go/v18/arrow/scalar.Releasable
*UUIDArray : github.com/goccy/go-json.Marshaler
*UUIDArray : encoding/json.Marshaler
*UUIDArray : expvar.Var
*UUIDArray : fmt.Stringer
ExtensionBuilder *array.ExtensionBuilder
ExtensionBuilder.Builder array.Builder
(*UUIDBuilder) Append(v uuid.UUID)
(*UUIDBuilder) AppendBytes(v [16]byte)
AppendEmptyValue adds a new zero value of the appropriate type
AppendEmptyValues adds new n zero values of the appropriate type
AppendNull adds a new null value to the array being built.
AppendNulls adds new n null values to the array being built.
(*UUIDBuilder) AppendValueFromString(s string) error
(*UUIDBuilder) AppendValues(v []uuid.UUID, valid []bool)
Cap returns the total number of elements that can be stored
without allocating additional memory.
IsNull returns if a previously appended value at a given index is null or not.
Len returns the number of elements in the array builder.
NewArray creates a new array from the memory buffers used by the builder
and resets the builder so it can be used to build a new array.
NewExtensionArray creates an Extension array from the memory buffers used
by the builder and resets the ExtensionBuilder so it can be used to build
a new ExtensionArray of the same type.
NullN returns the number of null values in the array builder.
Release decreases the reference count by 1.
Reserve ensures there is enough space for appending n elements
by checking the capacity and calling Resize if necessary.
Resize adjusts the space allocated by b to n elements. If n is greater than b.Cap(),
additional memory will be allocated. If n is smaller, the allocated memory may reduced.
Retain increases the reference count by 1.
Retain may be called simultaneously from multiple goroutines.
SetNull sets the value at index i to null.
StorageBuilder returns the builder for the underlying storage type.
( UUIDBuilder) Type() arrow.DataType
(*UUIDBuilder) Unmarshal(dec *json.Decoder) error
(*UUIDBuilder) UnmarshalJSON(data []byte) error
(*UUIDBuilder) UnmarshalOne(dec *json.Decoder) error
(*UUIDBuilder) UnsafeAppend(v uuid.UUID)
( UUIDBuilder) UnsafeAppendBoolToBitmap(bool)
*UUIDBuilder : github.com/apache/arrow-go/v18/arrow/array.Builder
UUIDBuilder : github.com/apache/arrow-go/v18/arrow/scalar.Releasable
*UUIDBuilder : github.com/goccy/go-json.Unmarshaler
UUIDBuilder : github.com/polarsignals/frostdb/pqarrow/builder.ColumnBuilder
*UUIDBuilder : encoding/json.Unmarshaler
func NewUUIDBuilder(mem memory.Allocator) *UUIDBuilder
UUIDType is a simple extension type that represents a FixedSizeBinary(16)
to be used for representing UUIDs
ExtensionBase arrow.ExtensionBase
Storage is the underlying storage type
ArrayType returns TypeOf(UUIDArray{}) for constructing UUID arrays
(*UUIDType) BitWidth() int
(*UUIDType) Bytes() int
Deserialize expects storageType to be FixedSizeBinaryType{ByteWidth: 16}
ExtensionEquals returns true if both extensions have the same name
(*UUIDType) ExtensionName() string
(*UUIDType) Fields() []arrow.Field
(*UUIDType) Fingerprint() string
ID always returns arrow.EXTENSION and should not be overridden
(*UUIDType) Layout() arrow.DataTypeLayout
(*UUIDType) MarshalJSON() ([]byte, error)
Name should always return "extension" and should not be overridden
(*UUIDType) NewBuilder(mem memory.Allocator) array.Builder
(*UUIDType) NumFields() int
ParquetLogicalType implements pqarrow.ExtensionCustomParquetType.
(*UUIDType) Serialize() string
StorageType returns the underlying storage type and exists so that functions
written against the ExtensionType interface can access the storage type.
(*UUIDType) String() string
*UUIDType : github.com/apache/arrow-go/v18/arrow.DataType
*UUIDType : github.com/apache/arrow-go/v18/arrow.ExtensionType
*UUIDType : github.com/apache/arrow-go/v18/arrow.FixedWidthDataType
*UUIDType : github.com/apache/arrow-go/v18/arrow.NestedType
*UUIDType : github.com/apache/arrow-go/v18/arrow/array.CustomExtensionBuilder
*UUIDType : github.com/goccy/go-json.Marshaler
*UUIDType : github.com/K-Phoen/grabana/datasource.Datasource
*UUIDType : github.com/polarsignals/frostdb/query/logicalplan.Named
*UUIDType : encoding/json.Marshaler
*UUIDType : expvar.Var
*UUIDType : fmt.Stringer
func NewUUIDType() *UUIDType
VariantArray is an extension Array type containing Variant values which may
potentially be shredded into multiple fields.
ExtensionArrayBase array.ExtensionArrayBase
(*VariantArray) Data() arrow.ArrayData
DataType returns the type metadata for this instance.
ExtensionType returns the same thing as DataType, just already casted
to an ExtensionType interface for convenience.
(*VariantArray) GetOneForMarshal(i int) any
IsNull will also take into account the special case where there is an
encoded null variant in the untyped values array for this index and return
appropriately.
IsShredded returns true if the variant has shredded columns.
(*VariantArray) IsValid(i int) bool
Len returns the number of elements in the array.
(*VariantArray) MarshalJSON() ([]byte, error)
Metadata returns the metadata column of the variant array, containing the
metadata for each variant value.
NullBitmapBytes returns a byte slice of the validity bitmap.
NullN returns the number of null values in the array.
(*VariantArray) Offset() int
Release decreases the reference count by 1.
Release may be called simultaneously from multiple goroutines.
When the reference count goes to zero, the memory is freed.
Retain increases the reference count by 1.
Retain may be called simultaneously from multiple goroutines.
Shredded returns the typed array for the shredded values of the variant array,
following the rules of the Parquet Variant specification. As such, this array will
always be either a struct, a list, or a primitive array.
The reason for exposing this is to allow users to quickly access one of the shredded
fields without having to decode the entire variant value.
Storage returns the underlying storage array
(*VariantArray) String() string
UntypedValues returns the untyped variant values for each element of the array,
if the array is not shredded this will contain the variant bytes for each value.
If the array is shredded, this will contain any variant values that are either
partially shredded objects or are not shredded at all (e.g. a value that doesnt
match the types of the shredding).
The shredded array and the untyped values array together are used to encode a
single value. If this is not encoding shredded object fields, then a given index
will never be null in both arrays. (A null value will be an encoded null variant value
in this array with a null in the shredded array).
If both arrays are null for a given index (only valid for shredded object fields),
it means that the value is missing entirely (as opposed to existing and having a
value of null).
(*VariantArray) Value(i int) (variant.Value, error)
(*VariantArray) ValueStr(i int) string
(*VariantArray) Values() ([]variant.Value, error)
*VariantArray : github.com/apache/arrow-go/v18/arrow.Array[T]
*VariantArray : github.com/apache/arrow-go/v18/arrow/array.ExtensionArray
*VariantArray : github.com/apache/arrow-go/v18/arrow/scalar.Releasable
*VariantArray : github.com/goccy/go-json.Marshaler
*VariantArray : encoding/json.Marshaler
*VariantArray : expvar.Var
*VariantArray : fmt.Stringer
VariantBuilder is an array builder for both shredded or non-shredded variant extension
arrays. It allows you to append variant values, and will appropriately shred them
if it is able to do so based on the underlying storage type.
ExtensionBuilder *array.ExtensionBuilder
ExtensionBuilder.Builder array.Builder
(*VariantBuilder) Append(v variant.Value)
AppendEmptyValue adds a new zero value of the appropriate type
AppendEmptyValues adds new n zero values of the appropriate type
AppendNull adds a new null value to the array being built.
AppendNulls adds new n null values to the array being built.
AppendValueFromString adds a new value from a string. Inverse of array.ValueStr(i int) string
Cap returns the total number of elements that can be stored
without allocating additional memory.
IsNull returns if a previously appended value at a given index is null or not.
Len returns the number of elements in the array builder.
NewArray creates a new array from the memory buffers used by the builder
and resets the builder so it can be used to build a new array.
NewExtensionArray creates an Extension array from the memory buffers used
by the builder and resets the ExtensionBuilder so it can be used to build
a new ExtensionArray of the same type.
NullN returns the number of null values in the array builder.
Release decreases the reference count by 1.
Reserve ensures there is enough space for appending n elements
by checking the capacity and calling Resize if necessary.
Resize adjusts the space allocated by b to n elements. If n is greater than b.Cap(),
additional memory will be allocated. If n is smaller, the allocated memory may reduced.
Retain increases the reference count by 1.
Retain may be called simultaneously from multiple goroutines.
SetNull sets the value at index i to null.
StorageBuilder returns the builder for the underlying storage type.
( VariantBuilder) Type() arrow.DataType
(*VariantBuilder) Unmarshal(dec *json.Decoder) error
(*VariantBuilder) UnmarshalJSON(data []byte) error
(*VariantBuilder) UnmarshalOne(dec *json.Decoder) error
( VariantBuilder) UnsafeAppendBoolToBitmap(bool)
*VariantBuilder : github.com/apache/arrow-go/v18/arrow/array.Builder
VariantBuilder : github.com/apache/arrow-go/v18/arrow/scalar.Releasable
*VariantBuilder : github.com/goccy/go-json.Unmarshaler
VariantBuilder : github.com/polarsignals/frostdb/pqarrow/builder.ColumnBuilder
*VariantBuilder : encoding/json.Unmarshaler
func NewVariantBuilder(mem memory.Allocator, dt *VariantType) *VariantBuilder
VariantType is the arrow extension type for representing Variant values as
defined by the Parquet Variant specification for encoding and shredding values.
The underlying storage must be a struct type with a minimum of two fields
("metadata" and "value") and an optional third field ("typed_value").
See the documentation for [NewVariantType] for the rules for creating a variant
type.
ExtensionBase arrow.ExtensionBase
Storage is the underlying storage type
(*VariantType) ArrayType() reflect.Type
(*VariantType) Deserialize(storageType arrow.DataType, _ string) (arrow.ExtensionType, error)
(*VariantType) ExtensionEquals(other arrow.ExtensionType) bool
(*VariantType) ExtensionName() string
(*VariantType) Fields() []arrow.Field
(*VariantType) Fingerprint() string
ID always returns arrow.EXTENSION and should not be overridden
(*VariantType) Layout() arrow.DataTypeLayout
(*VariantType) Metadata() arrow.Field
Name should always return "extension" and should not be overridden
(*VariantType) NewBuilder(mem memory.Allocator) array.Builder
(*VariantType) NumFields() int
(*VariantType) ParquetLogicalType() schema.LogicalType
(*VariantType) Serialize() string
StorageType returns the underlying storage type and exists so that functions
written against the ExtensionType interface can access the storage type.
(*VariantType) String() string
(*VariantType) TypedValue() arrow.Field
(*VariantType) Value() arrow.Field
*VariantType : github.com/apache/arrow-go/v18/arrow.DataType
*VariantType : github.com/apache/arrow-go/v18/arrow.ExtensionType
*VariantType : github.com/apache/arrow-go/v18/arrow.NestedType
*VariantType : github.com/apache/arrow-go/v18/arrow/array.CustomExtensionBuilder
*VariantType : github.com/polarsignals/frostdb/query/logicalplan.Named
*VariantType : expvar.Var
*VariantType : fmt.Stringer
func NewDefaultVariantType() *VariantType
func NewShreddedVariantType(dt arrow.DataType) *VariantType
func NewVariantType(storage arrow.DataType) (*VariantType, error)
func NewVariantBuilder(mem memory.Allocator, dt *VariantType) *VariantBuilder
Package-Level Functions (total 10)
NewBool8Builder creates a new Bool8Builder, exposing a convenient and efficient interface
for writing boolean values to the underlying int8 storage array.
NewBool8Type creates a new Bool8Type with the underlying storage type set correctly to Int8.
NewDefaultVariantType creates a basic, non-shredded variant type. The underlying
storage type will be struct<metadata: binary non-null, value: binary non-null>.
NewJSONType creates a new JSONType with the specified storage type.
storageType must be one of String, LargeString, StringView.
NewOpaqueType creates a new OpaqueType with the provided storage type, type name, and vendor name.
NewShreddedVariantType creates a new VariantType extension type using the provided
type to define a shredded schema by setting the `typed_value` field accordingly and
properly constructing the shredded fields for structs, lists and so on.
For example:
NewShreddedVariantType(arrow.StructOf(
arrow.Field{Name: "latitude", Type: arrow.PrimitiveTypes.Float64},
arrow.Field{Name: "longitude", Type: arrow.PrimitiveTypes.Float32}))
Will create a variant type with the following structure:
arrow.StructOf(
arrow.Field{Name: "metadata", Type: arrow.BinaryTypes.Binary, Nullable: false},
arrow.Field{Name: "value", Type: arrow.BinaryTypes.Binary, Nullable: true},
arrow.Field{Name: "typed_value", Type: arrow.StructOf(
arrow.Field{Name: "latitude", Type: arrow.StructOf(
arrow.Field{Name: "value", Type: arrow.BinaryTypes.Binary, Nullable: true},
arrow.Field{Name: "typed_value", Type: arrow.PrimitiveTypes.Float64, Nullable: true}),
Nullable: false},
arrow.Field{Name: "longitude", Type: arrow.StructOf(
arrow.Field{Name: "value", Type: arrow.BinaryTypes.Binary, Nullable: true},
arrow.Field{Name: "typed_value", Type: arrow.PrimitiveTypes.Float32, Nullable: true}),
Nullable: false},
), Nullable: true})
This is intended to be a convenient way to create a shredded variant type from a definition
of the fields to shred. If the provided data type is nil, it will create a default
variant type.
NewUUIDBuilder creates a new UUIDBuilder, exposing a convenient and efficient interface
for writing uuid.UUID (or [16]byte) values to the underlying FixedSizeBinary storage array.
NewUUIDType is a convenience function to create an instance of UUIDType
with the correct storage type
NewVariantBuilder creates a new VariantBuilder for the given variant type which may
or may not be shredded.
NewVariantType creates a new variant type based on the provided storage type.
The rules for a variant storage type are:
1. MUST be a struct
2. MUST have non-nullable field named "metadata" that is binary/largebinary/binary_view
3. Must satisfy exactly one of the following:
a. MUST have non-nullable field named "value" that is binary/largebinary/binary_view
b. MUST have an nullable field named "value" that is binary/largebinary/binary_view
and another nullable field named "typed_value" that is either a primitive type or
a list/large_list/list_view or struct which also satisfies the following requirements:
i. The elements must be NON-NULLABLE
ii. There must either be a single NON-NULLABLE field named "value" which is
binary/largebinary/binary_view or have an nullable "value" field and an nullable
"typed_value" field that follows the rules laid out in (b).
The metadata field may also be dictionary encoded
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |