[jdbc-v2] Option to trim trailing NULs from FixedString on read

Aperta
#3,288 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
45/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
clickhouse, java
Ambito
database

Direzione di ricerca

The read path lives in the JDBC v2 module, where BinaryStreamReader decodes FixedString values with new String(bytes, 0, precision); start there and check how the connection properties are parsed and passed down to column readers. Done means an opt-in jdbc_trim_fixed_string=true property strips trailing \0 bytes on getString and getObject, with the default behaviour unchanged. Check related issue #2929 before starting, since it may overlap.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

area:data-type area:jdbc-read jdbc-v2

getString() / getObject() on a FixedString(N) column return all N bytes, trailing \0 included (BinaryStreamReader decodes new String(bytes, 0, precision)).

That matches ClickHouse semantics. But Tableau 2026.3.0 no longer hides the NULs (2026.2.1 did), so Tableau users see "Dario Medina\0\0\0…". The Tableau connector can't trim on its side, and output_format_trim_fixed_string only applies to text formats, not RowBinary.

Repro (clickhouse-jdbc 0.11.0, ClickHouse 26.10.3.7):

ResultSet rs = conn.createStatement().executeQuery("SELECT toFixedString('Dario', 10)");
rs.next();
rs.getString(1);  // "Dario\0\0\0\0\0", length 10

Ask: an opt-in connection property (e.g. jdbc_trim_fixed_string=true) that strips trailing \0 from FixedString on read. Off by default; the Tableau connector would enable it.

Related: #2929

Lingua principale
Java
Stelle
1.6k
Fork
649
Merge medio
1g 20h
PR unite (30g)
39

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ClickHouse/clickhouse-java

Tutte le issue di ClickHouse/clickhouse-java

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.