DTypes#
-
type vx_dtype#
A Vortex data type.
Data types in Vortex are purely logical, meaning they confer no information about how the data is physically stored.
Factories#
-
const vx_dtype *vx_dtype_new_primitive(vx_ptype ptype, bool is_nullable)#
Create a new primitive data type.
-
const vx_dtype *vx_dtype_new_decimal(uint8_t precision, int8_t scale, bool is_nullable)#
Create a new decimal data type.
-
const vx_dtype *vx_dtype_new_binary(bool is_nullable)#
Create a new variable length binary data type.
-
const vx_dtype *vx_dtype_new_struct(vx_struct_fields *struct_dtype, bool is_nullable)#
Create a new struct data type.
Takes ownership of the struct_dtype pointer.
Properties#
-
enum vx_dtype_variant#
The variant tag for a Vortex data type.
-
enumerator DTYPE_NULL = 0#
Null type.
-
enumerator DTYPE_BOOL = 1#
Boolean type.
-
enumerator DTYPE_PRIMITIVE = 2#
Primitive types (e.g., u8, i16, f32, etc.).
-
enumerator DTYPE_UTF8 = 3#
Variable-length UTF-8 string type.
-
enumerator DTYPE_BINARY = 4#
Variable-length binary data type.
-
enumerator DTYPE_STRUCT = 5#
Nested struct type.
-
enumerator DTYPE_LIST = 6#
Nested list type.
-
enumerator DTYPE_EXTENSION = 7#
User-defined extension type.
-
enumerator DTYPE_DECIMAL = 8#
Decimal type with fixed precision and scale.
-
enumerator DTYPE_FIXED_SIZE_LIST = 9#
Nested fixed-size list type.
-
enumerator DTYPE_NULL = 0#
-
vx_dtype_variant vx_dtype_get_variant(const vx_dtype *dtype)#
Get the variant of a
vx_dtype.
-
const vx_struct_fields *vx_dtype_struct_dtype(const vx_dtype *dtype)#
If “dtype” is DTYPE_STRUCT, return owned vx_struct_fields for this struct, return NULL otherwise. Returned vx_struct_fields must be released with vx_dtype_free.
PType#
-
enum vx_ptype#
Variant enum for Vortex primitive types.
-
enumerator PTYPE_U8 = 0#
Unsigned 8-bit integer
-
enumerator PTYPE_U16 = 1#
Unsigned 16-bit integer
-
enumerator PTYPE_U32 = 2#
Unsigned 32-bit integer
-
enumerator PTYPE_U64 = 3#
Unsigned 64-bit integer
-
enumerator PTYPE_I8 = 4#
Signed 8-bit integer
-
enumerator PTYPE_I16 = 5#
Signed 16-bit integer
-
enumerator PTYPE_I32 = 6#
Signed 32-bit integer
-
enumerator PTYPE_I64 = 7#
Signed 64-bit integer
-
enumerator PTYPE_F16 = 8#
16-bit floating point number
-
enumerator PTYPE_F32 = 9#
32-bit floating point number
-
enumerator PTYPE_F64 = 10#
64-bit floating point number
-
enumerator PTYPE_U8 = 0#
Struct Fields#
-
type vx_struct_fields#
Represents a Vortex struct data type, without top-level nullability.
-
void vx_struct_fields_free(const vx_struct_fields *ptr)#
Free an owned
vx_struct_fieldsobject.
-
uint64_t vx_struct_fields_nfields(const vx_struct_fields *dtype)#
Return the number of fields in the struct dtype.
-
const vx_dtype *vx_struct_fields_field_dtype(const vx_struct_fields *dtype, size_t idx)#
Return an owned dtype of the field at a given index. Returns NULL if index is out of bounds or if dtype cannot be parsed.
-
vx_view vx_struct_fields_field_name(const vx_struct_fields *dtype, size_t idx)#
Return field name at a given index. If index is out of bounds, returns {NULL, 0}.
Returned view is valid as long as “dtype” is valid.
Struct Fields Builder#
-
type vx_struct_fields_builder#
Builder for creating a
vx_struct_fields.
-
void vx_struct_fields_builder_free(const vx_struct_fields_builder *ptr)#
Free an owned
vx_struct_fields_builderobject.
-
vx_struct_fields_builder *vx_struct_fields_builder_new(void)#
Create a new struct dtype builder.
-
void vx_struct_fields_builder_add_field(vx_struct_fields_builder *builder, vx_view name, const vx_dtype *dtype, vx_error **error_out)#
Add a field to the struct dtype builder.
“name” is copied. Takes ownership of “dtype”. Caller must free or finalize the builder.
-
vx_struct_fields *vx_struct_fields_builder_finalize(vx_struct_fields_builder *builder)#
Finalize the struct dtype builder, returning a new vx_struct_fields.
Takes ownership of the builder.