Skip to main content

Field Type Reference

Complete reference for all 17 YXDB field types, their binary encoding, and how SigilYX represents them.

Boolean

PropertyValue
CategoryBoolean
Fixed size1 byte
Encoding0x00 = false, 0x01 = true, 0x02 = null
Arrow typeBooleanArray
Polars typeBoolean

No separate null indicator byte - the value byte encodes both value and nullability.

Byte

PropertyValue
CategoryInteger
Fixed size2 bytes
Encoding1 byte unsigned value + 1 byte null indicator
Arrow typeInt16Array
Polars typeInt16

Stored as Int16 (not UInt8) to accommodate the full 0-255 range without ambiguity.

Int16

PropertyValue
CategoryInteger
Fixed size3 bytes
Encoding2 bytes signed LE + 1 byte null indicator
Arrow typeInt16Array
Polars typeInt16

Int32

PropertyValue
CategoryInteger
Fixed size5 bytes
Encoding4 bytes signed LE + 1 byte null indicator
Arrow typeInt32Array
Polars typeInt32

Int64

PropertyValue
CategoryInteger
Fixed size9 bytes
Encoding8 bytes signed LE + 1 byte null indicator
Arrow typeInt64Array
Polars typeInt64

Float

PropertyValue
CategoryFloat
Fixed size5 bytes
Encoding4 bytes IEEE 754 single-precision + 1 byte null indicator
Arrow typeFloat32Array
Polars typeFloat32

Double

PropertyValue
CategoryFloat
Fixed size9 bytes
Encoding8 bytes IEEE 754 double-precision + 1 byte null indicator
Arrow typeFloat64Array
Polars typeFloat64

FixedDecimal

PropertyValue
CategoryDecimal
Fixed sizesize + 1 bytes
EncodingASCII decimal string (e.g., "12345.67"), null-padded, + 1 byte null indicator
Arrow typeDecimal128Array
Polars typeDecimal(precision, scale)

The size attribute specifies the precision (total digits). The scale attribute specifies the number of decimal places.

String

PropertyValue
CategoryFixed string
Fixed sizesize + 1 bytes
EncodingASCII / Latin-1, null-terminated, + 1 byte null indicator
Arrow typeUtf8Array
Polars typeString

WString

PropertyValue
CategoryFixed string
Fixed sizesize * 2 + 1 bytes
EncodingUTF-16LE, null-terminated, + 1 byte null indicator
Arrow typeUtf8Array
Polars typeString

SigilYX decodes UTF-16LE to UTF-8 on read, with an SSE2-accelerated fast path for ASCII content.

V_String

PropertyValue
CategoryVariable string
Fixed portion4 bytes (offset marker)
EncodingASCII / Latin-1, variable length
Arrow typeLargeUtf8Array
Polars typeString

V_WString

PropertyValue
CategoryVariable string
Fixed portion4 bytes (offset marker)
EncodingUTF-16LE, variable length
Arrow typeLargeUtf8Array
Polars typeString

The most common string type for modern YXDB files. SigilYX's SIMD UTF-16 transcoding makes this type particularly fast to read.

Date

PropertyValue
CategoryTemporal
Fixed size11 bytes
EncodingYYYY-MM-DD ASCII (10 chars) + 1 byte null indicator
Arrow typeDate32Array
Polars typeDate

Stored as days since Unix epoch in the Arrow representation.

DateTime

PropertyValue
CategoryTemporal
Fixed size20 bytes
EncodingYYYY-MM-DD HH:MM:SS ASCII (19 chars) + 1 byte null indicator
Arrow typeTimestampArray(Microsecond)
Polars typeDatetime(Microsecond)

Time

PropertyValue
CategoryTemporal
Fixed size9 bytes
EncodingHH:MM:SS ASCII (8 chars) + 1 byte null indicator
Arrow typeTime64Array(Nanosecond)
Polars typeTime

Blob

PropertyValue
CategoryBinary
Fixed portion4 bytes (offset marker)
EncodingVariable-length raw bytes
Arrow typeLargeBinaryArray
Polars typeBinary

SpatialObj

PropertyValue
CategoryBinary
Fixed portion4 bytes (offset marker)
EncodingVariable-length Alteryx SHP geometry
Arrow typeLargeBinaryArray
Polars typeBinary

SigilYX can decode the proprietary SHP format to standard ISO Well-Known Binary (WKB) using SpatialMode::Wkb. This makes the data compatible with PostGIS, GDAL, Shapely, GeoPandas, and other geospatial tools.

Null Handling

Most types use a trailing null indicator byte: 0x00 = valid, 0x01 = null. The exceptions are:

  • Boolean: Uses 0x02 from the single value byte
  • Variable-length types: A zero offset (bit 31 clear) indicates null/empty