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

Ouverte
#3,288 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
45/100
Type d'issue
Fonctionnalité
Clarté
Clairement spécifiée
Activité
Active
Stack technique
clickhouse, java
Domaine
database

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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

Langage dominant
Java
Étoiles
1.6k
Forks
649
Merge moyen
1 j 20 h
PR mergées (30 j)
39

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de ClickHouse/clickhouse-java

Toutes les issues de ClickHouse/clickhouse-java

Issues similaires

Plus d'issues Java

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.