ClickHouse / ClickHouse/clickhouse-java

[jdbc-v2] JDBC Escaping

Ouverte
#2,352 1 commentaire 1 réaction 0 personnes assignées Voir sur GitHub
area:jdbc-insert bug jdbc-v2
Langage dominant
Java
Étoiles
1.6k
Forks
636
Merge moyen
2 j 23 h
PR mergées (30 j)
29

Description

### Description
JDBC escaping allows to write portable (really not) SQL statements that can be run with different JDBC drivers to get same affect. For example, `{ts 2025-02-20}` should be interpreted by driver as native function like `toTimestamp()` and other drivers should do similar way.

Current JDBC implementation
- does escaping always but should be controlled by `com.clickhouse.jdbc.StatementImpl#setEscapeProcessing`
- should be true for both Statement and PreparedStatement with according tests
- lacks of documentation https://clickhouse.com/docs/integrations/language-clients/java/jdbc
- done after prepared statement is parsed but should before (to not confuse parser :-))

There is a good explanation of how JDBC escaping works https://jdbc.postgresql.org/documentation/escapes/.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par com.clickhouse.jdbc.StatementImpl#setEscapeProcessing et suivez la façon dont l’échappement est appliqué par rapport à l’analyse des prepared statements. Consultez l’explication de l’échappement JDBC et la documentation sur l’intégration JDBC, puis ajoutez une couverture pour Statement et PreparedStatement. Le travail est terminé lorsque l’échappement est configurable, activé pour les deux types de statement et documenté.

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

Évaluation

Stack technique
java
Domaine
database
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

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