| Change type | Description |
|---|---|
| Introduced in version 5.0.6 | Provides SQData field type, COBOL, and timestamp mappings to Protobuf types, including nullable field behavior. |
The following tables describe how Connect CDC (SQData) field types and COBOL data types map to Protobuf types when generating schemas for Protobuf Kafka targets.
SQData field type to Protobuf type
| SQData field type | Protobuf type | Format notes |
|---|---|---|
| TYPE_T_CHAR, TYPE_T_VARCHAR | string |
UTF-8 encoded |
| TYPE_T_BINARY, TYPE_T_VARBINARY | bytes |
Raw binary data |
| TYPE_T_TINY, TYPE_T_SHORT, TYPE_T_INTEGER | int32 |
Signed 32-bit varint |
| TYPE_T_BIG | int64 |
Signed 64-bit varint |
| TYPE_T_FLOAT | float |
IEEE 754 single precision |
| TYPE_T_DOUBLE | double |
IEEE 754 double precision |
| TYPE_T_DECIMAL | string |
Exact decimal representation (for example, "123456789.123456789") |
| TYPE_T_DATE | google.protobuf.Timestamp |
Date at midnight (00:00:00Z) |
| TYPE_T_TIME | string |
ISO 8601 format: HH:MM:SS[.ffffff] |
| TYPE_T_TIMESTAMP | google.protobuf.Timestamp |
Well-Known Type; seconds (int64) and nanoseconds
(int32); microsecond precision (6 digits) |
| TYPE_T_TIMESTAMPTZ | google.protobuf.Timestamp |
Well-Known Type; UTC semantics; microsecond precision (6 digits) |
Timestamp handling
Timestamp fields use google.protobuf.Timestamp from the Protocol Buffers
Well-Known Types. This provides standardized, language-agnostic timestamp representation
with nanosecond precision and built-in JSON serialization support.
| SQData type | Protobuf type | Conversion | Precision |
|---|---|---|---|
| TYPE_T_TIMESTAMP | google.protobuf.Timestamp |
Unix epoch seconds + nanoseconds | Microseconds (6 digits) |
| TYPE_T_TIMESTAMPTZ | google.protobuf.Timestamp |
Unix epoch seconds + nanoseconds, UTC | Microseconds (6 digits) |
google.protobuf.Timestamp represents time as seconds since the Unix
epoch (1970-01-01T00:00:00Z) and a nanoseconds component within that second. When
serialized to JSON, it is automatically converted to RFC 3339 format (for example,
"2025-12-20T14:35:22.123456789Z").
COBOL to Protobuf type mapping
| COBOL clause | SQData type | Protobuf type | Notes |
|---|---|---|---|
PIC X(n) |
TYPE_T_CHAR | string |
Character / alphanumeric |
PIC A(n) |
TYPE_T_CHAR | string |
Alphabetic |
PIC 9(n) |
TYPE_T_TEXTNUM | string |
Exact numeric representation |
PIC S9(n) |
TYPE_T_ZONED | string |
Exact signed numeric representation |
PIC 9(n)V9(m) |
TYPE_T_TEXTNUM | string |
Exact decimal representation (for example, "12345.67") |
PIC S9(n)V9(m) |
TYPE_T_ZONED | string |
Exact signed decimal representation |
PIC 9(1-4) COMP |
TYPE_T_SHORT | int32 |
Binary 2-byte integer |
PIC 9(5-9) COMP |
TYPE_T_INTEGER | int32 |
Binary 4-byte integer |
PIC 9(10-18) COMP |
TYPE_T_BIG | int64 |
Binary 8-byte integer |
COMP-1 |
TYPE_T_FLOAT | float |
4-byte floating point |
COMP-2 |
TYPE_T_DOUBLE | double |
8-byte floating point |
PACKED-DECIMAL |
TYPE_T_DECIMAL | string |
Exact decimal representation (for example, "123456789.12") |
OCCURS n TIMES |
Array | repeated |
Fixed-length array |
OCCURS DEPENDING ON |
Variable array | repeated |
Variable-length array; runtime determines actual length |
| Group item (no PIC clause) | TYPE_T_GROUP | Nested message | Hierarchical structure; child fields are generated recursively |
Nullable fields
Fields that may be null (for example, columns that allow NULL in Db2) are generated as
optional fields in the Protobuf schema. When a source field contains a
null value, the corresponding Protobuf field is omitted from the encoded message.