Skip to content

Commit

Permalink
ARROW-1246: [Format] Draft Flatbuffer metadata description for Map
Browse files Browse the repository at this point in the history
Author: Wes McKinney <[email protected]>

Closes apache#876 from wesm/ARROW-1246 and squashes the following commits:

98790dfc [Wes McKinney] Review feedback to clarify nullability of map components
346b48dd [Wes McKinney] Typo
06ae8ebf [Wes McKinney] Draft Flatbuffer metadata for Map
  • Loading branch information
wesm committed Jul 25, 2017
1 parent c10dd83 commit ad8db9d
Showing 1 changed file with 31 additions and 1 deletion.
32 changes: 31 additions & 1 deletion format/Schema.fbs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,35 @@ table FixedSizeList {
listSize: int;
}

/// A Map is a logical nested type that is represented as
///
/// List<entry: Struct<key: K, value: V>>
///
/// In this layout, the keys and values are each respectively contiguous. We do
/// not constrain the key and value types, so the application is responsible
/// for ensuring that the keys are hashable and unique. Whether the keys are sorted
/// may be set in the metadata for this field
///
/// In a Field with Map type, the Field has a child Struct field, which then
/// has two children: key type and the second the value type. The names of the
/// child fields may be respectively "entry", "key", and "value", but this is
/// not enforced
///
/// Map
/// - child[0] entry: Struct
/// - child[0] key: K
/// - child[1] value: V
///
/// Neither the "entry" field nor the "key" field may be nullable.
///
/// The metadata is structured so that Arrow systems without special handling
/// for Map can make Map an alias for List. The "layout" attribute for the Map
/// field must have the same contents as a List.
table Map {
/// Set to true if the keys within each value are sorted
keysSorted: bool;
}

enum UnionMode:short { Sparse, Dense }

/// A union is a complex type with children in Field
Expand Down Expand Up @@ -170,7 +199,8 @@ union Type {
Struct_,
Union,
FixedSizeBinary,
FixedSizeList
FixedSizeList,
Map
}

/// ----------------------------------------------------------------------
Expand Down

0 comments on commit ad8db9d

Please sign in to comment.