Commit e79267e
fix: chdb-core 26.5.0 compatibility — composite leaf coercion, PK paren strip, inverted upstream-bug locks (#12)
chdb-core 26.5.0 (the ClickHouse 26.5 baseline, on PyPI 2026-06-08)
changed three behaviors vs 26.3 and turned the nightly CI red:
1. Float / Decimal / temporal leaves inside Array / Tuple / Map /
Nested / geo cells are now serialised as quoted strings
("['1.5', '2.5']" for Array(Float64)) where 26.3 emitted bare
numerics. The cursor wrapper now walks composite cells recursively,
driven by the column's ClickHouse type string, and re-coerces
leaves to native types. Container shapes are preserved as parsed;
named Tuple cells (returned as dicts by chdb.dbapi) keep the dict
shape with coerced values.
2. ClickHouse 26.5 preserves wrapping parens around a single-column
sorting key in system.tables.sorting_key (ORDER BY (user_id) used
to be reported as user_id), which broke get_pk_constraint with
constrained_columns=['(user_id)']. Reflection now strips parens
that wrap the entire expression before splitting.
3. chdb-core 26.5 fixed the two upstream bugs our torture tests
locked: Decimal(P>18) precision loss (chdb-io/chdb#574) and Float
NaN/±Inf folding to None (chdb-io/chdb#575). Both locks are
inverted to assert the fixed behavior, as their failure messages
prescribed.
The L5 differential reference binary moves from
clickhouse-server:26.3.9.8-lts to clickhouse-server:26.5.1.882 to
match the new baseline; the version-skew sanity test guards the
pairing.
All cursor coercions are no-ops on chdb-core 26.3 native values, so
the wrapper works on both binary generations. New torture tests lock
the leaf repair for each composite shape that regressed.
Co-authored-by: Claude Fable 5 <[email protected]>1 parent f07cdb4 commit e79267e
8 files changed
Lines changed: 454 additions & 95 deletions
File tree
- .github/workflows
- chdb_sqlalchemy
- tests
- differential
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
142 | 142 | | |
143 | 143 | | |
144 | 144 | | |
145 | | - | |
| 145 | + | |
146 | 146 | | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
154 | 154 | | |
155 | | - | |
| 155 | + | |
156 | 156 | | |
157 | 157 | | |
158 | 158 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
7 | 49 | | |
8 | 50 | | |
9 | 51 | | |
| |||
0 commit comments