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)
/* sort by: | */
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