diff --git a/format/Schema.fbs b/format/Schema.fbs index 3d739342b83c..bc1a2a3973db 100644 --- a/format/Schema.fbs +++ b/format/Schema.fbs @@ -211,6 +211,33 @@ union Type { Map } +/// ---------------------------------------------------------------------- +/// The possible types of a vector +/// VectorType enum is deprecated and only here for backward compatibility + +enum VectorType: short { + /// used in List type, Dense Union and variable length primitive types (String, Binary) + OFFSET, + /// actual data, either wixed width primitive types in slots or variable width delimited by an OFFSET vector + DATA, + /// Bit vector indicating if each value is null + VALIDITY, + /// Type vector used in Union type + TYPE +} + +/// ---------------------------------------------------------------------- +/// represents the physical layout of a buffer +/// buffers have fixed width slots of a given type +/// VectorLayout table is deprecated and only here for backward compatibility + +table VectorLayout { + /// the width of a slot in the buffer (typically 1, 8, 16, 32 or 64) + bit_width: short (deprecated); + /// the purpose of the vector + type: VectorType (deprecated); +} + /// ---------------------------------------------------------------------- /// user defined key value pairs to add custom metadata to arrow /// key namespacing is the responsibility of the user @@ -260,6 +287,11 @@ table Field { // children apply only to Nested data types like Struct, List and Union children: [Field]; + // layout field is deprecated - is derived from ArrowType + // still here for backward compatibility to + // deserialize Field serialized with older version + layout: [ VectorLayout ] (deprecated); + // User-defined metadata custom_metadata: [ KeyValue ]; }