Skip to content

Commit ebd87bb

Browse files
docs(client-v2): address Copilot review nits on BFloat16 docs
- CHANGELOG: describe the previous BFloat16 failure generically as an unsupported-data-type error instead of quoting one exact exception string; pre-fix the column hit three different failure paths (IllegalArgumentException / UnsupportedOperationException "Unsupported data type: BFloat16" on read/write, and a "BFloat16 is not supported yet" ClientException only on the Dynamic/Variant read path). - docs/features.md: use canonical `BFloat16` casing in the precision-sensitivity trait instead of bare lowercase "bfloat16". Implements: #2279
1 parent fa79d8b commit ebd87bb

2 files changed

Lines changed: 2 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
`float` values (widening is lossless) and written from `float`/`Float` values, including through generic records, POJO
99
binding, `Nullable(BFloat16)`, and `BFloat16` values held in `Dynamic`/`Variant` columns. On write the client keeps the
1010
high 16 bits of the `float`, matching the ClickHouse server's own `Float32``BFloat16` conversion. Previously reading
11-
or writing a `BFloat16` column threw "BFloat16 is not supported yet". (https://github.com/ClickHouse/clickhouse-java/issues/2279)
11+
or writing a `BFloat16` column failed with an unsupported-data-type error. (https://github.com/ClickHouse/clickhouse-java/issues/2279)
1212

1313
### Bug Fixes
1414

docs/features.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Compatibility-sensitive traits:
4040
- String escaping behavior in `SQLUtils` is compatibility-sensitive: `enquoteLiteral()` uses SQL-style doubled single quotes, while `escapeSingleQuotes()` escapes both backslashes and single quotes with backslashes.
4141
- Identifier quoting behavior is stable API for helper callers: identifiers are double-quoted, embedded double quotes are doubled, and optional quoting keeps simple identifiers unchanged.
4242
- Instant formatting is type-sensitive and should not drift: `Date` formatting depends on an explicit timezone, `DateTime` is serialized as epoch seconds, and higher-precision timestamps preserve up to 9 fractional digits.
43-
- `BFloat16` conversion is precision-sensitive and should not drift: a write keeps only the high 16 bits of the `float` (the low mantissa bits are truncated toward zero, matching the server's `Float32``BFloat16` conversion), so values that are not exactly representable in bfloat16 change when written; a read widens the 16-bit value back to `float` losslessly.
43+
- `BFloat16` conversion is precision-sensitive and should not drift: a write keeps only the high 16 bits of the `float` (the low mantissa bits are truncated toward zero, matching the server's `Float32``BFloat16` conversion), so values that are not exactly representable in `BFloat16` change when written; a read widens the 16-bit value back to `float` losslessly.
4444
- Timezone conversion helpers preserve nanoseconds and can intentionally shift local date or time when interpreted in a different timezone; this behavior is covered by tests and should not be normalized away.
4545
- `Geometry` handling is shape-sensitive: supported values are 1D through 4D Java arrays representing the nested geometry variants, and unsupported shapes or non-array values are rejected during serialization.
4646
- `Geometry` write inference is dimension-based rather than fully type-specific: point, ring/line string, polygon/multi-line string, and multi-polygon are selected from array depth, so writing `Geometry` cannot currently distinguish `Ring` from `LineString` or `Polygon` from `MultiLineString`.

0 commit comments

Comments
 (0)