DOCS: Update protocol doc for missing data type
Reviewers: Chia-Ping Tsai
@@ -75,16 +75,24 @@ There are several primitive field types available.
* "int16": a 16-bit integer.
+* "uint16": a 16-bit unsigned integer.
+
* "int32": a 32-bit integer.
+* "uint32": a 32-bit unsigned integer.
+
* "int64": a 64-bit integer.
* "float64": is a double-precision floating point number (IEEE 754).
* "string": a UTF-8 string.
+* "uuid": a type 4 immutable universally unique identifier.
+
* "bytes": binary data.
+* "records": recordset such as memory recordset.
+
In addition to these primitive field types, there is also an array type. Array
types start with a "[]" and end with the name of the element type. For
example, []Foo declares an array of "Foo" objects. Array fields have their own
@@ -96,12 +104,12 @@ Guide](https://kafka.apache.org/protocol.html).
Nullable Fields
---------------
Booleans, ints, and floats can never be null. However, fields that are strings,
-bytes, or arrays may optionally be "nullable." When a field is "nullable," that
-simply means that we are prepared to serialize and deserialize null entries for
-that field.
+bytes, uuid, records, or arrays may optionally be "nullable". When a field is
+"nullable", that simply means that we are prepared to serialize and deserialize
+null entries for that field.
If you want to declare a field as nullable, you set "nullableVersions" for that
-field. Nullability is implemented as a version range in order to accomodate a
+field. Nullability is implemented as a version range in order to accommodate a
very common pattern in Kafka where a field that was originally not nullable
becomes nullable in a later version.
@@ -176,6 +184,10 @@ been set:
* Bytes fields default to the empty byte array.
+* Uuid fields default to zero uuid.
+
+* Records fields default to null.
+
* Array fields default to empty.
You can specify "null" as a default value for a string field by specifing the
