-
Couldn't load subscription status.
- Fork 613
Closed
Description
Currently zero bytes is being used for filling, which isn't correct for negative numbers.
Decimal128
https://github.com/ClickHouse/clickhouse-jdbc/blob/094ed0b9d2dd8a18ae0c7b3f8f22c35e595822a6/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/util/ClickHouseRowBinaryStream.java#L197
SELECT
hex(reinterpretAsString(-860 * 10000000)) AS init,
hex(reinterpretAsString(CAST('109091.1627776', 'Decimal128(7)'))) AS dec1,
hex(reinterpretAsString(CAST('-860', 'Decimal128(7)'))) AS dec
Query id: 2e2fdb71-34c1-47ff-8cd3-6b745247c97c
┌─init─────────────┬─dec1───────┬─dec──────────────────────────────┐
│ 006A66FFFDFFFFFF │ 006A66FFFD │ 006A66FFFDFFFFFFFFFFFFFFFFFFFFFF │
└──────────────────┴────────────┴──────────────────────────────────┘
SELECT
hex(reinterpretAsString(860 * 10000000)) AS init,
hex(reinterpretAsString(CAST('109091.1627776', 'Decimal128(7)'))) AS dec1,
hex(reinterpretAsString(CAST('860', 'Decimal128(7)'))) AS dec
Query id: 6f48970c-20a2-4e17-a70f-7d15c85c728e
┌─init───────┬─dec1───────┬─dec────────┐
│ 0096990002 │ 006A66FFFD │ 0096990002 │
└────────────┴────────────┴────────────┘
It does looks like that correct handling of negative numbers is done in clickhouse-jdbc-bridge